AVR-owe Fusy.pdf

(401 KB) Pobierz
podzespoly.indd
P O D Z E S P O Ł Y
AVR-owe
„fusy” Artykuł jest przeznaczony
przede wszystkim
dla Czytelników
początkujących
w dziedzinie
mikrokontrolerów. Opisano
w nim różnice pomiędzy
cyklem zegarowym
i cyklem maszynowym
oraz opcje nastaw źródeł
sygnału zegarowego
(sprawiającą często
kłopoty konfigurację
bezpieczników
konfigurujących, tzw.
fuse’ów) w procesorach
AVR. Przedstawiono
wady i zalety różnych
rozwiązań, wskazano
także potencjalne
przyczyny problemów
oraz sposoby radzenia
sobie z nimi.
Sygnał zegarowy – wiadomości
podstawowe
Sygnał zegarowy jest dla proce-
sora tym, czym dla nas bicie serca.
Powoduje, że procesor w ogóle funk-
cjonuje. Często jednak zdarza się, że
sygnał zegarowy doprowadzany z ze-
wnątrz ma inną częstotliwość niż sy-
gnał wewnętrzny, sterujący pobiera-
niem i realizacją przez CPU poleceń.
W związku z tym wprowadzono dwa
pojęcia: cykl zegarowy i cykl maszy-
nowy. Ten pierwszy jest po prostu
odwrotnością częstotliwości genera-
tora zegarowego. Ten drugi uzyskuje
się w wyniku uwzględnienia ewen-
tualnych wewnętrznych podziałów
sygnału zegarowego. Bardzo dobrym
przykładem jest popularny mikrokon-
troler 8051, który w podstawowym
wykonaniu ma cykl maszynowy 12-
-krotnie dłuższy, niż cykl zegarowy.
Również, chociaż nastawa domyślna
jest inna, procesor AVR może mieć
cykl maszynowy różny od zegarowe-
go. Będzie o tym mowa w dalszej
części artykułu.
Pojęcia cyklu maszynowego nie
należy utożsamiać z czasem realizacji
instrukcji. W pewnych przypadkach
może tak być, jednak w większości
popularnych mikrokontrolerów, reali-
zacja pojedynczej instrukcji zajmuje
od dwóch do kilku cykli maszyno-
wych i od 8 do kilkudziesięciu cykli
zegarowych.
Mikrokontroler AVR większość
instrukcji wykonuje w czasie po-
jedynczego cyklu zegarowego. Jego
nowoczesna konstrukcja jest jednym
z przykładów, gdy cykl zegarowy
jest równy cyklowi maszynowemu.
Jak łatwo wywnioskować, im szyb-
szy jest zegar procesora, tym więcej
instrukcji jest on w stanie wykonać
w jednostce czasu. Można z tego
twierdzenia korzystać, jeśli porównu-
je się procesory o identycznych lub
Cykl zegarowy to okres wytwarzanego na bazie
rezonatora kwarcowego, elementów RC itp. sygnału
zegarowego. Można go obliczyć jako odwrotność
częstotliwości generatora zegarowego.
cykl zegarowy = 1/F GEN
bardzo zbliżonych architekturach. Dla
różnych architektur wynik porówna-
nia może być diametralnie różny.
Wybór źródła sygnału zegarowego
Konstrukcja mikrokontrolerów
AVR umożliwia wybór różnych me-
tod generowania sygnału zegarowego.
Można używać zewnętrznego gene-
ratora, rezonatora kwarcowego lub
ceramicznego, niektóre z układów
posiadają wewnętrzny generator, któ-
rego częstotliwość może być ustalana
za pomocą elementów RC dołącza-
nych z zewnątrz lub wbudowanych
w strukturę mikrokontrolera.
Zewnętrzny generator zegarowy to
nic innego jak dołączane z zewnątrz
Cykl maszynowy to okres wewnętrznego sygnału
zegarowego. Oblicza się go po uwzględnieniu we-
wnętrznych podziałów częstotliwości sygnału zegaro-
wego. W mikrokontrolerze AVR cykl maszynowy =
cyklowi zegarowemu.
cykl maszynowy = wewnętrzny podział x 1/F GEN
Elektronika Praktyczna 9/2004
85
32814337.051.png 32814337.058.png
P O D Z E S P O Ł Y
Dla uproszczenia porównań różnych procesorów
wprowadzono pojęcie mocy obliczeniowej , dla
której zwykło się używać jednostki zwanej MIPS.
1 MIPS to nic innego, jak 1 milion operacji na
sekundę. W związku z tym, że w mikrokontrolerze
AVR cykl maszynowy jest równy cyklowi zegaro-
wemu, AVR taktowany sygnałem o częstotliwości
8 MHz ma moc obliczeniową w przybliżeniu równą
8 MIPS. Standardowy 8051, przy takich samych
parametrach sygnału zegarowego, ma moc oblicze-
niową około 0,667 MIPS.
czenia kondensatorów o ściśle okre-
ślonych wartościach. Jak wspomnia-
łem wcześniej, ich wartość wyno-
si ok. 30 pF i jest porównywalna
z wartościami wnoszonych, często
szkodliwych, pojemności montażo-
wych. Czasami może się zdarzyć,
że po zmontowaniu układu oscylator
kwarcowy nie startuje. Gdy zaczyna-
my poszukiwanie usterki i dotykamy
wyprowadzeń mikrokontrolera np.
sondą logiczną – ten w cudowny
sposób „ożywa”. Po oddaleniu sondy
i upływie bliżej nieokreślonego czasu
– ponownie układ zamiera. W jaki
sposób upewnić się, że przynajmniej
teoretycznie dobraliśmy właściwe po-
jemności do stosowanego rezonatora?
Jeśli posiadamy kartę katalogową
rezonatora, należy odszukać parametr
o nazwie Load Capacitance (przykła-
dowe parametry rezonatorów produk-
cji firmy CQ zestawiono w tab . 1 ).
Może on być dla przykładu równy
20 pF. Oznacza to, że dla poprawnej
pracy rezonator kwarcowy powinien
mieć dołączoną pojemność o takiej
wartości. Rezonator nie rozróżnia,
czy jest to pojemność montażowa,
czy dołączona celowo. W związku
z tym nasuwa się jeden wniosek:
wartość pojemności podana przez
producenta rezonatora nie odpowia-
da wartości pojemności dołączanych
kondensatorów. Powinno się również
uwzględnić wnoszoną pojemność
montażową wynikającą ze sposobu
ułożenia ścieżek drukowanych, poło-
żenia punktów lutowniczych, prowa-
dzenia mas, pojemności wejściowej
doprowadzeń mikrokontrolera itp.
Typowo w układach amatorskich
wartość tej dodanej pojemności waha
się pomiędzy 6 a 10 pF. Uwzględ-
niając powyższy opis, aby wyznaczyć
właściwą wartość pojemności kon-
densatorów dołączanych do kwarcu,
źródło sygnału o poziomach takich,
jakich wymaga mikrokontroler. Może
być zbudowany z użyciem elemen-
tów TTL lub CMOS, może być rów-
nież gotowym, zapewniającym bardzo
wysoką stabilność częstotliwości do-
prowadzanego sygnału (np. z własną
stabilizacją termiczną oraz stabiliza-
cją napięcia zasilającego) modułem
generatora zegarowego.
Sygnał z zewnętrznego generato-
ra musi być doprowadzony na nóż-
kę oznaczoną jako XTAL1 ( rys . 1 ).
Nóżkę XTAL2 pozostawia się w ta-
kim przypadku niepodłączoną. Ze-
wnętrzny sygnał zegarowy powinien
mieć bardzo krótkie czasy zboczy
(do kilkudziesięciu ns) i w celu
zapewnienia stabilnej pracy mikro-
kontrolera musi mieć czysty kształt
prostokątny.
Rezonator kwarcowy dołączany
z zewnątrz to jedna z najczęściej
wykorzystywanych metod taktowania
mikrokontrolerów. Jej zaletą są wła-
ściwości samego rezonatora, to jest
duża stabilność generowanej często-
tliwości w funkcji czasu oraz tem-
peratury otoczenia przy jednocześnie
umiarkowanej cenie. Rezonatory do-
stępne są w wielu rozmiarach i dla
różnych wartości częstotliwości. Na
rys . 2 pokazano sposób dołączenia
rezonatora kwarcowego. Mikrokon-
troler AVR posiada układ generatora
wbudowany w strukturę. Kwarc do-
łącza się pomiędzy wyprowadzenia
XTAL1 i XTAL2.
Jest to chyba jedna z najpow-
szechniej stosowanych metod gene-
rowania sygnału zegarowego. Stosu-
jąc ją, nie można jednak zapominać
o podstawowych właściwościach fi-
zycznych i elektrycznych rezonato-
ra. Bez żadnych problemów można
kupić rezonator kwarcowy na pożą-
daną częstotliwość. Należy wybierać
takie, które pracują z rezonansem
równoległym. Jak wynika z rysunku,
do poprawnej pracy wymagają one
dodatkowo dwóch kondensatorów
o pojemności (według materiałów
firmy Atmel) 30 pF±10 pF. Każdy
jest w stanie kupić kwarc i dołączyć
go wraz z dwoma kondensatorami
do mikrokontrolera. Nie ma w tym
żadnego problemu. Otóż może się
okazać, że pojemności dołączone do
rezonatora są mimo wszystko proble-
mem.
Rezonator kwarcowy do popraw-
nej, stabilnej pracy wymaga dołą-
Rys. 1. Dołączenie zewnętrznego generatora zegarowego
Rys. 2. Sposób dołączenia rezonatora kwar-
cowego do popularnego mikrokontrolera
AT90S2313
86
Elektronika Praktyczna 9/2004
32814337.059.png 32814337.060.png 32814337.001.png 32814337.002.png 32814337.003.png 32814337.004.png 32814337.005.png
P O D Z E S P O Ł Y
Tab. 1. Parametry rezonatorów
kwarcowych produkcji firmy CQ
Częstotliwość
rezonansowa
[MHz]
R S
[ V ]
Rezonans
należy skorzystać z następującej za-
leżności (uwzględnia ona wzajemne
oddziaływanie na siebie pojemności):
C X = 2 x (C L – C M ),
gdzie:
C X – wartość pojemności dołączanej
do kwarcu,
C L – parametr Load Capacitance ,
C M – pojemność montażowa (średnio
8 pF).
Wykonajmy obliczenia dla poda-
nych wyżej parametrów (C L = 20 pF,
C M = 8 pF):
C X = 2 x (20 – 8) pF =
= 2 x 12 pF = 24 pF
Jak wynika z obliczeń, obie war-
tości pojemności dołączonych do mi-
krokontrolera powinny mieć wartość
24 pF. Może się jednak zdarzyć, że
dysponujemy rezonatorem, o którym
nie wiemy nic za wyjątkiem wydru-
kowanej na jego obudowie często-
tliwości. Niestety w takiej sytuacji
skazani będziemy na eksperymento-
wanie. Osobiście używam w takich
przypadkach kondensatorów o pojem-
ności około 27 pF przy częstotliwo-
ści do 8 MHz. Powyżej tej częstotli-
wości używam kondensatorów o po-
jemności 22 pF.
Powyższe informacje również na-
leży traktować jako wskazówkę przy
samodzielnym rozwiązywaniu proble-
mów. Normalnie większość rezonato-
rów kwarcowych działa od razu po
załączeniu zasilania, przy dołączo-
nych pojemnościach z zakresu od
22 do 33 pF.
1,8432 32 650
2 32 650
2,097152 32 550
2,4576 32 350
3 32 150
3,2768 32 150
3,57561 18 100
3,57954 16 90
3,58205 18 100
3,58269 16 100
3,6 30 100
3,6864 20 100
3,8392 15 100
3,84 32 100
3,848 15 100
3,93216 20 100
3,98 12 100
3,9936 32 100
4 20 100
4,032 20 100
4,096 16 100
4,1943 12 100
4,4336 16 80
4,5 20 8080
4,8 32 80
4,9152 32 70
5 32 60
5,0688 32 50
5,6448 32 50
6 32 40
6,144 32 40
6,4 32 40
6,5536 32 40
7,159 20 40
7,2 20 40
7,3728 32 40
7,68 32 40
8 32 35
8,192 20 35
8,4672 20 35
8,867238 20 35
9,216 32 30
9,6 32 30
9,8304 32 30
10 32 30
10,24 18 30
10,245 32 30
10,7 32 30
10,752 32 30
11 32 30
11,0592 32 30
11,15 30 30
11,503 20 30
12 32 30
12,288 32 30
12,8 16 25
13,875 32 30
14 32 25
14,1875 22 25
14,318 32 25
14,7456 32 25
15 32 25
15,36 32 25
16 32 20
16,9344 12 20
17,472 32 20
17,7344 32 20
18 32 20
18,432 32 20
19,6608 32 20
20 32 20
22,1184 32 25
24 32 25
24,576 32 40
26,601 18 50
27 20 50
27,095 20 50
Rys. 3. Sposób dołączenia zewnętrz-
nego rezonatora ceramicznego
Rezonator ceramiczny
o 3 wyprowadzeniach
Ma on identyczne właściwości,
jak opisywany poprzednik 2-wypro-
wadzeniowy. Różnica polega jedynie
na tym, że ma wbudowane do we-
wnątrz pojemności tak, że nie mu-
szą być one dołączane z zewnątrz.
Sposób dołączenia tego typu rezona-
tora pokazano na rys . 3 . Przeważnie
skrajne wyprowadzenia podłącza się
odpowiednio do XTAL1 i XTAL2,
a środkowe do masy. Jedna uwaga:
ważne jest, aby masa była dołączo-
na właściwie, wyprowadzenia XTAL1
i XTAL2 mogą być zamieniane.
Wewnętrzny generator RC
Jest on wbudowany w niektóre
mikrokontrolery AVR z serii AT90
i wszystkie ATmega. Niektóre z AVR
posiadają pojedynczy oscylator, pod-
czas gdy inne mają aż cztery róż-
ne do wyboru. Zakres generowanych
częstotliwości można ustawić w gra-
nicach od 4 do 9,6 MHz. W tab . 2
Ceramiczny rezonator
o 2 wyprowadzeniach
Funkcjonalnie rezonator ceramicz-
ny zbliżony jest do kwarcowego,
z tym że jest znacznie tańszy. Kon-
sekwencją ceny jest również jakość
pracy, to jest stabilność i dokładność
generowanej częstotliwości. W związ-
ku z tym nie zawsze będzie się on
nadawał do taktowania pracą interfej-
su asynchronicznego (UART), ale za-
leży to od jakości oferowanej przez
danego producenta. Ma on jednak
i swoje zalety. Rezonator ceramiczny
nie jest tak delikatny jak kwarcowy
i w związku z tym dobrze nadaje się
do środowisk pracy, gdzie występują
duże wibracje. Układ pracy rezona-
tora ceramicznego 2-wyprowadzenio-
wego jest identyczny, jak rezonatora
kwarcowego, jednak wymaga dołącze-
nia większych pojemności. Materiały
firmy Atmel podają dla rezonatorów
ceramicznych wartość 40 pF±10 pF.
Tab. 2. Zestawienie mikrokontrolerów
AVR wyposażonych w wewnętrzny
generator RC
Częstotliwość
generowana przez
oscylator RC [MHz]
ATtiny12 1,2
ATtiny15 1,6
ATmega163 1,0
ATmega323 1,0
ATmega8 1,0; 2,0; 4,0; 8,0
ATmega16 1,0; 2,0; 4,0; 8,0
ATmega32 1,0; 2,0; 4,0; 8,0
ATmega64 1,0; 2,0; 4,0; 8,0
ATmega128 1,0; 2,0; 4,0; 8,0
ATmega8515 1,0; 2,0; 4,0; 8,0
ATmega8535 1,0; 2,0; 4,0; 8,0
ATmega162
27,125 20 50
27,145 20 50
27,195 20 50
28 32 50
28,322 32 50
29,4912 32 50
32 32 50
33,8688 20 50
34,922 32 50
35,2412 18 50
36 32 50
36,864 16 50
40 32 50
44,560 16 50
45,470 16 50
48 32 50
49,86 32 50
8,0
ATmega169
8,0
ATtiny13
4,8; 9,6
ATtiny2313
4,0; 8,0
ATmega48
8,0
Elektronika Praktyczna 9/2004
87
C L
[pF]
Nazwa
mikrokontrolera
32814337.006.png 32814337.007.png 32814337.008.png 32814337.009.png 32814337.010.png 32814337.011.png 32814337.012.png 32814337.013.png 32814337.014.png 32814337.015.png 32814337.016.png 32814337.017.png 32814337.018.png 32814337.019.png 32814337.020.png 32814337.021.png 32814337.022.png 32814337.023.png 32814337.024.png 32814337.025.png 32814337.026.png 32814337.027.png 32814337.028.png 32814337.029.png 32814337.030.png 32814337.031.png 32814337.032.png 32814337.033.png 32814337.034.png 32814337.035.png 32814337.036.png 32814337.037.png 32814337.038.png 32814337.039.png 32814337.040.png 32814337.041.png 32814337.042.png 32814337.043.png 32814337.044.png 32814337.045.png 32814337.046.png 32814337.047.png 32814337.048.png 32814337.049.png 32814337.050.png 32814337.052.png 32814337.053.png 32814337.054.png 32814337.055.png
P O D Z E S P O Ł Y
umieszczono zestawienie współcześnie
produkowanych mikrokontrolerów AVR
wyposażonych w oscylator RC.
Oscylator RC może być różny
w różnych układach, ale we wszyst-
kich spotkamy się z zależnością ge-
nerowanej częstotliwości od wartości
napięcia zasilającego mikrokontroler.
Dlatego też w czasie produkcji wyko-
nywana jest kalibracja oscylatora tak,
aby zapewnić właściwą wartość gene-
rowanej częstotliwości przy zasilaniu
napięciem 3,3 lub 5 V. Wewnętrzny
generator można również kalibrować
samodzielnie, ale mimo wszystko
stabilność generowanej częstotliwości
pozostawia nieco do życzenia. Na
przykład producent zapewnia dokład-
ność ±10%, a wykonując kalibrację
samodzielnie w pracującym układzie,
w stabilnych warunkach zasilania
można osiągnąć dokładność rzędu
±1%. Niestety wartość częstotliwo-
ści będzie również wykazywać pew-
ne fluktuacje w funkcji temperatury.
Firma Atmel posiada znakomitą notę
aplikacyjną mówiącą o sposobach
użycia i kalibrowania oscylatora RC.
Podane są w niej wszelkie zależności
i charakterystyki robocze. Zaintereso-
wanych tematem odsyłam do lektury
AVR053 ( http :// www . atmel . com /).
Aby włączyć wewnętrzny gene-
rator RC, należy ustawić odpowied-
ni bezpiecznik konfiguracyjny ( fuse ).
Wiele ze sprzedawanych układów
ma ten bit ustawiony już w momen-
cie produkcji. Często można dzięki
temu spotkać na grupach dyskusyj-
nych pytania w rodzaju: „Dołączyłem
zewnętrzny kwarc 10 MHz, a układ
pracuje o wiele wolniej. Co się dzie-
je?”. Należy upewnić się, że bit opcji
generatora ma właściwą wartość na-
stawy. Będzie o tym mowa dalej.
Wobec tak licznych możliwości
taktowania pracą mikrokontrolera
pojawić się może pytanie: jak do-
brać właściwy rodzaj generatora do
konstruowanej aplikacji? To nie ta-
kie trudne, jak może się początkowo
wydawać. Jeśli wymagana jest bardzo
duża dokładność generowanej często-
tliwości, należy użyć zewnętrznego,
specjalizowanego generatora. Opcja
ta jest również bardzo wygodna
wówczas, gdy mamy do czynienia
z dużymi wartościami częstotliwo-
ści zegarowej. Praktycznie można ją
polecić już od ok. 30 MHz wzwyż.
Bardzo dużą dokładność i stabilność
generowanej częstotliwości zapewnia
również rezonator kwarcowy. Może
nie aż tak dobrą, jak specjalizowa-
ny generator, ale wystarczającą dla
większości popularnych zastosowań.
Polecam go do stosowania zwłaszcza
przy korzystaniu z transmisji asyn-
chronicznej (UART, tj. RS232, RS485
itp.). Mniejszą dokładność, ale za
znacznie niższą cenę zapewnia re-
zonator ceramiczny. Jego stosowanie
upraszcza układ i obniża koszt, choć
może nie nadaje się do układów
elektroniki profesjonalnej. Zdecydo-
wanie najtańsze i najprostsze w uży-
ciu jest wykorzystanie generatora RC
wbudowanego w strukturę AVR. Nie-
zbyt stabilny, wymagający kalibracji,
ale wystarczający do zastosowania
np. w zabawce, termometrze, czujce
alarmowej i innych niezbyt wymaga-
jących, jeśli patrzeć na nie pod ką-
tem rygorów czasowych, aplikacjach
mikrokontrolera.
Jacek Bogusz, EP
jacek.bogusz@ep.com.pl
88
Elektronika Praktyczna 9/2004
32814337.056.png 32814337.057.png
Zgłoś jeśli naruszono regulamin