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. Wyłączenie tego bitu uniemożliwi dostęp do mikrokontrolera przez interfejs SPI (ISP). Oznacza to, że programatory szeregowe, takie jak USBasp, nie będą miały dostępu do mikrokontrolera.
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: 9858 , Aktualnie: 2 , Admin kontakt: admin@progel.pl