avt 515 Programator mikrokontro Nieznany


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 AT89S8252
avt 524 Programator USB mikrokontrolerów ATmega ISP
programowanie mikrokontrolerów
avt 868 Programowalny zegar z LCD proc 89
Programowanie mikrokontrolerów za pomocą programatora USBasp » Majsterkowo pl
avt 2502 Programator procesorów 89CX051 INNY
Prosty programator mikrokontrolerów AT89Cx051 AT89C5x
Podstawy programowania mikrokontrolerów AVR8 w środowisku AVR Studio 4
Programator mikrokontrolerów ATMEL AT89C2051 1051
wilem avt 5070 id 2490367 Nieznany
programowanie mikrokontrolerow 8051 w jezyku c pierwsze kroki rapidshare
Charakterystyka programow typu Nieznany
avt 871 Programator procesorów AVR przez BASCOM

więcej podobnych podstron