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
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
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
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