FuseBit AVR

background image

Fuse Bity w mikrokontrolerach AVR

Artykuł ten powstał aby w prosty sposob pokazać jak należy ustawiać bity

konfiguracyjne w mikrokontrolerach AVR. Nie mam zamiaru opisywać dokładnie

każdego bitu ale tylko te ktore są najbardziej istotne i najczęściej używane.

Głownie zajmiemy się konfiguracją źrodła sygnału zegarowego i jego dzielnika.

Ponieważ konieczność zmiany wartości Fuse Bitow dla większości początkujących

stanowi ogromne wyzwanie, opis będę się starał przedstawić jak najprościej. Mam

nadzieje że zawarta tutaj wiedza okaże się pomocna i odpowie na szereg

potencjalnych pytań.

Ustawienia bitow konfiguracyjnych możemy dokonać w wielu programach, takich

jak: BASCOM, PonyProg, ISPProgrammer itp. W opisie będę używał zapisu

takiego jak w karcie katalogowej, czyli "0" będzie oznaczało bit zaprogramowany a

"1" - niezaprogramowany.

background image

ATtiny 2313

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATtiny2313 są bity CKSEL3..0 = "0010", SUT1..0 =
"10" oraz CKDIV8 = "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow"
pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8, co
daje w efekcie taktowanie 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 16MHz

Gdy chcemy używać zewnętrznego rezonatora kwarcowego to musimy przestawić bity CKSEL3..1 w
zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "101",
dla 3-8MHz powinno być CKSEL3..1 = "110" a dla częstotliwości większych od 8MHz bity CKSEL3..1 mają
być ustawione na "111".

W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas
powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są
trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i
SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez
ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i
SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 4/8MHz

Wewnętrzny oscylator o częstotliwości 4MHz uruchamiamy ustawiając bity CKSEL3..0 rowne "0010" lub
"0011", dla częstotliwości 8MHz zgodnie z kartą katalogową powinno to być "0100" lub "0101". Czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0.
Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia
zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Dzielenie częstotliwości zegara

Za dzielenie częstotliwości zegara przez 8 odpowiada bit CKDIV8, jest on najczęstsza przyczyna problemow z
działaniem mikrokontrolera. Dzielenie jest aktywne jeśli CKDIV8 = "0"

background image

ATMEGA 8

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 8 są bity CKSEL3..0 = "0001" oraz SUT = "10".
Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC
z najdłuższym czasem startu i taktowaniem 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 8MHz

W tej wersji ustawień, gdy bit CKOPT= "1" zmniejszony jest pobór prądu przez mikrokontroler ale jednocześnie
ograniczona została maksymalna częstotliwośc pracy. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity
CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość
"110", natomiast dla 3-8MHz powinno być CKSEL3..1 = "111"

W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby.
Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi
tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 =
"10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające
powoli narasta.

Zewnętrzny Rezonator Kwarcowy 1 - 16MHz

W tej wersji ustawień, gdy bit CKOPT= "0" maksymalna częstotliwośc pracy wynosi 16MHz. Dla zewnętrznego
rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-
3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-16MHz powinno być CKSEL3..1 = "111"

W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby.
Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi
tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 =
"10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające
powoli narasta.

Wewnętrzny oscylator 1- 8MHz

Dla wewnętrznego oscylatora RC musimy przestawić bity CKSEL3..0 w zależności od częstotliwości jaką chcemy
uzyskać. Dla 1MHz jest to CKSEL3..0="0001", dla 2MHz należy ustawić CKSEL3..0="0010", dla 4MHz ustawiamy
CKSEL3..0="0011", natomiast dla 8MHz wymagana wartość to CKSEL3..0="0100".

W drugim kroku zajmujemy się ustawieniem bitów SUT1..0 które odpowiadają za czas powrotu mikrokontrolera do
normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy
układ BOD jest aktywny uzyskamy dzięki ustawieniu SUT1..0 = "00". Drugi tryb stosowany jest gdy napięcie zasilające
szybko narasta, jest realizowany przez ustawienie SUT1..0 = "01". Trzeci natomiast uruchamiamy stawiając SUT1..0 =
"10", jest stosowany gdy napięcie zasilające powoli narasta.

background image

ATMEGA 16(32)

Ustawienia fabryczne
Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 16(32) są bity CKSEL3..0 = "0001" oraz SUT =
"10". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym
oscylatorze RC z najdłuższym czasem startu i taktowaniem 1MHz.
Zewnętrzny Rezonator Kwarcowy 0,9 - 8MHz
W tej wersji ustawień, gdy bit CKOPT= "1" zmniejszony jest pobór prądu przez mikrokontroler ale jednocześnie
ograniczona została maksymalna częstotliwośc pracy. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity
CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość
"110", natomiast dla 3-8MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby.
Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi
tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 =
"10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające
powoli narasta.

Zewnętrzny Rezonator Kwarcowy 1 - 16MHz
W tej wersji ustawień, gdy bit CKOPT= "0" maksymalna częstotliwośc pracy wynosi 16MHz. Dla zewnętrznego
rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-
3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-16MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby.
Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi
tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 =
"10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające
powoli narasta.

Wewnętrzny oscylator 1 - 8MHz

Dla wewnętrznego oscylatora RC musimy przestawić bity CKSEL3..0 w zależności od częstotliwości jaką chcemy
uzyskać. Dla 1MHz jest to CKSEL3..0="0001", dla 2MHz należy ustawić CKSEL3..0="0010", dla 4MHz ustawiamy
CKSEL3..0="0011", natomiast dla 8MHz wymagana wartość to CKSEL3..0="0100".

W drugim kroku zajmujemy się ustawieniem bitów SUT1..0 które odpowiadają za czas powrotu mikrokontrolera do
normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy
układ BOD jest aktywny uzyskamy dzięki ustawieniu SUT1..0 = "00". Drugi tryb stosowany jest gdy napięcie zasilające
szybko narasta, jest realizowany przez ustawienie SUT1..0 = "01". Trzeci natomiast uruchamiamy stawiając SUT1..0 =
"10", jest stosowany gdy napięcie zasilające powoli narasta.

Interfejs JTAG

Jeżeli bit JTAGEN="0" (zaprogramowany) wtedy piny PORTC.5 - PORTC.2 stanowią wyjście interfejsu JTAG i są na
stałe podciągnięte do +VCC. Nie działaja one wtedy jako zwykłe piny (nie działa konfiguracja w programie ustawiająca
je w roli wejść lub wyjść) i będzie to z pewnością przyczyną problemów, gdy właśnie te wyprowadzenia zostaną użyte
jako wejścia lub wyjścia projektowanego systemu mikroprocesorowego. Aby wspomniane wyprowadzenia zachowywały
się jak pozostała część portu C konieczne jest wyłączenie interfejsu JTAG poprzez ustawienie JTAGEN="1"

background image

ATMEGA 162

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 162 są bity CKSEL3..0 = "0010", SUT1..0 = "10"
oraz CKDIV8 = "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na
wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8, co daje w efekcie
taktowanie 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 16MHz

Gdy chcemy używać zewnętrznego rezonatora kwarcowego to musimy przestawić bity CKSEL3..1 w zależności od jego
częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "101", dla 3-8MHz powinno być
CKSEL3..1 = "110" a dla częstotliwości większych od 8MHz bity CKSEL3..1 mają być ustawione na "111".

W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby.
Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi
tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 =
"10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające
powoli narasta.

Wewnętrzny oscylator 8MHz

Wewnętrzny oscylator o częstotliwości 8MHz uruchamiamy ustawiając bity CKSEL3..0 równe "0010". Czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0
= "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna
być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Dzielenie częstotliwości zegara

Za dzielenie częstotliwości zegara przez 8 odpowiada bit CKDIV8, jest on najczęstsza przyczyna problemow z
działaniem mikrokontrolera. Dzielenie jest aktywne jeśli CKDIV8 = "0"

Interfejs JTAG

Jeżeli bit JTAGEN="0" (zaprogramowany) wtedy piny PORTC.7 - PORTC.4 stanowią wyjście interfejsu JTAG i są na
stałe podciągnięte do +VCC. Nie działaja one wtedy jako zwykłe piny (nie działa konfiguracja w programie ustawiająca
je w roli wejść lub wyjść) i będzie to z pewnością przyczyną problemów, gdy właśnie te wyprowadzenia zostaną użyte
jako wejścia lub wyjścia projektowanego systemu mikroprocesorowego. Aby wspomniane wyprowadzenia zachowywały
się jak pozostała część portu C konieczne jest wyłączenie interfejsu JTAG poprzez ustawienie JTAGEN="1"

background image

ATTiny 13

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATtiny 13 są bity CKSEL1..0 = "10", SUT1..0 = "10" oraz
CKDIV8= "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym
oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8.

Wewnętrzny oscylator 4,8/9,6MHz

Wewnętrzny oscylator o częstotliwości 4,8MHz uruchamiamy ustawiając bity CKSEL1..0 ="01" , dla częstotliwości
9,6MHz zgodnie z kartą katalogową powinno to być CKSEL1..0 ="10". Czas powrotu mikrokontrolera do normalnej
pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny
jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno
narastającego zasilania SUT1..0 = "10"

Wewnętrzny oscylator 128kHz

Wewnętrzny oscylator o częstotliwości 128kHz uruchamiamy ustawiając bity CKSEL1..0 ="11". Czas powrotu
mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0
= "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna
być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"


Wyszukiwarka

Podobne podstrony:
avr spis tresci
AVR na Linuxie
Bootloader dla mikrokontrolerów AVR
evboard, Płytka testowa dla mikrokontrolerów AT89S oraz AVR
Atmega fusebit doctor (HVPP+HVSP) – napraw fusebity
elebot avr
CAN on the AVR
Atmel Avr USB Firmware Upgrade For AT90USB doc7769
Kurs AVR GCC cz 1
Atmel AVR Assembler id 71678 Nieznany (2)
MB AVR ISP instrukcja
z80 wersja polska, ELEKTRONIKA I PROGRAMOWANIE, Mikroprocesory, programowanie Bascom, AVR,
z80 porownanie list, ELEKTRONIKA I PROGRAMOWANIE, Mikroprocesory, programowanie Bascom, AVR,
opis pojec, ELEKTRONIKA I PROGRAMOWANIE, Mikroprocesory, programowanie Bascom, AVR,
AVR i ARM7 Programowanie mikrokontrolerow dla kazdego avrar7
Zapoznanie z AVR i pierwsze programy

więcej podobnych podstron