5 Probleme und Lösungen

5.3 Fuses

Als Fuses werden Register bezeichnet mit denen sich, auf Hardwareebene, das Verhalten des Mikrocontrollers verändern lässt. Im Projekt wurden folgende Fuses problematisch.

  • JTAGEN - Ist dieses Bit gesetzt, kann an 4 Pins des PortB ein JTAG-Debugger angeschlossen werden. Debuggen auf Hardwareebene bietet viele Vorteile. Diese wurden im Projekt jedoch nicht genutzt, da kein JTAG-Debugger zur Verfügung stand und PortB für die LEDs genutzt wurde.

  • WDTON - Ist dieses Bit gesetzt, läuft der Watchdog-Timer immer mit. Wird der Watchdog dann nicht regelmäßig mit der Funktion wdt_reset() zurückgesetzt, startet der Mikrocontroller ständig neu.

  • CKDIV8 - Teilt den Systemtakt des Mikrocontroller durch 8. Dies ist Energiesparender. Der geringere Takt muss in F_CPU angepasst werden da sonst zeitkritische Prozesse mit der falschen Geschwindigkeit ablaufen. Das Bit wurde jedoch im Projekt nicht gesetzt.

  • CKOUT - An einem Pin an PortB wird der Systemtakt ausgegeben. Dieser kann dann leicht mit einem Frequenz-Messgerät überprüft werden. Der Pin kann dann jedoch nicht anderweitig genutzt werden.

  • CKSELX - Über diese 4 Bits kann der Systemtakt eingestellt werden.

Tabelle 5.1: Fuses
OCDEN On Chip Debugging
JTAGEN Hardware Debugging
SPIEN Serial Program and Data Downloading
WDTON Watchdog Timer always on
EESAVE EEPROM memory is preserved through the Chip Erase
BOOTSZ1 Select Boot Size
BOOTSZ0 Select Boot Size
BOOTRST Select Reset Vector
CKDIV8 Divide clock by 8
CKOUT Clock output
SUT1 Select start-up time
SUT0 Select start-up time
CKSEL3 Select Clock source
CKSEL2 Select Clock source
CKSEL1 Select Clock source
CKSEL0 Select Clock source