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
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
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-
Plik z chomika:
militare
Inne pliki z tego folderu:
Podstawy projektowania systemów mikroprocesorowych, cz. 1.pdf
(113 KB)
Podstawy projektowania systemów mikroprocesorowych, cz. 10.pdf
(113 KB)
Podstawy projektowania systemów mikroprocesorowych, cz. 11.pdf
(152 KB)
Podstawy projektowania systemów mikroprocesorowych, cz. 12.pdf
(59 KB)
Podstawy projektowania systemów mikroprocesorowych, cz. 2.pdf
(119 KB)
Inne foldery tego chomika:
• Prostowniki i zasilacze
[CD14] - Dlaczego Hitler Kazał Zabić Ernsta Rohma
▣ Bardzo Ściśle Tajne
▣ Bitwa o Anglię
▣ Bohaterowie II Wojny Światowej lektor chomikuj
Zgłoś jeśli
naruszono regulamin