02 2004 96 97


K U R S
Podstawy projektowania systemów
mikroprocesorowych, część 12
W tej czÍÅ›ci kursu skupiÅ‚em siÍ na omÛwieniu zasad montaÅ‚u
i uruchamiania urzÄ…dzeÒ elektronicznych, zwÅ‚aszcza tych, ktÛre
wykonano z uÅ‚yciem mikrokontrolerÛw. Zasady te majÄ… walor
uniwersalnoÅ›ci, wiÍc mogÄ… przydaĘ siÍ takÅ‚e elektronikom
zajmujÄ…cym siÍ technikÄ… analogowÄ….
przesadą sprawdzenie kał- na inny o mniejszej upływności. Pod-
dej Å›cieÅ‚ki omomierzem czas tych prÛb nie naleÅ‚y obawiaĘ
przed i po wykonaniu siÍ, Å‚e coÅ› zÅ‚ego stanie siÍ z ukÅ‚a-
montału. dem wskutek braku programu w mik-
Mikrokontroler naleły umieś- rokontrolerze - jełeli testy przeprowa-
ciĘ w podstawce, najlepiej precyzyj- dzimy z mikrokontrolerem fabrycznie
nej, wysokiej jakości, gdył na etapie nowym (lub wcześniej uływanym, ale
uruchamiania oprogramowania bÍdzie wyzerowanym), to podczas jego pra-
on wielokrotnie wyjmowany w celu cy na wyprowadzeniach bÍdÄ… utrzy-
MontaÅ‚ i uruchamianie zmiany zawartoÅ›ci pamiÍci Flash. mywaÅ‚y siÍ stany linii takie jak po
systemu mikroprocesorowego Podczas projektowania pÅ‚ytki dru- wyzerowaniu, a wspÛÅ‚pracujÄ…cy z mik-
MajÄ…c gotowy projekt urzÄ…dzenia, kowanej naleÅ‚y pamiÍtaĘ o takim uÅ‚o- rokontrolerem ukÅ‚ad musi byĘ na ta-
moÅ‚emy przystÄ…piĘ do jego wykona- Å‚eniu elementÛw, aby w pobliÅ‚u krÛt- ki stan odporny. Dzieje siÍ tak dla-
nia. W przypadku firm zajmujÄ…cych szej krawÍdzi mikrokontrolera (w tego, Å‚e caÅ‚a pamiÍĘ programu wy-
siÍ masowÄ… produkcjÄ… tego rodzaju obudowie DIP) nie byÅ‚o Å‚adnych peÅ‚niona jest jedynkami logicznymi,
urzÄ…dzeÒ wiele etapÛw produkcji re- przeszkÛd (np. wysokich kondensato- co w przeksztaÅ‚ceniu na instrukcje
alizowanych jest jednoczeÅ›nie, czego rÛw, przekaünikÛw) uniemoÅ‚liwiajÄ…- asemblera przekÅ‚ada siÍ na cykliczne
jednak nie moÅ‚na zastosowaĘ w przy- cych Å‚atwe wyjÍcie go z podstawki wykonywanie instrukcji MOV R7,A,
padku ukÅ‚adu amatorskiego, gdzie za- (przez np. podwaÅ‚enie Å›rubokrÍtem). ktÛra nie ma wpÅ‚ywu na stan wy-
zwyczaj caÅ‚Ä… pracÍ wykonuje jedna Brak dobrego ìdojÅ›ciaî w najlepszym prowadzeÒ.
osoba w nastÍpujÄ…cych etapach: przypadku skoÒczy siÍ poÅ‚amaniem Po sprawdzeniu elementÛw wpÅ‚y-
- projektowanie i wykonanie pÅ‚ytki nÛÅ‚ek mikrokontrolera. wajÄ…cych na poprawnÄ… pracÍ mikro-
drukowanej oraz montaÅ‚ elementÛw, kontrolera naleÅ‚y wyjąĘ go z pod-
- uruchamianie i testowanie czÍÅ›ci Etap 2 stawki i przejśĘ do testÛw ukÅ‚a-
sprzÍtowej, Po zmontowaniu urzÄ…dzenia nale- dÛw peryferyjnych. W tym celu na
- pisanie programu, ły przeprowadziĘ sprawdzenie popra- określonych wyprowadzeniach mikro-
- uruchamianie i testowanie progra- wności jego działania. Na początku kontrolera wywołujemy stany logicz-
mu. dołączamy do urządzenia zasilanie ne odpowiadające sekwencjom steru-
Postaram siÍ przedstawiĘ zasady (najlepiej stosowaĘ zasilacze z ograni- jÄ…cym poszczegÛlne urzÄ…dzenia - je-
postÍpowania w poszczegÛlnych eta- czeniem prÄ…dowym) i sprawdzamy na- dynkÍ logicznÄ… uzyskujemy Å‚Ä…-
pach prac oraz zwrÛciĘ uwagÍ na piÍcia w ukÅ‚adzie, zwÅ‚aszcza na szy- czÄ…c wyprowadzenie do Vcc mikro-
puÅ‚apki czyhajÄ…ce na konstruktorÛw. nie zasilajÄ…cej. JeÅ‚eli wszystko jest kontrolera poprzez rezystor 10...47
w porządku, to mołemy przystąpiĘ do k&!, natomiast zero logiczne uzysku-
Etap 1 testÛw. jemy zwierajÄ…c wyprowadzenie do
JeÅ‚eli konstruktor wykonaÅ‚ kiedy- Najpierw wkÅ‚adamy w podstawkÍ masy. W ten sposÛb moÅ‚emy spraw-
kolwiek jakieÅ› urzÄ…dzenie elektronicz- mikrokontroler (oczywiÅ›cie po odÅ‚Ä…- dziĘ dziaÅ‚anie wiÍkszoÅ›ci ukÅ‚adÛw
ne, to w zasadzie nie potrzebuje Å‚ad- czeniu zasilania) i sprawdzamy dzia- wspÛÅ‚pracujÄ…cych z mikrokontrolerem.
nych dodatkowych informacji do re- łanie oscylatora kwarcowego generu- Niestety nie jest mołliwe spraw-
alizacji tego etapu projektu. ObowiÄ…- jÄ…cego sygnaÅ‚ zegarowy. Oscylosko- dzenie w ten sposÛb skomplikowa-
zujÄ…ce zasady postÍpowania sÄ… iden- pem lub czÍstotliwoÅ›ciomierzem nych ukÅ‚adÛw synchronicznych, re-
tyczne jak w przypadku innych urzÄ…- sprawdzamy przebiegi na wyprowa- agujÄ…cych na sekwencje stanÛw linii
dzeÒ elektronicznych. NaleÅ‚y jedynie dzeniu XTAL1 lub XTAL2 przy uÅ‚y- - po prostu nie bÍdziemy w stanie
pamiÍtaĘ o tym, aby zwracaĘ uwagÍ ciu wysokoimpedancyjnej sondy. ich wygenerowaĘ, chociaÅ‚by wskutek
na elektrycznÄ… poprawnośĘ i czystośĘ W przypadku ìduÅ‚ychî '51 moÅ‚na wielokrotnych impulsÛw powstajÄ…cych
montaÅ‚u - jakiekolwiek zimne luty, rÛwnieÅ‚ sprawdziĘ wystÍpowanie przy doÅ‚Ä…czaniu wyprowadzeÒ do ma-
zwarcia, pÍkniÍcia Å›cieÅ‚ek czy inne przebiegu na wyprowadzeniu ALE. sy czy Vcc. W tym przypadku pozo-
tego rodzaju uszkodzenia mogÄ… byĘ OprÛcz sprawdzenia przebiegÛw zega- staje nam jedynie sprawdzenie popra-
bardzo trudne do wykrycia, zwÅ‚asz- rowych naleÅ‚y rÛwnieÅ‚ woltomierzem wnoÅ›ci poÅ‚Ä…czenia elektrycznego kon-
cza jeÅ‚eli pojawiÄ… siÍ na liniach, ktÛ- sprawdziĘ wyprowadzenie koÒcÛwki kretnej nÛÅ‚ki mikrokontrolera z wy-
rych stan moÅ‚e byĘ trudny do okreÅ›- RESET - napiÍcie na tym wyprowa- prowadzeniem wspÛÅ‚pracujÄ…cego ele-
lenia podczas pracy programu (np. dzeniu nie powinno przekraczaĘ 1 V - mentu. Na tym etapie naleÅ‚y rÛwnieÅ‚
magistrale danych czy adresowe, li- jeÅ‚eli jest inaczej, to naleÅ‚y wymie- sprawdziĘ napiÍcia poziomÛw logicz-
nie portu szeregowego). Nie bÍdzie niĘ kondensator obwodu zerowania nych na wyprowadzeniach poszcze-
Elektronika Praktyczna 2/2004
96
K U R S
gÛlnych ukÅ‚adÛw, aby uniknąĘ kÅ‚o- Å‚owych, ale mniej istotnych z punk- wienia siÍ nad algorytmem wykorzys-
potÛw z ich interpretacjÄ… przez mik- tu widzenia uÅ‚ytkownika urzÄ…dzenia. tywanym do wykonania danej opera-
rokontroler na etapie uruchamiania PrzykÅ‚adowÄ… sekwencjÍ prac przed- cji. CzÍsto na tym etapie moÅ‚na zna-
programu. stawiono poniÅ‚ej: leüĘ jakiÅ› bÅ‚Ä…d w rozumowaniu czy
Po sprawdzeniu wszystkich ele- - Oprogramowanie timerÛw i ewentu- inny bÅ‚Ä…d algorytmu. Po upewnieniu
mentÛw ukÅ‚adu i usuniÍciu ewentual- alnie obsÅ‚ugi ich przerwaÒ wyko- siÍ co do poprawnoÅ›ci algorytmu mo-
nych nieprawidÅ‚owoÅ›ci moÅ‚emy przy- rzystywanych do synchronizacji Å‚emy zacząĘ sprawdzaĘ kod ürÛdÅ‚o-
stÄ…piĘ do pisania programu. pracy poszczegÛlnych elementÛw wy. Najpierw naleÅ‚y sprawdziĘ, czy
programu. napisany przez nas program realizuje
Etap 3 - Napisanie procedury obsÅ‚ugi wy- okreÅ›lony algorytm - bÅ‚Ídy jak zwyk-
NaleÅ‚y pamiÍtaĘ, Å‚e jest potrzeb- Å›wietlacza i prÛba wyÅ›wietlenia ja- le tkwiÄ… w szczegÛÅ‚ach: np. licznik
ny jakiÅ› czas na wykonywanie po- kiejkolwiek informacji. liczÄ…cy od 1 zamiast od 0 (lub od-
szczegÛlnych instrukcji, a zwÅ‚aszcza - Napisanie procedury obsÅ‚ugi klawia- wrotnie), üle okreÅ›lone skoki warun-
czas wykonywania pÍtli, ktÛry moÅ‚e tury. kowe (przy nieprawidÅ‚owym warun-
byĘ bardzo długi mimo niezbyt - Przygotowanie procedur obsługują- ku), brak rozkazu powrotu do pro-
skomplikowanej sekwencji rozkazÛw. cych komunikacjÍ z uÅ‚ytkownikiem, gramu gÅ‚Ûwnego (jeÅ‚eli procedura wy-
NaleÅ‚y o tym pamiÍtaĘ zwÅ‚aszcza np. wyÅ›wietlanie komunikatÛw, pre- woÅ‚ywana przez LCALL), itp.
podczas pisania procedur obsÅ‚ugi zentacja wynikÛw, reakcja na na- Niekiedy pojawiajÄ… siÍ problemy
przerwaÒ - zbytnio rozbudowana pro- ciskanie klawiszy. ujawniajÄ…ce siÍ dopiero przy wywo-
cedura obsÅ‚ugi przerwania moÅ‚e caÅ‚- - Przygotowanie fragmentÛw programu Å‚ywaniu konkretnych fragmentÛw pro-
kowicie zablokowaĘ pracÍ programu zwiÄ…zanych z elementami wspÛÅ‚pracu- gramu, na przykÅ‚ad zbytnie rozrasta-
gÅ‚Ûwnego (kolejne wywoÅ‚anie prze- jÄ…cymi: obsÅ‚uga RS-232, I2C, doÅ‚Ä…czo- nie siÍ stosu zwiÄ…zane z duÅ‚Ä… liczbÄ…
rwania zanim zakoÒczy siÍ dziaÅ‚anie nych przekaünikÛw, czujnikÛw itp. wywoÅ‚aÒ LCALL - powoduje to za-
programu obsÅ‚ugi poprzedniego). - Przygotowanie funkcji realizujÄ…cych mazywanie najniÅ‚ej leÅ‚Ä…cych komÛrek
Z punktu widzenia czysto doku- pomiary czy w inny sposÛb pozys- pamiÍci przechowujÄ…cych istotne da-
mentacyjnego warto zadbaĘ o wprowa- kujących dane. ne.
dzanie komentarzy do kodu ürÛdÅ‚o- - Przygotowanie procedur obliczenio- Uruchomienie oprogramowania
wego opisujÄ…cych krok po kroku wych wykonujÄ…cych operacje na i zakoÒczenie jego testÛw w zasadzie
dziaÅ‚anie programu oraz przyjÍcie na- gromadzonych danych i wyznaczajÄ…- koÒczy proces budowy ukÅ‚adu mik-
zewnictwa etykiet opisujÄ…cych komÛr- cych wyniki obliczeÒ przeznaczone roprocesorowego. Pozostaje jeszcze
ki pamiÍci zgodnych z przechowywa- do prezentacji. przygotowanie odpowiedniej obudowy
ną zawartością (np. WYNIK, Zaprezentowana sekwencja nie i mołna przystąpiĘ do uływania za-
BAJT_WEJSCIOWY, BLOKADA, itp.). musi byĘ identyczna dla kałdego projektowanego, wykonanego i oprog-
Znakomicie ułatwi to ewentualne mo- systemu mikroprocesorowego, najlepiej ramowanego urządzenia.
dyfikowanie programu opracowanego jednak jest, gdy program przygotowu-
np. pÛÅ‚ roku temu - same suche in- jemy z grubsza zgodnie z przepÅ‚ywem ZakoÒczenie
strukcje asemblera niestety nie mÛ- danych, gdzie wyniki dziaÅ‚ania jed- Mam nadziejÍ, Å‚e prezentowany
wiÄ… zbyt wiele, zwÅ‚aszcza jeÅ‚eli nie nej czÍÅ›ci programu sÄ… danymi dla artykuÅ‚ przybliÅ‚yÅ‚ Czytelnikom zagad-
pamiÍtamy juÅ‚ dziaÅ‚ania poszczegÛl- innej. nienia zwiÄ…zane z projektowaniem
nych blokÛw programu. Podczas pisania oprogramowania systemÛw mikroprocesorowych, a tak-
OczywiÅ›cie, program nie musi byĘ obsÅ‚ugi kolejnych urzÄ…dzeÒ czy reali- Å‚e zwrÛciÅ‚ im uwagÍ na fakt,
pisany w asemblerze - obecnie do zujących obliczenia, zawsze naleły łe wbrew pozorom zbudowanie urzą-
dyspozycji projektantÛw wykorzystujÄ…- uwzglÍdniaĘ wszystkie moÅ‚liwe do dzenia z mikrokontrolerem nie jest
cych w swoich projektach mikrokont- wystąpienia sytuacje. Chodzi tutaj np. ani trudne, ani drogie, a pełen suk-
rolery '51 jest wiele rÛÅ‚nych kompi- o zakÅ‚Ûcenia zwiÄ…zane z transmisjÄ… ces zaleÅ‚y wyÅ‚Ä…cznie od przestrzega-
latorÛw jÍzyka C, Pascal czy Basic. RS-232 (koniecznośĘ wprowadzenia nia kilku prostych zasad oraz trzy-
maksymalnego czasu oczekiwania na mania siÍ wskazÛwek producenta do-
Etap 4 dane), przepeÅ‚nienie zakresu liczbo- tyczÄ…cych parametrÛw wykorzystywa-
Etap tan jest w zasadzie najbar- wego podczas obliczeÒ (przewidywa- nych ukÅ‚adÛw.
dziej pracochÅ‚onny - rzadko bowiem nie maksymalnej wartoÅ›ci wynikÛw) KorzystajÄ…c z nowoczesnych pakie-
siÍ zdarza, Å‚e napisany program ìru- i inne, a takÅ‚e o odpornośĘ np. na tÛw uruchomieniowych, rÛwnieÅ‚ op-
szaî za pierwszym razem i pracuje nieodpowiednie kombinacje przyciska- rogramowanie takiego systemu nie
bez bÅ‚Ídu. nych klawiszy, kilka klawiszy wciÅ›- jest trudne, a nic tak przecieÅ‚ nie
Nie bez powodu wÅ›rÛd progra- niÍtych jednoczeÅ›nie, prÛba wprowa- cieszy jak samodzielnie opracowane
mistÛw krÄ…Å‚y poglÄ…d, Å‚e napisanie dzenia parametru spoza dozwolonego urzÄ…dzenie wyposaÅ‚one we wszystkie
programu to 10% pracy, nastÍpne zakresu, itp. potrzebne funkcje, ktÛrego dziaÅ‚anie
90% to usuwanie bÅ‚ÍdÛw i wprowa- Wszystkie problemy tego rodzaju znamy od podszewki i w razie ko-
dzanie zabezpieczeÒ zwiÄ…zanych powinny byĘ uwzglÍdnione i odpo- niecznoÅ›ci bÍdziemy potrafili dowol-
z wystÍpowaniem sytuacji nietypo- wiednio rozwiÄ…zane. NaleÅ‚y takÅ‚e pa- nie je zmodyfikowaĘ.
wych. Dlatego juÅ‚ na etapie pisania miÍtaĘ o praktycznym sprawdzeniu ØyczÍ wszystkim Czytelnikom suk-
programu warto zaplanowaĘ podziaÅ‚ tych zabezpieczeÒ (czyli sprÛbowaĘ cesÛw w projektowaniu urzÄ…dzeÒ
pracy na kilka czÍÅ›ci i uruchamianie wywoÅ‚aĘ takie zdarzenie). z mikrokontrolerami i wydaje mi siÍ,
kaÅ‚dego fragmentu programu oddziel- W przypadku, gdy napisany przez Å‚e jednym z efektÛw publikacji tego
nie, dopiero po stwierdzeniu popra- nas program nie dziaÅ‚a lub dziaÅ‚a cyklu bÍdzie duÅ‚a liczba urzÄ…dzeÒ
wnoÅ›ci dziaÅ‚ania czÍÅ›ci poprzedniej. nieprawidÅ‚owo, naleÅ‚y oczywiÅ›cie od- mikroprocesorowych prezentowanych
Najlepiej zacząĘ od elementÛw pro- naleüĘ bÅ‚Ä…d i go usunąĘ. Poszukiwa- w EP, rÛwnieÅ‚ w dziale ìProjekty
gramu przydatnych do testowania nia bÅ‚Ídu wbrew pozorom nie na- CzytelnikÛwî.
kolejnych czÍÅ›ci, a nastÍpnie prze- leÅ‚y rozpoczynaĘ od ìgrzebaniaî PaweÅ‚ Hadam, EP
chodziĘ do funkcji bardziej szczegÛ- w kodzie ürÛdÅ‚owym, ale od zastano- pawel.hadam@ep.com.pl
Elektronika Praktyczna 2/2004
97


Wyszukiwarka

Podobne podstrony:
Biuletyn PPP ElblÄ…g 02 2004
PHP Co nowego Co nowego w piÄ…tej wersji PHP 02 2004
trouble shooting guide TPA400 with multimeter 09 02 2004 ATM 000 001 0
19 02 2004
2004 02 Distribution Comparison Test Intro
02 założenia cyklu olimpijskiego 2001 2004
2004 02 Aplety dla GNOME [Programowanie]
Kolokwium z RP2 02 XII 2004
02 Biesaga T Uzasadnienie norm w bioetyce MP 6 2004 s 23 26
Matematyka dyskretna 2004 02 Arytmetyka
2004 02 Cron [Administracja]

więcej podobnych podstron