Date of discovery: 2014/11/29 Rating: High URL: https://github.com/baerwolf/USBaspLoader Description: In all USBaspLoader version up to 0.97 exists a bug, which causes the watchdog timer to continously reboot. When a users firmware activates the watchdog timer, and then times out: The MCUC(S)R register then has WDRF bit to HIGH. On some ATmegas this keeps the AVRs internal hardware reset, from resetting the active watchdog (even when the WDTON fuse is unprogrammed). However the timeout period is reset anyway to minimal value of 16ms (WDP* to LOW). In the bootloaders PROG-PIN chargeup phase, the bootloader stalls 50ms, causing the AVR to reboot. For deactivating the watchdog timer, some AVRs need to reset the WDRF bit first. But since also the hardware reset seems to be restricted to this measure (hardware bug???), the watchdog stays on ever - even during RESET presses. This also renders the RESET pin/button effectivly useless. ATmega8 v0.97 is NOT effected by this bug. Patch: Upcoming asap - but still ongoing investigation Workaround: NO software workaround known. In order to access the bootloader again, dis- and reconnect the power where possible. On AVRs except ATmega8, it is recommended to avoid using the API (https://github.com/tinyusbboard/API) until a patch/update is provided.
: Edited by User
Here is my proposed fix for this annoyment: https://github.com/baerwolf/USBaspLoader/commit/1697a8814722b7eda4b10dedcac290eb97f9362e BR Stephan