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

(113 KB) Pobierz
Podstawy projektowania systemów mikroprocesorowych, część 1
K U  R S
Podstawy projektowania systemów
mikroprocesorowych, czêæ 1
Dlaczego '51 i dlaczego Atmel? Odpo-
wied jest prosta: ze wzglêdu na wbudo-
wan¹ pamiêæ Flash, nisk¹ cenê i ³atw¹
dostêpnoæ s¹ to mikrokontrolery bardzo
popularne, a ze wzglêdu na du¿¹ popu-
larnoæ ³atwo jest znaleæ tanie, czêsto
bezp³atne, programy narzêdziowe. Umo¿-
liwia to amatorom-elektronikom realizacjê
kompleksowych projektów bez ponoszenia
jakichkolwiek kosztów. Co wiêcej, gwa-
rantowana przez producenta minimalna
liczba cykli zapisu przekracza 1000, co
w zupe³noci wystarcza do przygotowania,
przetestowania i wprowadzenia poprawek
do dowolnie skomplikowanego programu
- nie ma wiêc koniecznoci kupowania
emulatora sprzêtowego.
Zapewne niektórzy Czytelnicy stwier-
dz¹, ¿e s¹ lepsze, szybsze, nowoczeniej-
sze konstrukcje (np. rodzina AVR Atme-
la, PIC-e, czy inne) i bêd¹ mieli trochê
racji, jednak w wiêkszoci typowych za-
stosowañ nie jest potrzebna ani zawrot-
na moc obliczeniowa, ani rozbudowane
peryferie wbudowane w mikrokontroler -
potrzebny jest tani uk³ad, ³atwy do ku-
pienia w sklepie elektronicznym w ma-
³ym miecie, dobrze opisany i prosty
w programowaniu.
Na rynku wydawniczym, w czasopis-
mach i w publikacjach elektronicznych
jest dostêpnych wiele informacji na te-
mat mikrokontrolerów rodziny '51, ich
parametrów, budowy wewnêtrznej, dzia-
³ania uk³adów peryferyjnych i zasad pro-
gramowania. Brakuje pozycji w przystêp-
ny sposób przekazuj¹cej praktyczne in-
formacje dotycz¹ce projektowania uk³a-
dów elektronicznych wykorzystuj¹cych
mikrokontrolery. Choæ w tym artykule
i cyklu nastêpnych skoncentrujemy siê
na najprostszych mikrokontrolerach ro-
dziny '51 firmy Atmel (AT89Cx051,
AT89C51, AT89C52), to podane tutaj in-
formacje przydadz¹ siê równie¿ (poza
wykorzystaniem specyficznych cech wy-
mienionych procesorów) przy realizacji
projektów, w których zastosujemy proce-
sor z rodziny AVR, PIC, uk³ady Motoro-
li czy innych producentów. Poka¿emy
najprostsz¹ drogê prowadz¹c¹ do reali-
zacji konkretnego celu, przedstawimy
najczêciej pope³niane b³êdy i sposoby
ich unikania, omówimy wspó³pracê mik-
Rozpoczynamy cykl artyku³ów, w których zostan¹ przedstawione
najwa¿niejsze zagadnienia zwi¹zane z projektowaniem
systemów mikroprocesorowych. Na modelowy mikrokontroler
wybralimy atmelowskie wersje 8051, które ciesz¹ siê bardzo
du¿ym powodzeniem wród projektantów w naszym kraju.
rokontrolera z uk³adami analogowymi,
ilustruj¹c wszystko schematami i w razie
potrzeby przyk³adowymi procedurami
w asemblerze.
W realiach obecnej elektroniki,
zw³aszcza cyfrowej, bez mikroprocesorów
ani rusz, dlatego najwy¿sza pora, aby
zapoznaæ siê z niezbyt trudn¹ sztuk¹
praktycznego projektowania urz¹dzeñ wy-
korzystuj¹cych mikrokontrolery, która ot-
wiera drogê nowym zastosowaniom nie-
dostêpnym lub trudnym w realizacji przy
u¿yciu zwyk³ych uk³adów cyfrowych
TTL czy CMOS i pozwala na realizacjê
elastycznych rozwi¹zañ dziêki po³¹czeniu
i wspó³pracy uk³adów sprzêtowych i pro-
gramu. Zatem zaczynamy...
tak¿e spadek napiêcia wyjciowego,
zmniejszy siê t³umienie têtnieñ zasilania
i stabilizator - ogólnie mówi¹c - przesta-
nie pe³niæ swoj¹ funkcjê (choæ mikro-
kontroler i uk³ady wspó³pracuj¹ce ci¹gle
mog¹ dzia³aæ - nie bêdzie to jednak
praca pewna). Kondensatory C1 i C2 po-
winny byæ umieszczone jak najbli¿ej wy-
prowadzeñ stabilizatora - zapobiegaj¹
one jego wzbudzeniu. W pobli¿u wypro-
wadzeñ zasilania mikrokontrolera, jak
i ka¿dego innego uk³adu cyfrowego, mu-
sz¹ byæ umieszczone kondensatory blo-
kuj¹ce zasilanie (C4, C5) zapobiegaj¹ce
zak³ócaj¹cemu dzia³aniu uk³adów na szy-
nê zasilania i zabezpieczaj¹ce inne ele-
menty przed zak³óceniami przenoszony-
mi t¹ szyn¹. Pojemnoæ kondensatora C3
nie powinna byæ zbyt du¿a (dla syste-
mów pobieraj¹cych kilkanacie...kilka-
dziesi¹t mA kondensator C3 jest zby-
teczny), du¿o wa¿niejsza jest wartoæ
pojemnoci C przed stabilizatorem, daj¹-
ca odpowiedni zapas energii redukuj¹cy
têtnienia sieci.
Ze stabilizatora 7805 mo¿na uzyskaæ
pr¹d o maksymalnym natê¿eniu 1 A, co
jest wartoci¹ ca³kowicie wystarczaj¹c¹
dla wiêkszoci aplikacji. Wa¿n¹ spraw¹
jest moc tracona w stabilizatorze, która
przy napiêciu zasilaj¹cym rzêdu 12
V i wy¿szym (max. 24 V), zmusza nas
do stosowania radiatora, czasem o doæ
pokanych rozmiarach.
Pobór pr¹du przez mikrokontroler
jest zale¿ny od napiêcia zasilania oraz
od czêstotliwoci taktowania. Producent
podaje pobór pr¹du dla czêstotliwoci
oscylatora 12 MHz, który dla uk³adów
89C5x wynosi 25 mA, a dla uk³adów
89Cx051 wynosi 5,5 mA przy zasilaniu
3 V i 15 mA przy 6 V. Z tego powodu
ma³e Atmele s¹ bardzo atrakcyjn¹ pro-
pozycj¹ dla aplikacji z zasilaniem bate-
Bez pr¹du ani rusz, czyli
zasilanie mikrokontrolera
Wa¿n¹, lecz niejednokrotnie lekcewa-
¿on¹ spraw¹ jest zasilanie mikrokontrole-
ra. Czêsto w³anie niefortunne rozwi¹za-
nie obwodów zasilania jest przyczyn¹ nie-
stabilnej pracy, objawiaj¹cej siê niekontro-
lowanym zerowaniem uk³adu lub genera-
cj¹ zak³óceñ na szynach zasilania i wp³y-
waj¹cych na pracê innych podzespo³ów
wspó³pracuj¹cych z mikrokontrolerem.
Mikrokontrolery AT89C5x mog¹ byæ
zasilane napiêciem 5 V ±20%, natomiast
uk³ady AT89Cx051 umo¿liwiaj¹ zasilanie
ze ród³a o napiêciu od 2,7 do 6 V.
Najbardziej popularnym rozwi¹zaniem
jest zasilanie mikrokontrolera napiêciem
5 V i zastosowanie stabilizatora scalonego
w uk³adzie jak na rys. 1 . Nale¿y pamiê-
taæ, ¿e uk³ady stabilizatorów serii 78xx
potrzebuj¹ do prawid³owej pracy napiê-
cia wejciowego o oko³o 3 V wy¿szego
ni¿ napiêcie wyjciowe, co dla uk³adu
7805 daje minimaln¹ wartoæ napiêcia
wejciowego oko³o 8 V. Je¿eli napiêcie
na wejciu bêdzie ni¿sze, spowoduje to
Rys. 1
Elektronika Praktyczna 3/2003
83
32570941.012.png 32570941.013.png 32570941.014.png
 
K U  R S
List. 1.
ORG 0000H
LJMP POCZATEK
niu siê napiêcia g³ównego nast¹pi do³a-
dowanie kondensatora C3 od napiêcia
zapewnianego przez obwód rezerwowy
do wartoci 4,4...4,7 V (w zale¿noci od
typu D1). Przy niskim napiêciu akumu-
latorka rezerwowego istnieje mo¿liwoæ,
¿e przep³yw pr¹du przez obwód C3 i R2
(oraz wewnêtrzny rezystor mikroproceso-
ra) wywo³a spadek napiêcia na R2, któ-
ry mo¿e wyzerowaæ mikrokontroler.
Obecnoæ C1 oraz rezystancja dynamicz-
na diody D1 ograniczaj¹ prêdkoæ naras-
tania napiêcia, a co za tym idzie war-
toæ pr¹du do³adowuj¹cego C2, zatem
napiêcie na R2 nie osi¹gnie wartoci
gro¿¹cej wyzerowaniem mikrokontrolera.
Opisany uk³ad nie jest zalecany do pra-
cy z mikrokontrolerami AT89C5x, ponie-
wa¿ w przypadku tych uk³adów nale¿a-
³oby zastosowaæ akumulatorek o napiêciu
4,8 V - pojemnoæ akumulatorka 3,6
V nigdy nie bêdzie ca³kowicie wykorzys-
tana, gdy¿ du¿e Atmele nie dzia³aj¹
przy tak niskich napiêciach jak ma³e.
W praktyce czêsto wykorzystywane s¹
urz¹dzenia, które zasilane powinny byæ
tylko w chwili zaistnienia odpowiednie-
go zdarzenia zewnêtrznego - najczêciej
wciniêcia przycisku (np. nadajniki zdal-
nego sterowania, itp.), gdy przez pozo-
sta³y czas uk³ad pozostaje bezczynny, co
przy zasilaniu bateryjnym jest czystym
marnotrawstwem. Na rys. 3 pokazano
fragment schematu przyk³adowego urz¹-
dzenia, którego zasilanie jest w³¹czane
tylko na czas obs³ugi wciniêcia przy-
cisku. Wciniêcie któregokolwiek z przy-
cisków powoduje do³¹czenie ujemnego
bieguna zasilania do masy urz¹dzenia.
Po rozpoczêciu pracy przez mikrokont-
roler, pierwsz¹ instrukcj¹ jest wyzerowa-
nie linii portu P1.3, co powoduje w³¹-
czenie tranzystora T2 i podanie napiêcia
na bazê T1. Nastêpuje w³¹czenie T1
i podtrzymanie zasilania mimo zwolnie-
nia naciniêtego przycisku. Po wykona-
niu programu odpowiedzialnego za ob-
s³ugê naciniêcia konkretnego przycisku
mikroprocesor ustawia liniê P1.3, powo-
duj¹c zatkanie T2 i T1, i od³¹czenie za-
silania. Obwód zasilania mikrokontrolera
;(procedury obs³ugi przerwañ)
POCZATEK:
CLR P1.3
;w³¹czenie podtrzymania zasilania
MOV A,P1 ;odczyt stanu klawiszy
ANL A,#0F0h ;wyzerowanie niepotrzebnych bitów
SWAP A
;zamiana czêci bajtu
MOV R7,A
; otrzymujemy w rejestrze R7 stan klawiszy:
;bit 0 - stan klawisza P1 (0-wciniêty)
;bit 1 - stan klawisza P2 (0-wciniêty)
;bit 2 - stan klawisza P3 (0-wciniêty)
;bit 3 - stan klawisza P4 (0-wciniêty)
;(inicjalizacja liczników, zerowanie zmiennych, itp.)
;(w³aciwa czêæ programu)
SETB P1.3 ;wy³¹czenie podtrzymania po wykonaniu programu
SJMP $
;pozostañ w pêtli (ewentualne oczekiwanie na puszczenie
;d³ugo trzymanego klawisza, mimo wy³¹czenia tranzystorów
;dopiero po jego puszczeniu wy³¹czy siê zasilanie)
ryjnym lub wymagaj¹cych bateryjnego
zasilania awaryjnego. Na rys. 2 przed-
stawiono jeden z wielu mo¿liwych wa-
riantów rezerwowego zasilania mikrokon-
trolera. Jako ród³o rezerwowe zastoso-
wano akumulatorek 3,6 V. Dobrze w tej
roli sprawdzaj¹ siê akumulatorki NiCd
3,6 V/60 mAh, stosowane dawniej
w p³ytach g³ównych komputerów PC.
Mo¿na równie¿ zastosowaæ akumulatorki
wykorzystywane w s³uchawkach telefo-
nów bezprzewodowych, posiadaj¹ one
wiêksz¹ pojemnoæ, lecz s¹ dro¿sze. Dio-
da D2 powinna byæ diod¹ Schottky'ego,
ze wzglêdu na ni¿szy ni¿ w standardo-
wych diodach spadek napiêcia na z³¹-
czu, D1 mo¿e byæ zwyk³¹ diod¹ krze-
mow¹ - stanowi ona zabezpieczenie
przed zasilaniem ca³ego urz¹dzenia ze
ród³a rezerwowego. Rezystor R1 dobie-
ramy w celu uzyskania po¿¹danego pr¹-
du ³adowania akumulatorka - nale¿y
przy tym pamiêtaæ, ¿e akumulatorek bê-
dzie do³adowywany przez ca³y czas pra-
cy zasilania g³ównego, wiêc nale¿y ogra-
niczyæ pr¹d ³adowania do wartoci dla
niego bezpiecznej. Dla rezystora R1
maksymalny pr¹d ³a-
dowania przy roz³adowanym akumulator-
ku osi¹ga 0,05 mA, co daje nam ponad
miesi¹c czasu potrzebny do pe³nego na-
³adowania. Taka wartoæ pr¹du nie za-
gra¿a nawet w pe³ni na³adowanemu aku-
mulatorkowi. Je¿eli przewiduje siê czês-
tsze przerwy w zasilaniu (ze wzglêdu
np. na przenoszenie urz¹dzenia), warto
zastosowaæ wiêksze pr¹dy ³adowania,
niezbêdne do uzupe³niania zu¿ytej ener-
gii. Wówczas dioda D1 powinna byæ
diod¹ krzemow¹, co przy zasilaniu
5 V ograniczy maksymalne napiêcie na
akumulatorku do bezpiecznej wartoci
oko³o 4,4 V bez koniecznoci ogranicza-
nia pr¹du ³adowania, gdy akumulatorek
zostanie w pe³ni na³adowany.
Zastosowany kondensator C2 blokuje
zasilanie, natomiast C1 jest odpowie-
dzialny za stabiln¹ pracê w momentach
wy³¹czania, a zw³aszcza w³¹czania zasi-
lania g³ównego. Kondensator C1 powi-
nien mieæ pojemnoæ kilka razy wiêksz¹
ni¿ kondensator obwodu zerowania mik-
rokontrolera (C3, R2). Spowodowane jest
to tym, ¿e przy braku C1 po pojawie-
W
Rys. 2
Rys. 3
84
Elektronika Praktyczna 3/2003
o wartoci 47 k
32570941.001.png 32570941.002.png 32570941.003.png 32570941.004.png 32570941.005.png 32570941.006.png 32570941.007.png 32570941.008.png 32570941.009.png 32570941.010.png
 
K U  R S
F, gdy¿ wyd³u¿¹ one czas w³¹cza-
nia i mog¹ spowodowaæ trudnoci z wy-
³¹czeniem (uk³ad mo¿e siê zatrzasn¹æ
ze wzglêdu na niestabiln¹ pracê mikro-
kontrolera przy powolnym opadaniu na-
piêcia zasilania). Pewnoæ dzia³ania
uk³adu zwiêkszy dodanie dodatkowego
obci¹¿enia w postaci rezystora (np. 330
W
energii osi¹gniemy tak¿e, obni¿aj¹c na-
piêcie zasilania. Jest to jednak mo¿liwe
tylko w uk³adach AT89Cx051, ze wzglê-
du na szeroki zakres napiêæ zasilaj¹cych
- uk³ady AT89C5x przestaj¹ poprawnie
pracowaæ ju¿ przy napiêciu zasilania
rzêdu 3,5 V. Niektóre egzemplarze uk³a-
dów AT89Cx051 pracuj¹ poprawnie ju¿
od napiêcia rzêdu 1,8...1,9 V, co z po-
wodzeniem pozwala na zasilanie ich
z dwóch akumulatorków Ni-Cd (2,4 V)
lub dwóch zwyk³ych ogniw cynkowych
czy alkalicznych (3 V).
Jeszcze wiêksze obni¿enie napiêcia
zasilania mo¿liwe jest po wprowadzeniu
mikrokontrolera w tryb Power Down
(przez ustawienie bitu PD rejestru
PCON), co pozwala na obni¿enie napiê-
cia zasilania zarówno du¿ych, jak
i ma³ych Atmeli do wartoci 2 V (gwa-
rantowane przez producenta), a praktycz-
nie nawet do 1,2...1,3 V. Niestety pro-
cesor w takim stanie nie pracuje, pod-
trzymywana jest jedynie zawartoæ we-
wnêtrznej pamiêci danych i rejestrów
SFR. Powrót do normalnej pracy mo¿li-
wy jest tylko przez generacjê sygna³u
RESET (po uprzednim przywróceniu pe³-
nego napiêcia zasilania). Wejcie w stan
Power Down powinno nast¹piæ zatem
przed zanikiem napiêcia zasilania. Reali-
zacja uk³adu wykrywania zaniku g³ów-
nego napiêcia zasilania jest bardzo pros-
(na
rys. 2 - rezystor R3). W chwili zaniku
napiêcia g³ównego na linii zasilania po-
jawi siê potencja³ bliski masy (ze wzglê-
du na do³¹czone inne odbiorniki), co
spowoduje wprowadzenie linii portu
w stan niski - wykrycie stanu niskiego
oznacza brak zasilania i koniecznoæ
podjêcia okrelonych dzia³añ, np. wej-
cie w stan Power Down . Wyjcie z tego
stanu jest mo¿liwe wy³¹cznie po naci-
niêciu przycisku P1 (rys. 2.). Mo¿liwe
jest równie¿ wejcie w tryb pracy Idle
(upienie), który równie¿ zatrzymuje pra-
cê mikrokontrolera, dzia³aj¹ jednak prze-
rwania i generator sygna³u zegarowego.
Wyjcie z trybu Idle nastêpuje w momen-
cie nadejcia zg³oszenia dowolnego prze-
rwania (lub sygna³u RESET) - umo¿li-
wia to realizacjê wielu zadañ, np. reali-
zacjê zegara czasu rzeczywistego pobie-
raj¹cego z zasilania rezerwowego pr¹d
du¿o mniejszy ni¿ przy normalnej pra-
cy. Mo¿liwy jest te¿ powrót do normal-
nej pracy przy do³¹czeniu do linii prze-
rwañ zewnêtrznych obwodu wykrywaj¹-
cego powrót g³ównego napiêcia zasilania
(generuj¹cego na wyjciu stan 0 po po-
jawieniu siê napiêcia).
Pawe³ Hadam
) pod³¹czonego miêdzy szynami Vcc
i GND mikrokontrolera - spowoduje to
jednak wzrost poboru pr¹du podczas
dzia³ania urz¹dzenia. Wad¹ przedstawio-
nego rozwi¹zania jest koniecznoæ przy-
trzymania przycisku tak d³ugo, jak trwa
czas zerowania mikroprocesora, plus czas
potrzebny na wykonanie rozkazów od-
powiedzialnych za w³¹czenie podtrzyma-
nia i odczyt wyprowadzeñ poszczegól-
nych klawiszy (okrelenie, który klawisz
zosta³ naciniêty) - dlatego te czêci
programu powinny byæ jednymi z pierw-
szych rozkazów. Mo¿na to zrealizowaæ
w sposób pokazany na list. 1 . Niew¹tp-
liw¹ zalet¹ tej metody jest praktycznie
zerowy pobór pr¹du, gdy uk³ad jest nie-
aktywny.
Zmniejszanie poboru mocy mo¿na
dokonaæ na drodze zmniejszania czêstot-
liwoci taktowania, która niemal linio-
wo wp³ywa na pobór pr¹du, du¿y zysk
Elektronika Praktyczna 3/2003
85
i pozosta³ych uk³adów nie powinien po-
siadaæ filtruj¹cych kondensatorów elek-
trolitycznych o pojemnociach powy¿ej
10
m
ta - wystarcza do³¹czenie któregokolwiek
wyprowadzenia dowolnego portu mikro-
kontrolera do linii zasilania g³ównego
przez rezystor rzêdu 1 do 10 k
W
32570941.011.png
Zgłoś jeśli naruszono regulamin