Jak działa interfejs ISP w AT89S8252-24PI i jak go programować bez programatora?
AT89S8252-24PI ISP jak to działa?
From: "Funak" <funak_at_nospam_wp.pl>
Subject: AT89S8252-24PI ISP jak to działa?
Date: Thu, 12 Sep 2002 20:00:24 +0200
Witam!!!
AT89S8252-24PI posiada możliwo¶ć programowania w systemie za pomoc± systemu
ISP.
Może mi kto¶ przybliżyć działanie tego interfejsu?
Bardzo proszę, żeby było PL. A może to było w Elektronice Praktycznej.
Mam s±siada który to prenumeruje, ale wiecznie nie ma go w domu, więc aby
pożyczyć EP muszę
mówić kilka dni wcze¶niej. Wtedy mi pożyczy jaki chcę.
Planuję w mojej pracy dyplomowej wykorzystać ten rodzaj programowania tego
uC, gdyż
nie mam obecnie żadnego programatora. Tematem pracy będzie wła¶nie
programator.
Kupić za bardzo mi nie odpowiada. Ten uC jest o ile wiem zgodny jest z 8051.
Jeszcze nie mam PDF-a, ale wkrótce będę miał.
Wiem, że chyba można sterować ISP z Bascom-a. Lecz mam problem, gdyż piszę
tylko a asemblerze a Bascom-a nie używam. Jest jaki¶ program do wysyłania na
LPT
na ISP pliku np. Hex?
Pozdrawiam
--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 w trakcie aktualizacji
GG-2949256
From: "news" <pro_at_nospam_kki.net.pl>
Subject: Re: AT89S8252-24PI ISP jak to działa?
Date: Thu, 12 Sep 2002 22:33:48 +0200
Wiem, że chyba można sterować ISP z Bascom-a. Lecz mam problem, gdyż piszę
tylko a asemblerze a Bascom-a nie używam. Jest jaki¶ program do wysyłania
na
LPT
na ISP pliku np. Hex?
Pozdrawiam
--
> Funak
> www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 w trakcie
aktualizacji
> GG-2949256
>
>
program pod DOSa
http://www.qsl.net/kg6cyn/data/Isp_hb.zip
schemat kabelka lpt<>8252
Printer Port ATMEL
Pin:6 (D4) Pin:9 (RESET)
Pin:7 (D5) Pin:6 (MOSI)
Pin:8 (D6) Pin:8 (SCK)
Pin:10 (ACK) Pin:7 (MISO)
Pin:25 (GND) Pin:20 (GND)
powodzenia
From: "Michał Lankosz" <nie_at_nospam_lubie.spamu>
Subject: Re: AT89S8252-24PI ISP jak to działa?
Date: Thu, 12 Sep 2002 23:03:06 +0200
Może mi kto¶ przybliżyć działanie tego interfejsu?
Bardzo proszę, żeby było PL. A może to było w Elektronice Praktycznej.
Zdaje się było kiedy¶ w Elektorze, ale numeru nie pamietam. Wiem że było to
na pierwszych stronach. W pdf-ie wszysko jest dokładnie opisane, ale po
angielsku.
Programator do tego: Ponyprog.
--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
mike2001 (malpa) tlen.pl
From: "Piotr Zbysinski, EP \(H\)" <piotr.zbysinski_at_nospam_ep.com.pl>
Subject: Re: AT89S8252-24PI ISP jak to działa?
Date: Thu, 12 Sep 2002 23:10:37 +0200
AT89S8252-24PI posiada możliwo¶ć programowania w systemie za pomoc±
systemu
ISP.
Może mi kto¶ przybliżyć działanie tego interfejsu?
Co Ci jest dokladnie potrzebne?
Bardzo proszę, żeby było PL. A może to było w Elektronice Praktycznej.
Mam s±siada który to prenumeruje, ale wiecznie nie ma go w domu, więc aby
pożyczyć EP muszę
mówić kilka dni wcze¶niej. Wtedy mi pożyczy jaki chcę.
Bylo, ale musisz podac o co dokladnie chodzi.
Planuję w mojej pracy dyplomowej wykorzystać ten rodzaj programowania tego
uC, gdyż
nie mam obecnie żadnego programatora. Tematem pracy będzie wła¶nie
programator.
Czyli potrzebna Ci dokladna specyfikacja protokołu. Nie ma tego po polsku,
natomiast programatory ISP i oprogramowanie sterujace nimi bylo w EP.
Poszukam numerow.
Kupić za bardzo mi nie odpowiada. Ten uC jest o ile wiem zgodny jest z
8051.
Jeszcze nie mam PDF-a, ale wkrótce będę miał.
Nie mozesz go znalezc? ;-)
Wiem, że chyba można sterować ISP z Bascom-a. Lecz mam problem, gdyż piszę
tylko a asemblerze a Bascom-a nie używam. Jest jaki¶ program do wysyłania
na
LPT
na ISP pliku np. Hex?
Sa gotowe, podobnie do interfejsow sprzetowych.
Pzdr
PZb
From: Ireneusz Niemczyk <i.niemczyk_at_nospam_multispedytor.com.pl>
Subject: Re: AT89S8252-24PI ISP jak to =?iso-8859-2?Q?dzia=B3a=3F?=
Date: Sun, 15 Sep 2002 19:29:53 +0200
Jak to działa. Ale już pojąłem co¶ nie co¶ z PDF-a.
Z czym masz w takim razie problem?
Interface z grubsza działa tak, że sygnałem SCK wpisuje sekwencyjnie bity do
procka linią MOSI. Zatrza¶nięcie danych następuje przy narastającym zboczu, przy
opadająym za¶ wygodnie jest zebrać bit wystawiony przez procesorek (echo).
Oczywi¶cie procek musi być w stanie resetu.
A więc:
1. Wystawiamy zasilanie
2. Resetujemy procka (sygnał SCK musi być utrzymany w stanie LO, inaczej zaczeli
by¶my od opadającego zbocza a to błąd)
3. Czekamy odpowiednio długo (zazwyczaj 20ms) aby procek się pozbierał
4. Wystawiamy pierwszy bit jaki chcemy wpisać do procka na linię MOSI (zaczynamy
od LSB)
5. Podnosimy SCK - tym samym zatrzaskujemy pierwszy bit bajtu w procku.
6. Procek wystawia nam bit echa na linii MISO
7. Zerujemy SCK.
8. Wystawiamy następny bit bajtu na linii MOSI
9. Ustawiamy SCK - zatrzaskujemy kolejny bit w procku
10. Procek wystawia nam w tym czasie echo 2 bitu
11. Zerujemy SCK
i tak dalej i tak dalej...
Co jest istotne
- aby zachować timingi (nie przegiąć z częstotliwo¶cią SCK - Atmel niestety zbyt
odważnie podaje górne granice)
- procek aby był aktywny w trybie programowania musi dostać komendę zezwalającą
na programowanie, inaczej będzie ignorował rozkazy. (tym samym dla AVR-ów
zaczynasz od wpisania 4 bajtów z tabelki pod pozycją Programming Enable typu np:
0xAC 0x53 0x00 0x00)
- może się przytrafić że procek nie wejdzie w tryb programowania, ponieważ jego
licznik bitów nie będzie odpowiadał ilo¶ci impulsów na SCK - wypada wtedy
przeprowadzić synchronizację procesorka - jest to opisane w PDF-ie. Po prostu
podaje się kolejne bajty zezwolenia na programowanie tak długo aż pojawi się
wła¶ciwe echo na MISO. Oczywi¶cie przed każdą komendą zezwolenia dodaje się
jeden ¶lepy impuls - w ten sposób po 32 ktorynym powtórzeniu procek musi być
zsynchronizowany (za którym¶ razem musiał odpowiedzieć poprawnie), je¶li tak się
nie stało - mamy uszkodzenie.
- Na każdy bajt który chcesz zaprogramować musisz wpisywać do procka 4 bajty, w
których tylko ostatni jest Twoją warto¶cia. Reszta to komenda zapisu bajtu oraz
adres. Zaznaczam że nie zawsze tak musi być.
- Przy zapisie komórek bajt po bajcie wymagane jest odczekanie czasu potrzebnego
na zapisanie bajtu w pamięci procka. Nie dotyczy to warto¶ci 0xff, więc można je
pomijać (znaczy programowanie - je¶li wcze¶niej był zerowany).
- Czas zapisu można albo zapodać sztywno z tabelki, albo okreslić odczytując
periodycznie zapisywaną komórkę - w którym¶ momencie odczytywana warto¶ć zgodzi
się z zapisywaną - znaczy procek łyknął nasz wpis. (uwaga na 0xff!! - nie
sprawedzisz tą metodą)
- Je¶li procek przyjmuje wpisy całymi stronami - musisz najpierw załadować dane
do odpowiedniej strony (nie musisz wypełniać całej), a następnie podajesz
komendę _zapisz stronę_). W ten sposób programuje się znacznie szybciej, ale da
się tylko w większych kostkach i tylko pamięć programu - eeproma tak nielzja :-(
- Je¶li programujesz stronami - to niestety musisz podawać komendę kasowania
flasha przed wła¶ciwym programowaniem, inaczej dzieją się bardzo zabawne rzeczy
;-))
Uff....na pewno zapomniałem jeszcze setkę drobiazgów, ale to dopytasz póĽniej.
Acha - wiem, słowo w AVR-rze jest 16 bitowe, więc musisz wpisywać najpierw LSB
tego słowa a póĽniej MSB (pod jak gdyby ten sam adres - zmienia się tylko 3 bit
bajtu komendy)...
Wogóle, jaki¶ przykład.
Moge ci podesłać plik który wklokowany w procek zapisze jaki¶ program w nim....o
to chodzi?
Dokładnie, bo soft programujący w ISP też sam mam zamiar pisać, a nie
wykorzystywać obcy. W końcu to praca dyplomowa. W sumie nie musi być w PL.
Jako¶ radzę
sobie w Eng, ale wiecie w PL wygodniej się czyta.
No to szykuj się na niezłą jazdę :-)))
| Sa gotowe, podobnie do interfejsow sprzetowych.
??
Są, są, tylko jeszcze nie popularne ;-)))))
Jedna jeszcze uwaga na koniec - pisałem z głowy ,więc może się okazać że co¶
umknęło mojej uwadze - w razie czego szybko wyja¶nimy.
--
PZD, Irek.N.
Chcesz rozweselić Boga? Powiedz Mu że masz plany!
ps. kurcze - mam 3/4 i nie mogę się zabrać za dokończenie opisu :-(