Summary
The article discusses the use of fuse bits in AVR microcontrollers to configure settings such as the watchdog timer and internal oscillator speed. While most fuse bits can be easily reset using an SPI programmer, the RSTDISBL fuse is irreversible via SPI and requires a high voltage programmer like the STK500 for recovery. To avoid the high cost of an STK500, one can build an AVR High Voltage Programmer using an Arduino, following Jeff Keyzer's approach, which simplifies the fuse recovery process.Parts used in the AVR High Voltage Programmer Using Arduino:- Arduino board
- AVR microcontroller
- High voltage programming circuitry (e.g., transistors or MOSFETs)
- Resistors
- Capacitors
- Wiring and connectors
- Power supply
AVR microcontroller uses fuse bits to set its operational parameters like watchdog timer settings and change speed of the internal oscillator. Most fuse bits can be set or reset without worry. You can flash it into one state and then flashed back again using an SPI programmer.
However, some fuse bits like RSTDISBL fuse are irreversible using SPI programmer. Once the RSTDISBL fuse is set you need a high voltage programmer like the STK500, which is costly, to bring alive the chip. If you don’t have STK500 you can try to build your own AVR High Voltage Programmer using Arduino like Jeff Keyzer did. The recovery fuse programming process is easy.
For more detail: AVR High Voltage Programmer Using Arduino AVR microcontroller