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 2004PHP Co nowego Co nowego w piątej wersji PHP 02 2004trouble shooting guide TPA400 with multimeter 09 02 2004 ATM 000 001 019 02 20042004 02 Distribution Comparison Test Intro02 założenia cyklu olimpijskiego 2001 20042004 02 Aplety dla GNOME [Programowanie]Kolokwium z RP2 02 XII 200402 Biesaga T Uzasadnienie norm w bioetyce MP 6 2004 s 23 26Matematyka dyskretna 2004 02 Arytmetyka2004 02 Cron [Administracja]więcej podobnych podstron