P R O J E K T Y C Z Y T E L N I K Ó W
Dział Projekty Czytelników zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze
odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż
sprawdzamy poprawność konstrukcji.
Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie,
że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany. Honorarium za publikację
w tym dziale wynosi 250,- zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie
prawo do dokonywania skrótów.
Prosty programator mikrokontrolerów
AT89Cx051/AT89C5x
Projekt
107
Na rynku dostÍpnych
ryjnychî, a nie komercyjnych
jest wiele programatorÛw
(choĘ mołna go stosowaĘ i tu-
uniwersalnych (drogich)
taj). Okazuje siÍ, Å‚e w Inter-
i specjalizowanych dla
necie opisÛw takich progra-
danej grupy ukÅ‚adÛw
matorÛwjest wiele.Jednak al-
(taÒszych). Taki wÅ‚aÅ›nie
dla nich jest bo ich oprogramowanie pozo-
tani, lecz funkcjonalny
cena narzÍdzi sprzÍto- stawia wiele do Å‚yczenia albo
programator przedstawiamy
wych (ukÅ‚ady PCF8574A sÄ… mojÄ… drobne, acz istotne bÅ‚Í-
w artykule.
stosunkowo drogie). SÅ‚usznÄ… dy w schemacie.
alternatywÄ… w takim wypadku
Niewątpliwą zaletą mik- jestzbudowanie własnego pro- Budowa i działanie
rokontrolerÛw zgodnych pro- gramatora, ktÛrego koszt wy- PostanowiÅ‚em wiÍc zapro-
gramowo z 8051, jest mno- konania bÍdzie ograniczony do jektowaĘ wÅ‚asny programator,
gośĘ dostÍpnego koduürÛdÅ‚o- minimum. Od takiego progra- ktÛry bÍdzie domyÅ›lnie pro-
wego. Stwarza to mołliwośĘ matora wymagana jest tylko gramował układy AT89Cx051,
Å‚atwego wyprÛbowania jednacecha- ma kasowaĘi za- a po zastosowaniu dodatko-
swoich siÅ‚ m.in. w asemble- pisywaĘ pamiÍĘ Flash ukÅ‚adu. wej pÅ‚ytki, takÅ‚e AT89C5x.
rze. Zapewne wielu elektro- Nie musi on ustawiaĘładnych Zakładam, łe rozpoczynający
nikÛw pragnÍÅ‚oby takÅ‚e doÅ‚Ä…- dodatkowych opcji w progra- przygodÍ z mikrokontrolerami
czyĘ do grona uÅ‚ytkownikÛw mowanym ukÅ‚adzie, gdyÅ‚ ma dysponujÄ… zazwyczaj kompu-
Bascoma 8051, jednak barierÄ… sÅ‚uÅ‚yĘ on do celÛw ìlaborato- terem, wiÍc sterowanie pracÄ…
Rys. 1
Elektronika Praktyczna 2/2003
93
P R O J E K T Y C Z Y T E L N I K Ó W
Rys. 2
programatora zostaÅ‚o przerzu- caÅ‚kujÄ…cy dla sygnaÅ‚u ìzega- W adapterze dla ukÅ‚adÛw cu wlutowujemy goldpiny (do
cone na PC-ta. Program do rowegoî. Jest on niezbÍdny AT89C5x (schemat elektrycz- jumperÛw - JP2 kÄ…towe - i za-
jego obsÅ‚ugi zostaÅ‚ napisany gdy stosujemy dÅ‚ugi przewÛd ny na rys. 2) wewnÍtrzny licz- silania) oraz zÅ‚Ä…cze drukarko-
w Turbo Pascalui jest dostÍp- poÅ‚Ä…czeniowy. W praktyce nik adresu ukÅ‚adÛw we, od ktÛrego naleÅ‚y wczeÅ›-
ny na pÅ‚ycie CD-EP2/2003. okazaÅ‚o siÍ jednak, Å‚e R1 AT89x051 zostaÅ‚ zastÄ…piony niej odkrÍciĘ plastikowÄ… czÍśĘ
Schemat elektryczny pro- w wiÍkszoÅ›ci przypadkÛw po- przez liczniki U9 i U10, co lub zwiÍkszyĘ w niej odlegÅ‚ośĘ
gramatora pokazano na rys. 1. winien byĘ zwarty. pozwala adresowaĘ pamiÍĘ nÛÅ‚ek pomiÍdzy rzÍdami.
Programator jest wykrywany Zworka JP1 pozwala wy- o 16-bitowym adresie (mołna Uruchomienie rozpoczyna-
automatycznie przez oprogra- braĘ ürÛdÅ‚o sygnaÅ‚u zegaro- go w razie potrzeby wykorzys- my od podÅ‚Ä…czenia napiÍcia
mowania za sprawą połącze- wego. Kiedy programujemy taĘ do programowania innych zasilania(12 V,stabilizowane)
nia wyprowadzeÒ 13 i 14 zÅ‚Ä…- powinniÅ›my wybraĘ pozycjÍ ukÅ‚adÛw, np. pamiÍci EP- i sprawdzenia poprawnoÅ›ci
cza drukarkowego. Owo 1-2, zaÅ› jeÅ›li chcemy ìna szy- ROM). UkÅ‚ady te sÄ… zerowane napiÍĘ w podstawce do pro-
zÅ‚Ä…cze ma tÍ zaletÍ, Å‚e nie bkoî sprawdziĘ poprawnośĘ poprzez tranzystor T3 w cza- gramowania ukÅ‚adu. NastÍpnie
potrzeba nam dodatkowego naszego prostego programu sie, gdy nie ma Å‚adnego na- moÅ‚emy zabraĘ siÍ do pierw-
kabla do portu rÛwnolegÅ‚ego (np. generatora) po zaprogra- piÍcia programujÄ…cego. Naj- szego programowania.
- wystarczy odłączyĘ go od mowaniu układu, naleły wy- lepszym rozwiązaniem jest Druga płytka - adaptera
drukarki. Program sprawdza braĘ pozycjÍ 2-3. Kiedy chce- umieszczenie w miejsce T3 dla AT89C5x- pomimo wszel-
rÛwnieÅ‚, czy programowany my programowaĘ ukÅ‚ad tranzystora MOSFET (z kana- kich prÛb minimalizacji, zo-
ukÅ‚ad jest wÅ‚oÅ‚ony do progra- AT89Cx51 za pomocÄ… omÛ- Å‚em typu N) i usuniÍcie re- staÅ‚a zaprojektowana jako
matora (linia ACK), a w przy- wionego dalej adaptera dla zystora R7. Wtedy układ ze- dwustronna. Wybrałem kom-
padku braku odpowiedniego ìduÅ‚ychî '51 (drugiej pÅ‚ytki) rujÄ…cy nie bÍdzie obniÅ‚aÅ‚ na- promis w liczbie przelotek dla
napiÍcia programujÄ…cego rÛw- powinniÅ›my ustawiĘ dwie piÍcia programujÄ…cego. tych osÛb, ktÛre bÍdÄ… wyko-
nieÅ‚ informuje o bÅ‚Ídzie. zworki na pozycjach 1-2 oraz nywaÅ‚y jÄ… jako dwuwarstwo-
Tranzystor T1, sterowany 3-4. MontaÅ‚ i uruchomienie wÄ… oraz dla osÛb, ktÛre wy-
sygnałem DSL ustala,czy układ Zworka JP2 pozwala wy- Podstawowa płytka pro- konają ją jako jednostronną,
bÍdzie kasowany czy progra- braĘ napiÍcie programujÄ…ce gramatora zostaÅ‚a zaprojekto- a resztÍ poÅ‚Ä…czeÒ wykonajÄ…
mowany. Tranzystor T2, stero- dla ìwiÍkszychî '51, a takÅ‚e wana jako jednowarstwowa. przewodami (np. kynarem
wany sygnaÅ‚em ALF wÅ‚Ä…cza sterowaĘ sygnaÅ‚em zerujÄ…cym Jej wzÛr zamieszczamy wraz Å›cieÅ‚ki sygnaÅ‚owe i jakimÅ›
napiÍcie programujÄ…ce. Dioda mikrokontrolera. W pozycji 1- z oprogramowaniem na CD- grubszym Å›cieÅ‚ki zasilania).
D1 zabezpiecza programowany 2 ustalamy napiÍcie 12 V, zaÅ› EP3/2003. MontaÅ‚ tej pÅ‚ytki rozpoczyna-
ukÅ‚ad przed uszkodzeniem 2-3 5 V. Gdy zdejmiemy zwor- MontaÅ‚ programatora nale- my od podstawek ukÅ‚adÛw,
w przypadku, gdy podÅ‚Ä…czymy kÍ (ustawimy jÄ… prostopadle) Å‚y rozpocząĘ od oÅ›miu zwor. poza U3. NastÍpnie wlutowu-
odwrotnie spolaryzowane na- napiÍcie wyniesie 0. Procedu- Najlepiej od razu rÛwnieÅ‚ ze- jemy elementy dyskretne. Te-
piÍcie zasilania. WÛwczas co rÍ programowania omÛwiÍ da- wrzeĘ takÅ‚e wyprowadzenia razzabieramysiÍza U3i wlu-
najwyÅ‚ej wzroÅ›nietemperatura lej. Dane 8-bitowe sÄ… przesy- rezystora R1. NastÍpnie wlu- towujemy od spodu pÅ‚ytki
stabilizatora U2. Å‚ane do ukÅ‚adu bezpoÅ›rednio towujemy kolejno podstawki dwa rzÍdy 10-nÛÅ‚kowych gol-
Rezystor R1 wraz z kon- z portu (D0...D7) podobnie jak pod ukÅ‚adu scalone, stabiliza- dpinÛw (dla druku jedno-
densatorem C1 stanowi układ sygnał programujący (INI). tor, rezonator kwarcowy. Obu- stronnego wpuszczamy je
dowÍ tego ostatniego, w celu w pÅ‚ytkÍ tylko w niewielkim
ograniczenia liczby harmo- stopniu).
W celu programowania AT89C55 należy dodać dwie ścież-
nicznych, warto połączyĘ Po tej operacji osoby wy-
ki dla linii A14 oraz A15. W tym celu należy połączyć:
z masÄ…, co jest moÅ‚liwe, gdy konujÄ…ce pÅ‚ytkÍ jednostronnÄ…
- 8 wyprowadzenie 74LS93 (U10) z 10 wyprowadzeniem
zamontujemy go na leÅ‚Ä…co. JeÅ›- powinny zabraĘ siÍ za poÅ‚Ä…-
AT89C5x (U4),
li wykonaliÅ›my te czynnoÅ›ci, czenia przewodowe (z gÛrnej
- 11 wyprowadzenie 74LS93 (U10) z 11 wyprowadzeniem
zabieramy siÍ do montaÅ‚u ele- warstwy druku dwustronne-
AT89C5x (U4). mentÛw dyskretnych. Na koÒ- go). Goldpiny nie bÍdÄ… nam
Elektronika Praktyczna 2/2003
Elektronika Praktyczna 2/98
94
P R O J E K T Y C Z Y T E L N I K Ó W
szym programatorze, musimy
WYKAZ ELEMENTÓW
je przekonwertowaĘ do pliku
bin. Mołemy to uczyniĘ z łat- Rezystory
wością stosując np. program R1: 1k&! lub zwora (patrz
hex2bin (zamieszczamy go na opis)
CD-EP2/2003) i podajÄ…c jako R2...R4, R6: 10k&!
parametr nazwÍ pliku hex.
R5: 2k&!
Pliki tego formatu generu-
R7: 10k&! lub zwora (patrz
je takłe Bascom 8051, ale na-
opis)
leły je najpierw od niego
R8: 5,1k&!
ìwykraśĘî. Na poczÄ…tku wy-
Kondensatory
bieramy z menu Op-
Rys. 3 C1: 1nF
tions>Compiler>Output i za-
C2, C3: 20...40pF
niestety pasowały do pod- matora wymagane zasilanie, znaczamy pola Binary File
C4, C9: 100nF
stawki precyzyjnej w płytce ale bez przewodu od drukarki. i HEX File (w razie potrzeby
C5, C6, C7: 10µF/10V
bazowej. Musimy wykonaĘ 2. Ustawiamy jumper JP1 Old Intel HEX File). NastÍp-
prostÄ… przejÅ›ciÛwkÍ - czyli na pozycji 2-3 (xtal), a JP2 2- nie przechodzimy do Op- Półprzewodniki
uÅ‚yĘ dwÛch jednorzÍdowych 3 (5 V - reset on). tions>Programmer>Other. U2: 7805
podstawek precyzyjnych. One 3. Wkładamy układ W polu Programmer wybiera- U9: CMOS 4040
bÍdÄ… juÅ‚ nam pasowaÅ‚y. AT89Cx051 do podstawki. my External Programmer, od-
U10: 74LS93
Ewentualnie, zamiast tego ca- 4. Zdejmujemy JP2 (reset znaczamy opcje Auto Flash
D1: 1N4148
Å‚ego ìzamieszaniaî wokÛÅ‚ U3, off) - od tej pory nasz pro- i Auto Verify, a w Program
T1, T2: BC547B
mołemy ułyĘ kabla (taśmy) gram jest wykonywany. wskazujemy program edycyj-
T3: BC547B lub MOSFET-N
z wtykiem emulacyjnym. 5. Program restartujemy ny notepad i zaznaczamy Use
BS170, BS109 (patrz opis)
Uruchomienie drugiej płyt- zakładając ponownie JP2 na HEX File. W okno Parameter
Różne
ki polega na prawidÅ‚owym pozycjÍ 2-3 (5 V). wpisujemy {file}, a w Mode
U1: podstawka precyzyjna
wpiÍciu U3 do podstawki U1, 6. OdÅ‚Ä…czamy zasilanie wybieramy Go to application
DIP20
a nastÍpniezmierzeniu w pod- i wyjmujemy zaprogramowa- directory and run. JeÅ›li po-
U3: dwa goldpin-y oraz
stawkach napiÍĘ zasilajÄ…cych ny ukÅ‚ad. trzebujemy danych w forma-
dwie podstawki precyzyjne
(uwaga na licznik U10, ktÛry Programowanie mikrokon- cie bin to odznaczamy opcjÍ
jednorzędowe
ma napiÍcie zasilania na trolerÛw AT89C5x przeprowa- Use HEX File. Po skompilo-
U4: podstawka precyzyjna
nÛÅ‚kach 5 i 10). JeÅ›li sÄ… po- dza siÍ nastÍpujÄ…co: waniu programu wybieramy
DIP40
prawne, to mołemy umieściĘ 1. Ustawiamy dwie zwor- Run Programmer i mołemy
U9: podstawka DIL16
w nich układy scalone. Jeśli ki JP1 na pozycjach 1-2 z poziomu notatnika zapisaĘ
U10: podstawka DIL14
nie, naleÅ‚y dokÅ‚adnie przea- (clock) i 3-4 (xtal), a JP2 na plik bin, a nastÍpnie przejśĘ
Q1: rezonator kwarcowy
nalizowaĘ poÅ‚Ä…czenia. Teraz pozycjÍ 2-3 (5V). do DOS-u i zaprogramowaĘ
4...12MHz
wystarczy uruchomiĘ program 2. Wpinamy (poprawnie!) nasz układ.
i wÅ‚oÅ‚yĘ w podstawkÍ ukÅ‚ad adapter AT89C5x do pÅ‚ytki DOS-em nie musimy siÍ JP1: goldpin z dwoma
do zaprogramowania. bazowej. jednak w Bascomie przejmo- jumperami
3. Podłączamy do progra- waĘ. Gdy nie chcemy stoso- JP2: goldpin z jumperem
Obsługa programatora matora wymagane zasilanie waĘ powyłszej, dośĘ długiej
J1: 36-nóżkowe złącze
Programowanie ukÅ‚adu nie oraz przewÛd od drukarki. metody, wystarczy wybraĘ ja- drukarkowe (żeÅ„skie)
jest zbyt skomplikowane. Naj- 4. Uruchamiamy program ko programator urzÄ…dzenie
J2: goldpin
pierw przedstawiÍ procedurÍ My_x051 z nazwÄ… pliku binar- o nazwie BlowIT Programmer
programowania mikrokontro- nego, ktÛrego zawartośĘ chce- (dostÍpny na pewno w wersji Do
lerÛw AT89Cx051: my umieÅ›ciĘ w programowa- Bascom 8051 2.0.2.0 i 2.0.6.0) cpl p1.7
1. Podłączamy do progra- nym układzie, jako parametr. - prezentowany programator Wait 1
matora wymagane zasilanie 5. Wkładamy programowa- jest z nim kompatybilny. Na- cpl p1.6
oraz przewÛd od drukarki. ny ukÅ‚ad do podstawki. stÍpnie wybieramy odpowied- Loop
2. Ustawiamy jumper JP1 6. JeÅ›li mamy wersjÍ wy- ni port LPT (LPT-address) a dla assemblera:
na pozycji 1-2 (clock), a JP2 sokonapiÍciowÄ… ukÅ‚adu w zakÅ‚adce Parallel (progra- loop1:
2-3 (5 V). (12 V zamiast 5 V), przesta- mator nie zostanie wykryty CPL P1.7
3. Uruchamiamy program wiamy jumper JP2 na pozycjÍ automatycznie), ustawiamy MOV A,#5
My_x051 z nazwą pliku binar- 1-2 (12 V). Port Delay np. na 5 i odzna- ;zależnie od częstotli-
nego, ktÛrego zawartośĘ chce- 7. Wykonujemy punkty 6, czamy pozostaÅ‚e pola. Od tej ;woÅ›ci rezonatora
my umieściĘ w programowa- 7 i 8 dla AT89Cx051. pory mołemy programowaĘ ;kwarcowego
nym układzie, jako parametr. Oprogramowanie sterujące z poziomu Bascom-a układy loop2:
4. WkÅ‚adamy ukÅ‚ad do programatora bÍdzie wciÄ…Å‚ do 4 kB pamiÍci Flash. Pozo- PUSH ACC
podstawki. rozwijane tak, aby nie wyma- staje jeszcze dodaĘ, łe trzeba CLR A
5. Przestawiamy jumper gało szybkiego CPU (w tej prawidłowo wybraĘ ustawie- loop3:
JP2 na pozycjÍ 1-2 (12 V). chwili czas mierzony jest bar- nie zworek: JP1 w pozycji 1- MOV B,#0
6. Wciskamy ENTER. dzo dokładnie, zajmując przy 2 (dla AT89C5x dodatkowo DJNZ B,$
7. Po zakoÒczeniu progra- tym znaczny czas procesora). w 3-4), JP2 dla AT89Cx051 DJNZ ACC,loop3
mu przestawiamy jumper JP2 DostÍpna jest takÅ‚e wersja w pozycji 1-2, a dla AT89C5x POP ACC
z powrotem na pozycjÍ 2-3 przystosowana do pracy ìpod w zaleÅ‚noÅ›ci od wersji (5/ DJNZ ACC,loop2
(5 V). opiekÄ…î systemem Windows 12 V). CPL P1.6
8. Odłączamy zasilanie (rys. 3). Nowe wersje pojawią Przypominam o mołliwoś- SJMP loop1
(niekoniecznie) i (starannie) siÍ na stronie autora: http:// ci sprawdzenia dziaÅ‚ania PozostajejuÅ‚tylko urucho-
wyjmujemy zaprogramowany nopsoft.republika.pl. prostego programu w progra- miĘi sprawdziĘ woltomierzem
układ. matorze (po odłączeniu kabla lub sondą logiczną czy zmie-
PÅ‚ytkÍ bazowÄ… moÅ‚emy Uwagi koÒcowe LPT). NaleÅ‚y tylko ustawiĘ niajÄ… siÍ stany wyprowadzeÒ
wykorzystaĘ takÅ‚e jako prostÄ… WiÍkszośĘ kompilatorÛw odpowiednio zworki. Jako 18 i 19 ukÅ‚adu AT89Cx051.
pÅ‚ytkÍ uruchomieniowÄ…: generuje jedynie pliki hex. przykÅ‚adowy programtestowy Janusz Użycki
1. PodÅ‚Ä…czamy do progra- Aby mÛcje wykorzystaĘ w na- proponujÍ (Bascom): nopsoft@skrzynka.pl
Elektronika Praktyczna 2/2003
95
Wyszukiwarka
Podobne podstrony:
programowanie mikrokontrolerówavt 515 Programator mikrokontrolerów AVR i AT89S8252Programowanie mikrokontrolerów za pomocą programatora USBasp » Majsterkowo plNa początek parę prostych programów które można sprawdzić naAlgorytmy i struktury danych Prosty program Simulated AnnealingPodstawy programowania mikrokontrolerów AVR8 w środowisku AVR Studio 4Programator mikrokontrolerów ATMEL AT89C2051 1051Emulator mikrokontrolerów AT89Cx051programowanie mikrokontrolerow 8051 w jezyku c pierwsze kroki rapidshareProgramowanie mikrokontrolerow 8051 w jezyku Cavt 515 Programator mikrokontro NieznanyZL5PRG Programator mikrokontrolerów 89C51 52 55AVR i ARM7 Programowanie mikrokontrolerow dla kazdego avrar7Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C01H Programowanie prostych zarysowwięcej podobnych podstron