Electronic – How to reprogram an XMEGA after you have disabled the `RESET` pin using the `RSTDISBL` fuse

atxmegaxmega

With chips like the ATMEGA and ATTINY you can use high voltage programming even after the RESET pin has been disabled using the RSTDISBL fuse, but the XMEGA family does not seem to have a high voltage programming mode, so how do you program one of these chips after setting the RSTDISBL fuse?

Best Answer

The PDI functionality of the pin is still active on an XMEGA even if the RESET functionality is disabled via the RSTDISBL fuse. You can program the chip using a normal PDI connection.

How does it do this? There is a dance between the PDI clock and data pins that puts the chip into programming mode without needed an external reset. From the datasheets:

Enabling

The PDI physical layer must be enabled before use. This is done by first forcing the PDI_DATA line high for a period longer than the equivalent external reset minimum pulse width (refer to device datasheet for external reset pulse width data). This will disable the RESET functionality of the Reset pin, if not already disabled by the fuse settings.

Next, continue to keep the PDI_DATA line high for 16 PDI_CLK cycles. The first PDI_CLK cycle must start no later than 100μs after the RESET functionality of the Reset pin is disabled. If this does not occur in time, the enabling procedure must start over again.