Fuses

Fuses are part of the nonvolatile memory and are used to configure system settings such as clock source, start-up time, Flash sections, etc. Fuses can be read by both the CPU and an external programmer, but only programmed or cleared by an external programmer. Some registers are reset to a value stored in the fuses, such as oscillator calibration. These values are written at the end of the start-up sequence. Thus, when such a fuse is changed, the device must be reset before the change takes effect.

Fuses for peripheral configuration include:

Using fuses to set up, e.g., a WDT before any code is executed increases the robustness of the system. This because corrupt Flash could cause a software-driven configuration of the WDT to fail. Imagine that the instruction enabling the WDT is corrupt and is not properly executed. The result is a system that misbehaves, and the mechanisms to detect erroneous behavior is disabled. Therefore, enabling security features using fuses is an advantage.

Enabling CRCSCAN using fuses allows the Flash to be scanned for errors before any instruction has been fetched from Flash.

For more information, refer to the Fuses sub-section in the Memories chapter in the Relevant Devices data sheet.