Szybkie linki:
 
Galeria serwisu:

Widzisz łapkę - kliknij w obrazek, aby zobaczyć więcej.

Mikrokontrolery AVR - fusebity.

Fusebity mikrokontrolerów AVR - ATMEGA 8
Fusebity AVR - to trwałe bity konfiguracji w mikrokontrolerze Atmega 8, podzielone zostały na trzy grpy (bajty) (LOW, HIGH, LOCK), które wpływają na jego działanie, w tym na ustawienia zegara (np. CKSEL3 ...0), sposób uruchamiania (np. BOOTSZ1/BOOTSZ0) i ochrony mikrokontrolera przed nieautoryzowanym dostępem oraz inne funkcje. Atmega 8 nie posiada rozszerzonej grupy fusebitów (EF). Rozpoczynając od atmega 8 spróbujemy zaprzyjaźnić się z fuse bitami mikrokontrolerów. Przejdźmy teraz do konkretów.

Fusebity Atmega 8:
1. Fusebity grupy LOW (LF) - podstawowe wyjaśnienia.

BODLEVEL: (Brown-Out Detection Level): Włącza lub wyłącza obwód detekcji spadku napięcia zasilania, chroniąc przed resetem przy zbyt niskim napięciu zasilania (np. 2.7V, 4.0V, 6.0V)
BODEN: Włączenie/wyłączenie detektora spadku napięcia zasilania Brown-out
SUT1..0: Wybór czasu startu mikrokontrolera (opóźnienie stabilizacji zegara) domyśne ustaw. 10
CKSEL3..0: Wybór źródła taktowania (np. wewnętrzny oscylator 1/2/4/8 MHz lub kwarc zewnętrzny) domyślne ustaw. 0001

2. Fusebity grupy HIGH (HF) -wyjaśnienia i pojęcia

RSTDISBL: Wyłącza pin RESET jako wejście programowania
WDTON: Włącza/wyłącza Watchdog Timer. Włączenie powoduje, że licznik Watchdog jest zawsze aktywny, nawet po resecie
SPIEN: Włącza/wyłącza programowanie przez interfejs SPI
CKOPT: (Oscillator Options): Zmienia tryb pracy oscylatora (np. wzmacnia amplitudę drgań kwarcu dla poprawy stabilności przy wyższych częstotliwościach)
EESAVE: Powoduje zachowanie zawartości pamięci EEPROM podczas operacji kasowania układu (Chip Erase)
BOOTSZ1...0: Określenie rozmiaru sekcji Bootloader.(00 - 128 B) (11) 1024B
BOOTRST: Wybór wektora startowego (1 – mikrokontroler po resecie zaczyna pracę od adresu 0x0000 aplikacja) lub (0 - od początku sekcji bootloader)

3. fusebity grupy Extended (EF) - Atmega 8 nie ma tej grupy. Nie wszystkie mikrokontrolery AVR mają ten bajt fusebitów.
4. Fusebity grupy LOCK (Lock bity) - bity blokujące, specjalna grupa ustawień służąca do ochrony pamięci przed nieautoryzowanym odczytem lub nadpisaniem.

BLB12, BLB11 - ochrona sekcji Bootloadera. Działają analogicznie do powyższych, ale chronią samą sekcję Bootloader przed instrukcjami wykonywanymi z sekcji Application.
Mode 1 (11): Brak ograniczeń.
Mode 2 (10): Program główny nie może zapisywać do sekcji bootloadera.
Mode 3 (00): Program główny nie może zapisywać ani czytać sekcji bootloadera.
Mode 4 (01): Program główny nie może czytać z sekcji bootloadera.
BLB02, BLB01 - ochrona sekcji aplikacji. Te bity określają, czy kod znajdujący się w sekcji Bootloader może czytać lub zapisywać do sekcji Application (głównej części programu).
Mode 1 (11): Brak ograniczeń.
Mode 2 (10): Bootloader nie może zapisywać do sekcji aplikacji.
Mode 3 (00): Bootloader nie może zapisywać ani czytać (LPM/SPM) sekcji aplikacji.
Mode 4 (01): Bootloader nie może czytać z sekcji aplikacji.
LB2, LB1 - tryby ochrony ogólnej. Te bity decydują o dostępie do całej pamięci Flash i EEPROM przez programatory zewnętrzne (ISP/Równoległe). Wybrane ustawienia:
LB2LB1StanOpis
11No memory lockBrak blokad. Można swobodnie programować i odczytywać układ.
10Dalsze programowanie wyłączoneZablokowana możliwość dalszego programowania (zapisywania) pamięci Flash i EEPROM. Odczyt jest nadal możliwy.
00Dalsze programowanie i weryfikacja wyłączonePełna blokada. Nie można zapisać ani odczytać (zweryfikować) zawartości Flash i EEPROM przez zewnętrzny programator.

Kluczowe zasady logiki LOCK bitów: Kolejność programowania: Lock bity należy programować na samym końcu, po wgraniu programu i ustawieniu fusebitów. Bezpieczeństwo: Jeśli Twoim celem jest ochrona kodu przed skopiowaniem przez konkurencję, ustaw bity LB1 i LB2 na 0. Odblokowanie: Jeśli zablokujesz procesor (00), programator nie pokaże zawartości pamięci. Aby wgrać nowy program, musisz wybrać funkcję „Chip Erase” w oprogramowaniu takim jak AVRDUDE lub Microchip Studio.

Domyślne dla Atmegi8 ustawienia fuse bitów: LF - E1, HF - D9, LOCK - FF.

Co oznacza ustawiony fusebit? - kwestia przypomnienia, co oznacza określenie "ustawiony" lub "zaprogramowany" fusebit. To oznacza bit (ustawiony na "0"). (Ustawiony ns "1") oznacza bit nieustawiony i niezaprogramowany. Wartości tych bitów dają wartość bajtu danej grupy fusebitów.

Będziemy dodawać i pokazywać inne przykłady fusebitów oraz opisywć ich użycie.



Licznik serwisu: 8197 , Aktualnie: 5 , Admin kontakt: admin@progel.pl