Szybkie linki:
 
Galeria serwisu:

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

Fusebity UPDI.

Fusebity UPDI - FUSE5
Grupy fusebitów mikrokontrolerów UPDI - ustawienia mikrokontrolerów tego typu zostały rozdzielone i pogrupowane w kilka grup. Oto kolejna z nich - Fuse5. To jest ważny fuse systemowy, grupuje funkcje związane z dostępem i bezpieczeństwem, m.in.: konfigurację pinu RESET, konfigurację UPDI, opcje CRC pamięci programu. Potrafi zablokować mikrokontroler.
Fuse5 - zawiera krytyczne ustawienia systemowe, które wpływają na możliwość programowania i resetu mikrokontrolera oraz mechanizmów ochronnych.

FUSE grupa 05 (FUSE5) - SYSCFG0 - jest fuse systemowym. Zmiana jego wartości może trwale ograniczyć dostęp do mikrokontrolera. Szczegóły bitów:

CRCBOOTDIS (bit 7) - CRC sekcji rozruchowej w trybie wyłączenia resetowania. Steruje włączeniem sprzętowego CRC pamięci programu. Włącza/wyłącza sprzętowy mechanizm obliczania sumy CRC pamięci programu (Flash). Więcej informacji na temat tej funkcji można znaleźć w opisie CRC. Możliwe wartości bitu:
0 - CRC pamięci programu włączone. Sekcja rozruchowa poddawana jest kontroli CRC przed zwolnieniem resetowania.
1 - Brak obliczania sumy CRC sekcji rozruchowej przed zwolnieniem resetowania.
Włączenie CRC nie jest wymagane do normalnej pracy mikrokontrolera. Mechanizm ten jest przeznaczony głównie do zastosowań przemysłowych i systemów wymagających kontroli integralności kodu.
📌 Zalecane: Pozostawić bit 7 ustawiony na 1, o ile aplikacja nie wymaga sprawdzania CRC Flash.

CRCAPPDIS (bit 6) - Ten bit wybiera obszar Flash, dla którego liczone jest CRC. Czy CRC obejmuje całą pamięć programu, czy tylko część aplikacyjną? Ustawienia bitu:
0 - CRC liczone dla ograniczonego obszaru programu.
1 - CRC liczone dla domyślnego / pełnego obszaru Flash (ustawienie fabryczne).
🔴 Bit 6 nie ma znaczenia, jeśli bit 7 (CRCBOOTDIS) = 1. Czyli:CRC wyłączone → bit 6 nie robi nic. To jest typowa pułapka braku efektów ustawień tego bitu.
📌 Uwaga: Bit ma znaczenie tylko wtedy, gdy CRC pamięci programu jest włączone (bit 7 = 0). Jeśli nie używasz CRC pamięci programu — nie zmieniaj bitów 7 ani 6 Fuse5.
📌 Zalecane: Pozostawić wartość fabryczną (1), o ile aplikacja nie wymaga specjalnej konfiguracji CRC.

ZAREZERWOWANY (bit 5) - jest zarezerwowany do użytku wewnętrznego producenta i nie posiada opisanej funkcji użytkowej. 📌 Zalecane: Zawsze pozostawić bit 5 ustawiony na 1.

TOUTDIS (bit 4) - Wyłączenie czasu oczekiwania Ten bit może wyłączyć blokowanie zapisu do pamięci NVM po POR. Blokada zapisu do pamięci NVM występuje tylko przez pierwsze 16–31 ms po POR, jeśli pin PDI/RST/GPIO (PA0) jest ustawiony jako GPIO lub reset. Użytkownik powinien sprawdzić status zajętości pamięci NVM lub flagę gotowości przed wypełnieniem bufora strony lub wydaniem poleceń NVM.
🔹 Co to jest POR (Power-On Reset)? - to automatyczny reset mikrokontrolera, który następuje po włączeniu zasilania.
🔹 Co to jest NVM (Non-Volatile Memory)? - NVM – Non-Volatile Memory to pamięć nieulotna, czyli taka, która zachowuje dane po wyłączeniu zasilania. Czyli: Flash,EEPROM, Fuse i Lock bity.
Dlaczego NVM wymaga specjalnej obsługi? Pamięć NVM jest zapisywana wolniej niż RAM, wymaga stabilnego napięcia, posiada mechanizmy ochronne.
Ustawienia bitu:
0 - brak blokady zapisu do NVM po POR.
1 - blokada zapisu NVM po POR. ✅ Wartość fabryczna zalecana: 1.

RSTPINCFG[1:0] (bity 3-2) - konfiguracja pinu RESET/UPDI - sterują zachowaniem pinu RESET / UPDI. Pozwalają wybrać między: normalnym funkcjonowaniem RESET, wyłączeniem RESET i użyciem pinu jako GPIO, ograniczeniem funkcji UPDI (w niektórych trybach).
📌 Bardzo ważne: błędna konfiguracja może spowodować utratę dostępu do mikrokontrolera (zablokować mikrokontroler). Ustawienia:
0x0 - GPIO - pin może być używany jak zwykły port wejścia/wyjścia.
0x1 - UPDI - pin używany tylko dla interfejsu UPDI (programowanie/debugowanie).
0x2 - RESET - standardowy tryb pracy pinu, mikrokontroler może się resetować normalnie.
0x3 - Zarezerwowany (nie ustawiać). 📌 Ważne:może spowodować utratę dostępu do mikrokontrolera.
🔹 Fabryczna (bezpieczna): RSTPINCFG = 0x1 (UPDI).
Jeśli ustawisz RSTPINCFG na wartości inne niż "1" i wcześniej zmieniłeś inne fuse wyłączające UPDI → konieczny będzie programator HV-UPDI, aby odzyskać dostęp do mikrokontrolera.

ZAREZERWOWANY (bit1) Bit zarezerwowany ustawiony fabrycznie na "1". Nie ustawiać inaczej.

EESAVE (bit 0) - EEPROM Zapis podczas kasowania układu Uwaga: Jeśli urządzenie jest zablokowane, pamięć EEPROM jest zawsze kasowana podczas kasowania układu, niezależnie od tego bitu. Wartości bitu:
0 - EEPROM skasowany podczas kasowania układu scalonego
1 - EEPROM nie skasowany podczas kasowania układu scalonego


✔️Najczęstsze konfiguracje:
🔹 Fabryczna (bezpieczna): Fuse5 = 0xF6 ✔ Ustawienie zalecane. CRCBOOTDIS =1, CRCAPPDIS =1, ZAREZERWOWANY =1, RSTPINCFG =0x1(UPDI), ZAREZERWOWANY =1, EESAVE=0.
🔹 Użytkownika : Fuse5 = 0xFA ✔ Ustawienie zalecane. CRCBOOTDIS =1, CRCAPPDIS =1, ZAREZERWOWANY =1, RSTPINCFG =0x2 (RESET), ZAREZERWOWANY =1, EESAVE=0.

📌 Ważne:Jeśli ustawisz RSTPINCFG na wartości inne niż "1" i wcześniej zmieniłeś inne fuse wyłączające UPDI → konieczny będzie programator HV-UPDI, aby odzyskać dostęp do mikrokontrolera.


Będziemy uzupełniać przedstawione informacje oraz opisywać kolejne grupy fusebitów. Postaramy się przybliżyć użytkownikom fusebity mikrokontrolerów UPDI. W sposób prosty i przystępny dla każdego.



Licznik serwisu: 8189 , Aktualnie: 3 , Admin kontakt: admin@progel.pl