Při programování mikrokontroléru budeme muset také kromě vlastního programu nastavit programovací propojky. K nastavení programovacích propojek mikrokontroléru ATmega32 slouží šestnáct bitů. Horní byte bývá v programovacích aplikacích nazývaný jako např. HighValue, nebo hFuse. Spodní byte bývá označován jako např. LowValue, nebo lFuse. Původní nastavení propojek v aplikaci PROGISP ukazuje následující obrázek Obr. 1.
OCDEN – Pokud je tento bit nastaven do stavu log. 1, je zakázáno ladění na čipu.
JTAGEN – Pokud je tento bit nastaven do stavu log. 1, je zakázaná funkce JTAG.
SPIEN – Pokud je tento bit nastaven do stavu log. 1, je zakázaná funkce sériového programování a stahování dat.
CKOPT – Nastavení oscilátoru.
EESAVE – Pokud je tento bit nastaven do stavu log. 1, tak při smazání čipu dojde i ke smazání paměti EEPROM.
BOOTSZ1, BOOTSZ0 – nastavení velikosti místa bootloaderu. Jednotlivé kombinace nastavení ukazuje tabulka Tab. 1.
BOOTRST – pokud je tento bit nastaven do stavu log. 1, jsou vektory přerušení a resetu uloženy ve Flash paměti, v opačném případě jsou uloženy v sekci pro bootloader.
Tab. 1: Nastavení velikosti místa bootloaderu.
BOOTSZ1 | BOOTSZ0 | Velikost |
1 | 1 | 256 words |
1 | 0 | 512 words |
0 | 1 | 1024 words |
0 | 0 | 2048 words |
BODLEVEL – Vybírá úroveň pro detekci výpadku napájení a také mění čas naběhnutí mikrokontroléru. Pokud je tento bit nastaven do stavu log. 1, tak je vybrána úroveň 2,7 V. V opačném případě je vybrána úroveň 4 V.
BODEN – Pokud je tento bit nastaven do stavu log. 1, tak dojde k vypnutí detektoru výpadku napájení.
SUT1, SUT0 – Vybírá čas nastartování mikrokontroléru z režimů Power-down a Power-save. Nastavení času nastartování ukazuje Tab. 2.
Tab. 2: Nastavení startovacího času.
SUT1 | SUT0 | Startovací čas | Přidané zpoždění (Vcc = 5V) |
0 | 0 | 6 CK | – |
0 | 1 | 6 CK | 4,1 ms |
1 | 0 | 6 CK | 65 ms |
1 | 1 | rezervováno | rezervováno |
CKSEL3 , CKSEL2, CKSEL1, CKSEL0 – Slouží k nastavení zdroje hodinového signálu. Jednotlivé nastavení ukazuje Tab. 3.
Tab. 3: Nastavení zdroje hodinového signálu.
CKSEL3 – CKSEL0 | Zdroj hodinového signálu |
1111 – 1010 | Externí krystal, nebo keramický rezonátor |
1001 | Externí nízkofrekvenční krystal |
1000 – 0101 | Externí RC oscilátor |
0100 – 0001 | Kalibrovaný vnitřní oscilátor |
0000 | Externí hodinový signál |
Nastavení bitů CKSEL3 – CKSEL1 a CKOPT při použití krystalového oscilátoru, viz Obr. 2 a Tab 4.:
Tab. 4: Výběr frekvenčního rozsahu pro krystalový oscilátor.
CKOPT | CKSEL3 – 1 | Frekvenční rozsah [MHz] | Doporučená velikost kondenzátorů C1 a C2 [pf] |
1 | 101 | 0.4 – 0.9 | Pouze keramické rezonátory |
1 | 110 | 0.9 – 3.0 | 12 – 22 |
1 | 111 | 3.0 – 8.0 | 12 – 22 |
0 | 101, 110, 111 | 1.0 ≤ | 12 – 22 |
Nastavení bitů CKSEL0 a SUT1 – SUT0 při použití krystalového oscilátoru:
Tab. 5: Výběr startovacího času pro krystalový oscilátor.
CKSEL0 | SUT1 – 0 | Startovací čas pro Power-down a Power-save | Přidané zpoždění [ms] pro Ucc = 5V | Doporučené použití |
0 | 00 | 258 hodinových cyklů | 4,1 | keramické rezonátory – rychlý náběh |
0 | 01 | 258 hodinových cyklů | 65 | keramické rezonátory – pomalý náběh |
0 | 10 | 1k hodinových cyklů | – | keramické rezonátory – povolena detekce poklesu napětí |
0 | 11 | 1k hodinových cyklů | 4,1 | keramické rezonátory – rychlý náběh | 1 | 00 | 1k hodinových cyklů | 65 | keramické rezonátory – pomalý náběh | 1 | 01 | 16k hodinových cyklů | – | krystalové oscilátory – povolena detekce poklesu napětí | 1 | 10 | 16k hodinových cyklů | 4,1 | krystalové oscilátory – rychlý náběh | 1 | 11 | 16k hodinových cyklů | 65 | krystalové oscilátory – pomalý náběh |
Nastavení jednotlivých bitů pro režimy: Nízkofrekvenční krystalový oscilátor, Externí RC oscilátor, Kalibrovaný interní oscilátor a Externí zdroj hodinového signálu zde popisovat nebudu, ale lze je nalézt ZDE
K nastavení programovacích propojek lze také použít online nástroj dostupný na: http://www.engbedded.com/fusecalc/
Aktualizace: 28.5.2015
[1] ATMEL. 8-bit Microcontroller with 32KBytes In-System Programmable Flash. [online] citováno 4. dubna 2015. Dostupné na www: http://www.atmel.com/images/doc2503.pdf
Následující: Řízení RGB LED pásku pomocí mikrokontroléru ATmeg16
Předchozí: Vytvoření zpoždění pro mikrokontrolér ATmega v programovacím jazyce C
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.
Komentáře