Programator mikrokontrolerów AVR i AT89S8252
P R O J E K T Y
Programator
mikrokontrolerów
AVR i AT89S8252
AVTâˆÅ‚515
Kilka dni wytÃćøonej pracy zajÃćÂÅ‚o mi opracowanie
programatora ISP dla
mikrokontrolerÛw firmy
ATMEL z†rodziny AT90,
ATmega i†AT89S8252. Dla
Zapewne wiÃćkszoúÊ Czytelni-
czony do wejúcia XTAL1. Oczy-mnie to przykÂÅ‚ad kolejnego kÛw zajmujÂÄ…cych siÃć mikrokont-wiúcie wystarczy, jeúli ma podÂÅ‚ÂÄ…-
urzÂÄ…dzenia, o†ktÛrego wartoúci rolerami zna wiele rÛønych typÛw czony rezonator ceramiczny lub stanowi nie tyle liczba
prostych programatorÛw. Opisy kwarcowy.
i†nowoczesnoúÊ zastosowanych wielu z†nich byÂÅ‚y rÛwnieø pub-SygnaÂÅ‚ interfejsu szeregowego podzespoÂłÛw, a†program
likowane na ÂÅ‚amach EP. WiÃćk-
z†komputera PC doprowadzany
wykonywany przez
szoúÊ z†nich jest sterowana syg-jest na bramkÃć tranzystora T1
mikrokontroler.
naÂÅ‚ami portu rÛwnolegÂÅ‚ego. Ma to (BS170). PeÂÅ‚ni on rolÃć ukÂÅ‚adu swoje wady i†zalety, nie chcÃć ich
Rekomendacje: nie ma translacji poziomÛw napiÃćÊ RS232
tutaj omawiaÊ. Osobiúcie mam wúrÛd naszych CzytelnikÛw (logiczna ÃŹ1î: -12...-5V, logiczne jednak pewne obawy przed pod-takich, ktÛrzy nie wiedzÂÄ…, co ÃŹ0î: +5...+12V) na poziomy TTL.
ÂÅ‚ÂÄ…czaniem czegoú do portu dru-Dalej sygnaÂÅ‚ podawany jest na to jest mikrokontroler. Dlatego karkowego. Raz, øe nie jest to wejúcie RxD interfejsu UART mik-wÂÅ‚aúnie projekt prezentowany zbyt wygodne, jeúli juø jest tam rokontrolera. Drugie wyprowadze-w†artykule moøe
podÂÅ‚ÂÄ…czona drukarka. Dwa, øe nie UART - TxD - jest podÂÅ‚ÂÄ…czone zainteresowaÊ praktycznie czasami drobna awaria programa-do bramki tranzystora BS250 pra-kaødego, kto korzysta lub tora prowadzi do uszkodzenia cujÂÄ…cego jako driver dokonujÂÄ…cy zamierza korzystaÊ
portu, a†to juø jest duøy kÂÅ‚opot.
translacji poziomu napiÃćÊ TTL na z†niezwykle popularnych
ZdecydowaÂÅ‚em siÃć na skonstruo-wymagane przez RS232. Uwaga: AVR-Ûw.
wanie programatora podÂÅ‚ÂÄ…czanego proszÃć nie zmieniaÊ wartoúci re-do portu szeregowego komputera PC. Istnieje co prawda nota ap-likacyjna firmy ATMEL (AVR910) Programator opisany w artykule opisujÂÄ…ca taki programator, jednak można wykorzystać do programowaâˆÅ‚
wydaÂÅ‚ mi siÃć on zbyt skompliko-nia nastÄ™pujÄ…cych mikrokontrolerów: wany. DodatkowÂÄ… trudnoúciÂÄ… byÂÅ‚o
· AT89S8252
zdobycie i†zaprogramowanie mik-
· AT90S1200 i AT90S1200 rev.C
rokontrolera AT90S1200.
· AT90S2313
· AT90S2323
Opis dziaÂÅ‚ania
· AT90S2333
· AT90S2343
Schemat elektryczny programa-
· AT90S4414
tora pokazano na rys. 1. Nie
· AT90S4433
posiada on wÂÅ‚asnego stabilizatora
· AT90S4434
napiÃćcia zasilania, poniewaø za-
· AT90S8515
· AT90S8535
silanie jest pobierane z†programo-
· ATMega 103
wanego ukÂÅ‚adu. ZaÂÅ‚oøyÂÅ‚em rÛw-
· ATMega 161
nieø, øe zapisywany lub odczyty-
· ATMega 163
wany mikrokontroler posiada
· ATMega 603
· ATMega 83
wÂÅ‚asny generator zegarowy podÂÅ‚ÂÄ…-
Elektronika Praktyczna 9/2003
21
Programator mikrokontrolerów AVR i AT89S8252
Rys. 1. Schemat elektryczny programatora zystancji doÂÅ‚ÂÄ…czonych do tranzys-diody zielonej (D2) oznacza po-bÃćdzie chciaÂÅ‚ wykonaÊ modyfikatorÛw! Wartoúci rezystorÛw R3, prawne nawiÂÄ…zanie komunikacji cje, moøe siÃć posÂÅ‚uøyÊ darmowÂÄ…
R4 i†R5 powinny byÊ sobie rÛwne z†komputerem PC oraz pozytywny wersjÂÄ… demonstracyjnÂÄ… tego pakie-i†zawieraÊ siÃć w†granicach 1,8...2,4
rezultat przeprowadzanej operacji.
tu dostÃćpnÂÄ… na stronie producenta kâ"Åš. Tranzystor T2 zasilany jest ÃÄ„wiecenie diody øÛÂÅ‚tej (D1) ozna-
( h t t p : / / w w w . r a i s o n a n c e . c o m ) , napiÃćciem dodatnim pochodzÂÄ…cym cza, øe programator przesyÂÅ‚a dane umoøliwiajÂÄ…cÂÄ… kompilacjÃć i†uru-z†pÂÅ‚ytki programatora oraz napiÃć-
- jest zajÃćty. Dioda czerwona (D3) chamianie programÛw do 4†kB
ciem ujemnym pochodzÂÄ…cym z
úwieci siÃć w†sytuacji, gdy wystÂÄ…pi kodu.
linii sygnaÂÅ‚owej interfejsu RS232.
bÂÅ‚ÂÄ…d - operacja zostaÂÅ‚a zakoÃÅ‚czo-Program realizuje funkcjÃć ter-Zakres napiÃćÊ wyjúciowych waha na niepowodzeniem.
minala doÂÅ‚ÂÄ…czanego do komputera siÃć od -5...+5V. Niestety, interfejs Zwarcie przycisku SW1 powo-PC z†wbudowanym interpreterem RS232 starszych komputerÛw PC
duje wystawienie sygnaÂÅ‚u zerujÂÄ…-
poleceÃÅ‚, wykonujÂÄ…cego polecenia (386, 486 i†byÊ moøe niektÛre cego dla programowanego mikro-przesyÂÅ‚ane przez program AVR
Pentium I) moøe nie akceptowaÊ
kontrolera. Aktywny poziom syg-Prog. Z†maÂÅ‚ym wyjÂÄ…tkiem, do ko-takich poziomÛw napiÃćÊ. Nie ma-naÂÅ‚u zerujÂÄ…cego (0 lub 1) jest munikacji uøywane sÂÄ… funkcje jÂÄ… z†nim øadnego problemu now-wybierany zworkÂÄ… JP1.
wejúcia/wyjúcia z†biblioteki pro-sze modele PC, majÂÄ…ce interfejs ducenta. Ten ÃŹmaÂÅ‚y wyjÂÄ…tekî to szeregowy zgodny ze specyfikacjÂÄ…
Opis programu dla
funkcja przesyÂÅ‚ajÂÄ…ca znaki do EIA232.
mikrokontrolera
komputera PC, ktÛra wymagaÂÅ‚a Zastosowany w†programatorze
AT89C2051
odrÃćbnej implementacji. Standar-mikrokontroler AT89C2051 speÂÅ‚-
Program dla mikrokontrolera
dowo bowiem putchar() po napo-nia rolÃć terminala realizujÂÄ…cego U1 zostaÂÅ‚ napisany w†jÃćzyku C
tkaniu kodu 0x0A przesyÂÅ‚a dodat-polecenia aplikacji sterujÂÄ…cej. Za-z†niewielkimi wstawkami w†jÃćzy-kowo 0x0D, tworzÂÄ…c typowÂÄ… sek-implementowaÂÅ‚em w†nim funkcje ku asembler. Po skompilowaniu wencjÃć koÃÅ‚ca linii znakÛw (po-programowego interfejsu SPI. Pro-zajmuje on okoÂÅ‚o 1,6 kB przy wrÛt karetki i†nowa linia). Nie gramowanie docelowego ukÂÅ‚adu wÂÅ‚ÂÄ…czonej opcji optymalizacji ko-jest to poøÂÄ…dane przy przesyÂÅ‚aniu odbywa siÃć z†jego wykorzysta-du wynikowego pod kÂÄ…tem szyb-danych w†postaci binarnej zawar-niem. Diody LED (D1, D2 i†D3) koúci jego dziaÂÅ‚ania. Do napisania tych w†pamiÃćci mikrokontrolera.
sÂÅ‚uøÂÄ… do sygnalizacji stanu pro-programu posÂÅ‚uøyÂÅ‚ mi kompilator Najprostszym rozwiÂÄ…zaniem byÂÅ‚a gramatora. Ich kolory dobrane sÂÄ…
firmy Raisonance. Program kom-wÂÅ‚asna implementacja funkcji put-
ÃŹintuicyjnieî, zgodnie z†ludzkimi pilowany byÂÅ‚ przy wÂÅ‚ÂÄ…czonym
char(). Jak widaÊ na list. 1, nie przyzwyczajeniami. ÃÄ„wiecenie modelu pamiÃćci TINY. Kaødy, kto naleøy ona do zbyt skomplikowa-22
Elektronika Praktyczna 9/2003
Programator mikrokontrolerów AVR i AT89S8252
napisana w†asemblerze (delayms).
List. 1. Implementacja funkcji Deklaracji bitÛw wyprowadzeÃÅ‚
putchar()
programowego interfejsu SPI (MI-
//wÅ‚asna funkcja putchar (dla każdego 0x0A SO, MOSI i†SCK) dokonaÂÅ‚em
//oryginalny putchar dodaje 0x0D) int putchar (const int c) //nagłówek zgodny w†module napisanym w†jÃćzyku
//z bibliotekÄ… producenta
{
asembler tak, aby byÂÅ‚y one do-SBUF = c;
//zapis bufora UART
TI = 0;
//zerowanie flagi TI,
stÃćpne zarÛwno z†poziomu aplika-
//poczÄ…tek transmisji
cji w†jÃćzyku C, jak i†z†poziomu while (!TI);
//oczekiwanie na przesłanie
//bajtu
aplikacji w†asemblerze.
}
Reszta programu to bardzo roz-budowany warunek switch rozpat-jest jako archiwum w†formacie rujÂÄ…cy odebrane znaki i†podejmu-ZIP, ktÛre zawiera plik wykony-jÂÄ…cy akcjÃć w†zaleønoúci od pole-walny EXE. Naleøy go po prostu ceÃÅ‚ przesÂÅ‚anych przez AVRProg.
skopiowaÊ na dysk twardy i†utwo-ProtokoÂÅ‚y komunikacyjne AT89
rzyÊ skrÛt uÂÅ‚atwiajÂÄ…cy uruchomie-i†AT90 rÛøniÂÄ… siÃć znacznie pomiÃć-
nie.
Rys. 2. WyglÄ…d okna programu AVR Prog
dzy sobÂÄ…. Z†tego teø powodu, Uwaga: program nie uruchomi
w†wielu miejscach programu ko-siÃć bez podÂÅ‚ÂÄ…czonego urzÂÄ…dzenia, nieczny jest rozdziaÂÅ‚ funkcji na ktÛre wyúle identyfikator zawiera-nych. Nie wykorzystuje mechaniz-realizowane przez AVR i†realizo-jÂÄ…cy 3†pierwsze znaki ÃŹAVRî pod-mu przerwaÃÅ‚, zeruje flagÃć TI oraz wane przez AT89, mimo iø prze-czas prÛby nawiÂÄ…zania komunika-zapisuje dane do bufora UART
syÂÅ‚ane polecenia majÂÄ… identycznÂÄ…
cji.
i†oczekuje na ustawienie TI bÃćdÂÄ…-
postaÊ. Podstawowa rÛønica
Po uruchomieniu program tes-
ce sygnaÂÅ‚em zakoÃÅ‚czenia transmi-w†protokole polega na tym, øe tuje porty szeregowe, sprawdzajÂÄ…c sji bajtu.
AT89 wymaga 3†bajtÛw dla kaø-
moøliwoúÊ komunikacji i†w†ten Funkcja korzysta z†nastaw pre-dego z†poleceÃÅ‚, natomiast AT90
sposÛb sam wykrywa obecnoúÊ
definiowanych przez producenta i†ATMega wymagajÂÄ… 4.
(bÂÄ…dÃź teø nieobecnoúÊ) podÂÅ‚ÂÄ…czo-pakietu. SzybkoúÊ transmisji SzczegÛlnÂÄ… uwagÃć naleøy zwrÛ-
nego programatora. Aplikacja jest okreúlana jest przez polecenie ciÊ na poprawnÂÄ… implementacjÃć
bardzo prosta w†uøyciu. ObsÂÅ‚ugu-
#pragma DEFJ(TIM1_INIT=0xFD) funkcji spiinit(). Funkcja ta wpro-je siÃć jÂÄ… identycznie jak wiÃćkszoúÊ
zawierajÂÄ…ce wartoúÊ inicjujÂÄ…cÂÄ… Ti-wadza kod rozkazu Programming programÛw napisanych dla úrodo-mer 1†sterujÂÄ…cy pracÂÄ… UART.
Enable, umoøliwiajÂÄ…c zapis pa-wiska Windows. KorzystajÂÄ…c z†po-Funkcja getchar() nie na-la Device umieszczonego daje siÃć do zastosowania
na dole okienka, naleøy
Programator uniwersalny
w†naszej aplikacji, ponie-
wybraÊ typ programowa-
Programator można bez najmniejszych waø zwraca ona echo ode-nego mikrokontrolera. Od
problemów zintegrować z Bascom AVR oraz branego znaku, co zgodne
tego wyboru zaleøeÊ bÃć-
AVR Studio. Alternatywnie do obsÅ‚ugi jest ze specyfikacjÂÄ… standar-dzie algorytm zapisu i†od-
programatora można wykorzystać program du ANSI C†i†przydatne
czytu pamiÃćci mikrokont-
AVR Prog.
w†przypadku terminala zna-
rolera. W†gÛrnej czÃćúci
kowego, jednak zupeÂÅ‚nie
okienka jest umieszczony
niepotrzebne w†przypadku progra-miÃćci Flash i†EEPROM. UkÂÅ‚ady przycisk Browse ( Hex file). Ko-matora. Na szczÃćúcie producent z†serii AVR wymagajÂÄ…, aby doko-rzystajÂÄ…c z†niego, naleøy wskazaÊ
zdefiniowaÂÅ‚ rÛwnieø innÂÄ… funkcjÃć, nana zostaÂÅ‚a synchronizacja inter-zbiÛr w†formacie HEX zawierajÂÄ…cy znacznie bardziej przydatnÂÄ… dla fejsÛw Master (programator) i†Sla-dane do zapisu do pamiÃćci Flash naszych celÛw. Jest to funkcja ve (mikrokontroler). Dodatkowo lub EEPROM. W†ten sam sposÛb o†nazwie getkey() zwracajÂÄ…ca war-funkcja ta wywoÂÅ‚ywana jest na wskazuje siÃć rÛwnieø nazwÃć zbio-toúÊ bajtu odczytanego z†UART.
koniec cyklu zapisu, przed prze-ru, w†ktÛrym zostanÂÄ… zapamiÃćtane Funkcje zapisu (wrser) i†odczy-
ÂÅ‚ÂÄ…czeniem do cyklu odczytu.
odczytane dane. Teraz, po wyko-tu (rdser) interfejsu SPI napisane Uwaga: bez poprawnej pracy
naniu wyøej opisywanych czyn-zostaÂÅ‚y w†jÃćzyku asembler. SÂÄ… to funkcji spiiinit() nie jest moøliwy noúci, moøna przeprowadziÊ pro-niewielkie procedury, zaledwie po zapis i†odczyt danych z†wykorzys-gramowanie pamiÃćci, odczytaÊ jÂÄ…
kilka bajtÛw kaøda. Ich implemen-taniem interfejsu SPI.
lub porÛwnaÊ jej zawartoúÊ z†da-tacja w†C, aczkolwiek moøliwa, nymi zapamiÃćtanymi na dysku.
zajmowaÂÅ‚aby wiÃćcej miejsca w†pa-Aplikacja sterujÂÄ…ca -
Operacje te moøna przeprowadzaÊ
miÃćci programu oraz byÂÅ‚aby nieco AVR Prog
niezaleønie dla obu rodzajÛw pa-bardziej skomplikowana. DziÃćki Do sterowania pracÂÄ… programa-miÃćci.
asemblerowi ÂÅ‚atwo jest zapanowaÊ
tora wykorzystaÂÅ‚em bezpÂÅ‚atny pro-Uwaga: przed zapisem pamiÃćci nad funkcjÂÄ… i†stanem flagi prze-gram AVR Prog (rys. 2), dostÃćpny Flash wykonywana jest instrukcja niesienia C†mikrokontrolera, a†tak-na stronie internetowej firmy At-kasujÂÄ…ca zarÛwno zawartoúÊ pa-
øe nad czasem wykonywania in-mel. Jest to aplikacja wykonana miÃćci Flash, jak i†EEPROM.
strukcji. Z†tego samego powodu dla úrodowiska Windows. Nie
W†przypadku zapisu danych do rÛwnieø funkcja (pÃćtla) absorbu-wymaga przeprowadzania øadnej EEPROM - zawartoúÊ Flash nie jÂÄ…ca CPU na czas okoÂÅ‚o 1†ms jest instalacji. Program rozprowadzany jest usuwana.
Elektronika Praktyczna 9/2003
23
Programator mikrokontrolerów AVR i AT89S8252
WYKAZ ELEMENTÓW
Rezystory
R1: 680â"Åš
R2, R3, R4, R5: 2,2kâ"Åš
Kondensatory
C1: 0,1µF
C2, C3: 22pF
Półprzewodniki
U1: AT89C2051 (zaprogramowany) T1: BS170
T2: BS250
D1: LED żółta
D2: LED zielona
D3: LED czerwona
Różne
X1: DB9
JP1: jumper 3x1
SW1: SWâˆÅ‚PB
Rys. 3. Schemat montażowy płytki G2: złącze 5x2
programatora
Q1: 11,0592MHz
Uruchomienie ukÂÅ‚adu
gramatora z†aplikacjÂÄ… sterujÂÄ…cÂÄ…. Po Schemat montaøowy programa-krÛtkiej chwili od nawiÂÄ…zania po-tora pokazano na rys. 3. Popra-
ÂÅ‚ÂÄ…czenia, na ekranie PC powinno wnie zmontowany ukÂÅ‚ad nie po-siÃć ukazaÊ okno robocze programu winien nastrÃćczaÊ øadnych trud-AVR Prog. Teraz wybierzmy przy-noúci przy uruchomieniu. Aby cisk Advanced. Na ekranie powin-przetestowaÊ jego dziaÂÅ‚anie, nale-na ukazaÊ siÃć informacja jak na øy podÂÅ‚ÂÄ…czyÊ go do programowa-rys. 4. Po zamkniÃćciu okienka nego ukÂÅ‚adu i†typowym kablem Advanced, najlepszym testem jest do transmisji szeregowej do kom-prÛba zapisu pamiÃćci Flash i†EEP-putera PC. PamiÃćtajmy o†tym, øe ROM. PamiÃćtajmy o†wyborze wÂÅ‚aú-
programator pobiera zasilanie ciwego typu mikrokontrolera z†lis-z†programowanej pÂÅ‚ytki! Diody ty programowanych ukÂÅ‚adÛw.
LED sygnalizujÂÄ…ce stan programa-Typ programowanego ukÂÅ‚adu
tora powinny zaúwieciÊ siÃć, a†na-przechowywany jest w†pamiÃćci stÃćpnie kolejno zgasnÂąÊ.
RAM programatora. Czasami przy Teraz naleøy przystÂÄ…piÊ do
wyÂÅ‚ÂÄ…czeniach pÂÅ‚ytki uruchomie-prÛby komunikacji z†aplikacjÂÄ…
niowej, mimo iø kaødorazowo sek-AVR Prog. Tuø po jej uruchomie-wencja programowania zaczyna niu prÛbuje ona zidentyfikowaÊ
siÃć od przesÂÅ‚ania kodu wyboru typ podÂÅ‚ÂÄ…czonego programatora programowanego ukÂÅ‚adu, moøe siÃć
oraz listÃć programowanych ukÂÅ‚a-zdarzyÊ, øe przy pierwszej prÛbie dÛw. WysÂÅ‚anie komendy ÃŹtî po-zapisu lub odczytu danych otrzy-woduje zaúwiecenie siÃć diody zie-mamy komunikat Cannot enter lonej (ÃŹOKî), co jest sygnaÂÅ‚em programming mode. Naleøy wÛw-poprawnej wymiany danych pro-czas ponowiÊ prÛbÃć operacji, a†jeú-
li nie da to rezultatu, zamknÂąÊ
aplikacjÃć AVR Prog i†uruchomiÊ
jÂÄ… ponownie. Operacja taka przy-wraca wszystkie nastawy programatora, ponownie ustawiajÂÄ…c po-prawny tryb jego pracy.
Jacek Bogusz, AVT
jacek.bogusz@ep.com.pl
Wzory pÂÅ‚ytek drukowanych w formacie PDF sÂÄ… dostÃćpne w Internecie Rys. 4. Identyfikacja rodzaju pod adresem: http://www.ep.com.pl/
programatora po wybraniu opcji Advanced
?pdf/wrzesien03.htm.
24
Elektronika Praktyczna 9/2003
Wyszukiwarka
Podobne podstrony:
avt 515 Programator mikrokontrolerów AVR i AT89S8252avt 524 Programator USB mikrokontrolerów ATmega ISPprogramowanie mikrokontrolerówavt 868 Programowalny zegar z LCD proc 89Programowanie mikrokontrolerów za pomocą programatora USBasp » Majsterkowo plavt 2502 Programator procesorów 89CX051 INNYProsty programator mikrokontrolerów AT89Cx051 AT89C5xPodstawy programowania mikrokontrolerów AVR8 w środowisku AVR Studio 4Programator mikrokontrolerów ATMEL AT89C2051 1051wilem avt 5070 id 2490367 Nieznanyprogramowanie mikrokontrolerow 8051 w jezyku c pierwsze kroki rapidshareCharakterystyka programow typu Nieznanyavt 871 Programator procesorów AVR przez BASCOMwięcej podobnych podstron