Podstawy projektowania systemów mikroprocesorowych, cz. 2.pdf

(119 KB) Pobierz
Podstawy projektowania systemów mikroprocesorowych, część 2
K U  R S
Podstawy projektowania systemów
mikroprocesorowych, czêæ 2
W drugiej czêci artyku³u przedstawiamy zagadnienia zwi¹zane
z zerowaniem oraz taktowaniem mikrokontrolerów. Zagadnienia
te, doæ czêsto lekcewa¿one, maj¹ ogromny wp³yw na jakoæ
dzia³ania wszelkich urz¹dzeñ cyfrowych.
zwieraj¹cy wypro-
wadzenie RST do masy.
Du¿y rozrzut wartoci tego
rezystora nie pozwala na
odpowiednie dobranie czasu
zerowania - kondensator zalecany
przez producenta w takim uk³adzie
pracy powinien mieæ wartoæ 2,2
W
piêcia zasilania i w razie potrzeby gene-
ruj¹ sygna³ zeruj¹cy o odpowiednich pa-
rametrach (np. DS1812, MAX810 i inne).
Schemat aplikacyjny uk³adu DS1812 po-
kazano na rys. 5 .
W uk³adach pracuj¹cych z podtrzyma-
niem bateryjnym lub spe³niaj¹cych odpo-
wiedzialne funkcje czêsto stosuje siê
uk³ady nadzoruj¹ce watchdog. S¹ to za-
zwyczaj odpowiednio zbudowane liczni-
ki, które musz¹ byæ cyklicznie zerowane
przez odpowiednie rozkazy programowe -
zaniechanie zerowania przez d³u¿szy
okres (np. w wyniku zawieszenia siê pro-
cesora) powoduje wygenerowanie sygna³u
zeruj¹cego (RESET). Choæ uk³ady takie
wbudowane s¹ w bardziej rozbudowane
uk³ady rodziny '51, to jednak
atmelowskie wersje mikrokontrolerów
'51 ich nie posiadaj¹. Na szczêcie mo¿-
na zbudowaæ taki system, wykorzystuj¹c
popularne uk³ady cyfrowe. Podobnie jak
w przypadku zerowania, tak¿e tutaj mo¿-
na zastosowaæ jaki specjalizowany uk³ad
scalony, najtaniej jednak jest u¿yæ pod-
zespo³ów powszechnie dostêpnych i ta-
nich. Na rys. 6 przedstawiony zosta³
uk³ad zeruj¹cy wzbogacony o licznik re-
alizuj¹cy funkcjê watchdog. Wykorzysta-
no tutaj popularny i niedrogi uk³ad cza-
sowy CMOS 4541, tranzystor PNP i kilka
elementów R i C. Elementy R3, R4 i C2
stanowi¹ obwód wyznaczaj¹cy czêstotli-
woæ pracy wewnêtrznego generatora.
Wytwarzane przez niego impulsy s¹ zli-
czane w liczniku, a przepe³nienie licznika
powoduje ustawienie wyjcia Q w stan
niski, co spowoduje wyzerowanie proce-
sora. Stopieñ licznika okrelony jest
przez po³¹czenie wyprowadzeñ A i B. Dla
uk³adu przedstawionego na rysunku nie-
zerowany licznik przepe³ni siê po czasie
oko³o 0,5 sekundy. Wejcie zerowania
licznika watchdog sterowane jest z wy-
F.
Czêsto wykorzystywan¹ par¹ elementów
stanowi¹c¹ uk³ad zerowania jest konden-
sator 10
m
- wartoci
te zapewniaj¹ czasy zerowania w grani-
cach 50...70 ms (z uwzglêdnieniem
wp³ywu wewnêtrznego rezystora), co
z odpowiednim zapasem spe³nia warunek
prawid³owego sygna³u RESET.
Czasami zachodzi potrzeba rêcznego
zerowania mikrokontrolera. Do tego celu
wykorzystuje siê uk³ad zwieraj¹cy kon-
densator obwodu zerowania w celu po-
nownego wprowadzenia stanu wysokiego
na wyprowadzenie RST. Mo¿e to byæ
wykonane zarówno przy pomocy przy-
cisku, styku przekanika, jak i przy po-
mocy elementu elektronicznego - tran-
zystora. Nie zaleca siê zerowania przez
do³¹czenie do wyprowadzenia RST ra-
zem z obwodem RC wyjcia bramki
uk³adu cyfrowego CMOS czy TTL, a to
ze wzglêdu na znaczny pr¹d roz³adowa-
nia kondensatora - do³¹czona bramka nie
ulegnie uszkodzeniu, jednak krótki im-
puls cyfrowy mo¿e nie daæ rady roz³a-
dowaæ kondensatora z powodu ograniczo-
nej wydajnoci pr¹dowej bramki. Je¿eli
chcemy zastosowaæ taki obwód, musimy
zapewniæ zerowanie przy w³¹czeniu za-
silania zrealizowane po stronie wejæ
dodatkowego uk³adu cyfrowego ( rys. 4 ).
Wówczas wystarczy zewnêtrzny impuls
zeruj¹cy o wydajnoci zwyk³ej bramki
cyfrowej - lecz musi on trwaæ minimum
2 cykle maszynowe. W przedstawionym
uk³adzie stanem aktywnym zewnêtrznego
impulsu RESET jest stan niski. W celu
zapewnienia zerowania po w³¹czeniu za-
silania zastosowano podobny do standar-
dowego obwód RC, lecz zamieniaj¹c
miejscami elementy i uwzglêdniaj¹c
w ten sposób negacjê wprowadzan¹
przez bramkê NAND. Z powodu ma³ej
szybkoci narastania napiêcia na konden-
satorze konieczne jest zastosowanie
bramki z wejciem Schmitta.
Warto wspomnieæ, ¿e istnieje wiele
uk³adów zerowania zbudowanych w po-
staci scalonej. Uk³ady te monitoruj¹ na-
W
3, 2, 1, start!
Zerowanie mikrokontrolera
W ka¿dym systemie wykorzystuj¹cym
mikrokontroler musi istnieæ uk³ad za-
pewniaj¹cy generacjê sygna³u zeruj¹cego.
W wyniku zerowania (RESET) wszystkie
linie portów mikrokontrolera przyjmuj¹
stan 1, licznik rozkazów przyjmuje war-
toæ 0000h, rejestry SFR przyjmuj¹ od-
powiednie dla siebie wartoci pocz¹tko-
we. Minimalna d³ugoæ trwania sygna³u
RESET wynosi 2 cykle maszynowe (24
takty zegara), zak³adaj¹c, ¿e uk³ad jest
zasilany i pracuje generator sygna³u ze-
garowego. Jeli zerowanie nastêpuje przy
w³¹czeniu napiêcia zasilania (lub jako
wyjcie ze stanu Power Down ), to trze-
ba uwzglêdniæ czas potrzebny na osi¹g-
niecie przez napiêcie zasilania wartoci
nominalnej oraz czas wzbudzenia siê ge-
neratora sygna³u zegarowego - bezpiecz-
ny czas trwania impulsu RESET wynosi
minimum 10 ms. Omawiane mikrokont-
rolery firmy Atmel wymagaj¹ podania na
wejcie RST stanu 1 w celu wykonania
operacji zerowania.
Wejcie zerowania mikrokontrolerów
'51 jest wejciem Schmitta, pozwala to
na zastosowanie najprostszych uk³adów
zerowania w postaci obwodu RC (rys.
2 i 3, EP3/2003). Mo¿liwe jest wykorzys-
tanie samego kondensatora, poniewa¿
mikrokontrolery Atmel posiadaj¹ wbudo-
wany rezystor o wartoci z przedzia³u
Rys. 4
Rys. 5
Elektronika Praktyczna 4/2003
85
20...300 k
m
F i rezystor 10 k
32576635.008.png 32576635.009.png
 
K U  R S
Rys. 6
W przypadku urz¹dzenia zawieraj¹ce-
go uk³ady wspó³pracuj¹ce wymagaj¹ce
zerowania wraz z mikrokontrolerem, syg-
na³ zeruj¹cy mo¿na uzyskaæ z sygna³u
zeruj¹cego mikrokontroler. Najprociej
jest to zrealizowaæ w przypadku uk³adu
zerowania przedstawionego na rys. 4 -
wystarcza wówczas bezporednie po³¹-
czenie koñcówek RESET wszystkich
uk³adów z koñcówk¹ RST mikrokontro-
lera (lub poprzez negator, je¿eli wspó³-
pracuj¹ce uk³ady s¹ zerowane zerem lo-
gicznym). W pozosta³ych przypadkach
nale¿y zastosowaæ bufor (lub je¿eli po-
trzeba negator) z wejciem Schmitta po-
zwalaj¹cy na sterowanie wolnozmien-
nym przebiegiem ³adowania kondensato-
ra. Je¿eli potrzebne jest zerowanie nie-
zale¿ne od wewnêtrznego zerowania
mikrokontrolera, to nale¿y jako ród³o
sygna³u zeruj¹cego wykorzystaæ jedn¹
z linii portów i do niej do³¹czyæ wy-
prowadzenia RESET wspó³pracuj¹cych
uk³adów. Je¿eli aktywnym stanem wy-
prowadzeñ RESET bêdzie stan wysoki,
to uk³ady zewnêtrzne zostan¹ wyzero-
wane równie¿ podczas zerowania mik-
rokontrolera - wszystkie linie portów
ustawiane s¹ wtedy w stan 1.
prowadzenia P3.5 za porednictwem uk³a-
du ró¿niczkuj¹cego - uk³ad zerowany jest
przy narastaj¹cym zboczu sygna³u na
P3.5. B³êdem by³oby bezporednie po³¹-
czenie wyprowadzenia zeruj¹cego uk³adu
watchdog i wyprowadzenia procesora, po-
niewa¿ uk³ad nie zadzia³a³by w przypad-
ku zawieszenia siê programu, gdy na
P3.5 by³by stan wysoki (watchdog by³by
ca³y czas zerowany).
Obs³uga programowa uk³adu nadzo-
ruj¹cego watchdog polega na cyklicznym
(czêciej ni¿ raz na 0,5 sekundy dla
opisanego uk³adu) generowaniu zbocza
narastaj¹cego (impulsów), powoduj¹cego
wyzerowanie licznika. B³êdem jest u¿y-
cie do tego celu podprogramu obs³ugi
przerwania, gdy¿ mimo zawieszenia siê
programu g³ównego przerwania mog¹ na-
dal funkcjonowaæ w pe³ni sprawnie. Naj-
lepiej jest umieciæ rozkaz negacji wy-
prowadzenia (lub rozkazy ustawiania
i zerowania) w pêtli g³ównej programu
oraz w wywo³ywanych procedurach, jeli
mog¹ one realizowaæ siê d³u¿ej ni¿ czas
potrzebny na przepe³nienie licznika wat-
chdog. Przyk³adowy program móg³by wy-
gl¹daæ tak:
Podprogram FUNKCJA3 nale¿y zreali-
zowaæ tak:
FUNKCJA3:
;(rozkazy danej funkcji)
PETLA:
SETB P3.5
;ustawienie linii zeruj¹cej
;(rozkazy w pêtli)
CLR P3.5
;wyzerowanie linii zeruj¹cej
CJNE A,#25,PETLA
;przyk³adowy warunek wykonywania
;pêtli
;(rozkazy danej funkcji)
RET ;powrót do programu g³ównego
Elektroniczny Tam-Tam, czyli
taktowanie mikrokontrolera
Ka¿dy synchroniczny uk³ad cyfrowy,
a takim uk³adem jest te¿ mikrokontroler,
potrzebuje do pracy sygna³u taktuj¹cego
(zegarowego) w celu synchronizacji prze-
p³ywu informacji miêdzy poszczególny-
mi blokami. Sygna³ zegarowy wyznacza
równie¿ szybkoæ pracy mikrokontrolera.
W wiêkszoci mikrokontrolerów rodziny
'51 cykl maszynowy trwa 12 cykli zega-
rowych, czyli rozkazy (te trwaj¹ce jeden
cykl maszynowy) s¹ wykonywane z czês-
totliwoci¹ równ¹ 1/12 czêstotliwoci ge-
neratora sygna³u zegarowego.
Taktowanie omawianych mikrokont-
rolerów jest bardzo ³atwe - wystarcza
pod³¹czenie do wyprowadzeñ XTAL1
i XTAL2 rezonatora kwarcowego lub ce-
ramicznego i dwóch kondensatorów ( rys.
7 ). W przypadku rezonatorów kwarco-
wych producent zaleca do³¹czenie kon-
densatorów o pojemnoci 20 do 40 pF,
dla rezonatorów ceramicznych - 30...50
pF. Czasami zdarza siê jednak, ¿e ge-
nerator nie chce siê wzbudziæ - zw³asz-
cza dla kwarców o niskich czêstotliwo-
ciach (np. popularny zegarkowy
32768 Hz) - najczêciej pomaga wtedy
zwiêkszenie pojemnoci wspó³pracuj¹-
cych kondensatorów (do np. 470 pF
dla kwarców zegarkowych) lub obni-
¿enie (!) napiêcia zasilania (co spraw-
Nale¿y pamiêtaæ tak¿e o tym, ¿e
przedstawiony uk³ad watchdog rozpoczy-
na pracê po w³¹czeniu zasilania, wiêc
rozkaz zerowania powinien byæ umiesz-
czony tak¿e w czêci inicjuj¹cej proce-
sor (rejestry, timery, itp.), szczególnie
gdy procedury inicjuj¹ce s¹ czasoch³on-
ne, np. zerowanie ca³ej pamiêci danych,
odczyty nastaw z pamiêci zewnêtrznej
lub inicjalizacja wolnych uk³adów do³¹-
czonych do procesora. Je¿eli oka¿e siê,
¿e podprogram inicjuj¹cy nie wyrobi
siê w czasie potrzebnym na przepe³nie-
nie licznika watchdog, mikrokontroler
bêdzie cyklicznie zerowany i program
g³ówny nie ruszy.
Przy projektowaniu urz¹dzenia nie
nale¿y zapominaæ, ¿e uk³ady zeruj¹ce
i watchdoga powinny pracowaæ wtedy,
gdy pracuje mikrokontroler, wiêc jeli
korzystamy z obwodu zasilania awaryjne-
go, te uk³ady musz¹ byæ zasilane rów-
nie¿ z uk³adu podtrzymania napiêcia za-
silaj¹cego. W przeciwnym razie, w przy-
padku zaniku g³ównego napiêcia zasila-
j¹cego, mikrokontroler zostanie zabloko-
wany przez stale podawany sygna³ RE-
SET lub zostanie pozbawiony nadzoru
sprawowanego przez uk³ad watchdoga.
PETLA_GLOWNA:
;(rozkazy w pêtli g³ównej)
LCALL FUNKCJA1
;wywo³anie procedury szybkiej
;(rozkazy w pêtli g³ównej)
LCALL FUNKCJA2
;wywo³anie procedury szybkiej
CPL P3.5 ;negacja wyprowadzenia
;sygna³u zeruj¹cego
;uk³ad watchdog
;(rozkazy w pêtli g³ównej)
LCALL FUNKCJA3
;wywo³anie procedury wolnej
LJMP PETLA_GLOWNA
;skok do pocz¹tku pêtli g³ównej
Rys. 7
86
Elektronika Praktyczna 4/2003
32576635.010.png 32576635.001.png 32576635.002.png 32576635.003.png 32576635.004.png 32576635.005.png 32576635.006.png
K U  R S
Rys. 8
strajaj¹ce dzia³anie pod³¹czanej sondy
(najlepiej stosowaæ sondy sprzêgane bez-
po³¹czeniowo lub sondy z wysok¹ impe-
dancj¹ wejciow¹, ewentualnie stosowaæ
po³¹czenie za porednictwem kondensa-
tora rzêdu 1...2pF). W przypadku stoso-
wania du¿ych Atmeli mo¿liwy jest po-
miar czêstotliwoci wystêpuj¹cej na wy-
prowadzeniu ALE. Je¿eli mikrokontroler
nie wspó³pracuje z zewnêtrzn¹ pamiêci¹
danych (program nie zawiera instrukcji
MOVX), to czêstotliwoæ na wyprowa-
dzeniu ALE jest równa dok³adnie 1/6
czêstotliwoci generatora zegarowego.
Uk³ady rodziny '51 umo¿liwiaj¹
równie¿ pracê z zewnêtrznym ród³em
sygna³u zegarowego ( rys. 8 ). Mikrokon-
trolery Atmel wymagaj¹ w takiej sytua-
cji pozostawienie niepod³¹czonego wy-
prowadzenia XTAL2, a sygna³ zegarowy
(sygna³ prostok¹tny o poziomach odpo-
wiadaj¹cych stanom 0 i 1) nale¿y dopro-
wadziæ do wyprowadzenia XTAL1. Nie
jest konieczne zachowanie wype³nienia
impulsów na poziomie 50%. Mo¿liwe
jest zatem zastosowanie scalonych ge-
neratorów oferuj¹cych du¿¹ dok³adnoæ
i stabilnoæ czêstotliwoci, a w trakcie
uruchamiania mo¿na wykorzystaæ jako
ród³o sygna³u zegarowego generator
funkcyjny z wyjciem TTL - p³ynna
zmiana czêstotliwoci taktowania umo¿-
liwia zwolnienie pracy mikrokontrolera
praktycznie do jego zatrzymania, co po-
zwala na ³atw¹ weryfikacjê generowa-
nych przez mikrokontroler przebiegów
w przypadku k³opotów z uruchomieniem
oprogramowania.
Dobór czêstotliwoci zegarowej mo¿-
na rozpatrywaæ z dwóch punktów widze-
nia: je¿eli potrzebujemy du¿ej szybkoci
dzia³ania, to wybierzemy czêstotliwoæ
blisk¹ maksymalnej, je¿eli budujemy
uk³ad energooszczêdny, to zastosujemy
kwarc zegarkowy lub rezonator cera-
miczny o czêstotliwoci kilkuset kHz.
Zawsze nale¿y pamiêtaæ o tym, ¿e w da-
nej aplikacji mo¿emy potrzebowaæ wy-
konywania jakiego podprogramu ze sta-
³¹ czêstotliwoci¹ - warto wiêc dobieraæ
takie czêstotliwoci taktowania, które po
podzieleniu przez liczbê ca³kowit¹ (naj-
lepiej potêgê dwójki) dadz¹ czêstotliwoæ
jak najbli¿sz¹ tej potrzebnej. Dodatkowo
nale¿y zwróciæ uwagê na fakt, ¿e czês-
totliwoæ zegarowa nie jest dostêpna od
strony programowej - program widzi
jedynie 1/12 tej czêstotliwoci, co nale-
¿y uwzglêdniæ przy wyznaczaniu po-
trzebnej czêstotliwoci zegarowej.
Nale¿y równie¿ wspomnieæ, ¿e uk³ad
wbudowanego w mikrokontroler generato-
ra taktuj¹cego powoduje wzbudzenie siê
kwarcu na jego czêstotliwoci podstawo-
wej (choæ niekiedy rezonatory wzbudza-
j¹ siê na owertonie - zw³aszcza cera-
miczne o niewielkich czêstotliwociach),
wiêc nie da siê bez dodatkowych ob-
wodów taktowaæ mikrokontrolera '51
(nawet jeli jest to przewidziane przez
producenta) z czêstotliwoci¹ wiêksz¹ ni¿
30 MHz (kwarce o wy¿szych czêstotli-
wociach s¹ budowane niemal wy³¹cz-
nie jako owertonowe). Je¿eli zastosujemy
taktowanie zewnêtrzne (np. przy pomo-
cy scalonego generatora), to mo¿na zmu-
siæ niektóre egzemplarze 24 MHz uk³a-
dów firmy Atmel, zarówno 20- jak i 40-
nó¿kowych, do pracy z czêstotliwoci¹
przekraczaj¹c¹ 60 MHz! Obowi¹zuje tu-
taj podobna zasada jak przy overcloc-
kingu procesorów komputerów PC -
uk³ad mo¿e pracowaæ niestabilnie przy
tak du¿ych czêstotliwociach. Je¿eli jed-
nak z powodu wymaganych przez pro-
gram zale¿noci czasowych potrzebujemy
czêstotliwoci taktowania do kilku MHz
wiêkszej od maksymalnej czêstotliwoci
pracy uk³adu, to zazwyczaj nie ma siê
czego obawiaæ i mia³o takie niewielkie
przetaktowanie mo¿na stosowaæ.
Pawe³ Hadam
dzono w praktyce). Zwiêkszanie pojem-
noci pomaga równie¿ wtedy, gdy rezo-
nator wzbudzi siê na czêstotliwoci
owertonowej. Czêstotliwoæ taktowania
dla najszybszych wersji AT89Cx051
i AT89C51 i 52 mo¿e przyjmowaæ war-
toci od 0 do 24 MHz.
Projektuj¹c uk³ad mikroprocesorowy
czêsto zale¿y nam na du¿ej dok³adnoci
czêstotliwoci sygna³u taktuj¹cego, który
mo¿e byæ wykorzystywany np. jako wzo-
rzec czêstotliwoci do realizowanego na
drodze programowej zegara czasu rzeczy-
wistego. Czêstotliwoæ wzbudzenia siê
rezonatora mo¿e ró¿niæ siê od czêstotli-
woci znamionowej i wtedy zrealizowa-
ny zegar bêdzie spieszy³ lub spó-
nia³. W przypadku niewielkich odchy³ek
(np. dla zegara wynosz¹cych kilka-kilka-
nacie sekund na dobê) nale¿y dokonaæ
korekty pojemnoci uk³adu generatora -
zwiêkszanie pojemnoci zmniejsza czês-
totliwoæ (spowalnia zegar). Je¿eli od-
chy³ki s¹ wy¿sze, to pomóc mo¿e szere-
gowe w³¹czenie z rezonatorem indukcyj-
noci (rzêdu
m
Elektronika Praktyczna 4/2003
87
H) lub pojemnoci (kil-
ka...kilkanacie pF). W³¹czenie pojemno-
ci zwiêksza czêstotliwoæ, indukcyjnoæ
czêstotliwoæ zmniejsza. Dobrym pomys-
³em jest zastosowanie tutaj trymera lub
cewki z rdzeniem mog¹cym zmieniaæ po-
³o¿enie. Umo¿liwi to naprawdê dok³ad-
ne ustawienie ¿¹danej czêstotliwoci.
Mo¿liwoæ bezporedniego pomiaru czês-
totliwoci pracy wbudowanego generato-
ra jest ograniczona ze wzglêdu na od-
32576635.007.png
Zgłoś jeśli naruszono regulamin