During a debug session, select the 'Disable debugWIRE and Close' menu option from the 'Debug' menu.
DebugWIRE will be temporarily disabled, and Atmel Studio will use SPI programming to un-program the
DWEN fuse.
Having the DWEN fuse programmed enables some parts of the clock system to be running in all sleep
modes. This will increase the power consumption of the AVR while in sleep modes. The DWEN Fuse
should therefore always be disabled when debugWIRE is not used.
When designing a target application PCB where debugWIRE will be used, the following considerations
must be made for correct operation:
• Pull-up resistors on the dW/(RESET) line must not be smaller (stronger) than 10kΩ. The pull-up
resistor is not required for debugWIRE functionality, since the debugger tool provides this.
• Any stabilizing capacitor connected to the RESET pin must be disconnected when using
debugWIRE, since they will interfere with correct operation of the interface
• All external reset sources or other active drivers on the RESET line must be disconnected, since
they may interfere with the correct operation of the interface
Never program the lock-bits on the target device. The debugWIRE interface requires that lock-bits are
cleared in order to function correctly.
4.4.15. debugWIRE Software Breakpoints
The debugWIRE OCD is drastically scaled down when compared to the Atmel megaAVR (JTAG) OCD.
This means that it does not have any program counter breakpoint comparators available to the user for
debugging purposes. One such comparator does exist for purposes of run-to-cursor and single-stepping
operations, but additional user breakpoints are not supported in hardware.
Instead, the debugger must make use of the AVR BREAK instruction. This instruction can be placed in
FLASH, and when it is loaded for execution it will cause the AVR CPU to enter stopped mode. To support
breakpoints during debugging, the debugger must insert a BREAK instruction into FLASH at the point at
which the users requests a breakpoint. The original instruction must be cached for later replacement.
When single stepping over a BREAK instruction, the debugger has to execute the original cached
instruction in order to preserve program behavior. In extreme cases, the BREAK has to be removed from
FLASH and replaced later. All these scenarios can cause apparent delays when single stepping from
breakpoints, which will be exacerbated when the target clock frequency is very low.
It is thus recommended to observe the following guidelines, where possible:
• Always run the target at as high a frequency as possible during debugging. The debugWIRE
physical interface is clocked from the target clock.
• Try to minimize on the number of breakpoint additions and removals, as each one require a FLASH
page to be replaced on the target
• Try to add or remove a small number of breakpoints at a time, to minimize the number of FLASH
page write operations
• If possible, avoid placing breakpoints on double-word instructions
4.4.16. Understanding debugWIRE and the DWEN Fuse
When enabled, the debugWIRE interface takes control of the device's /RESET pin, which makes it
mutually exclusive to the SPI interface, which also needs this pin. When enabling and disabling the
debugWIRE module, follow one of these two approaches:
• Let Atmel Studio take care of things (recommended)
• Set and clear DWEN manually (exercise caution, advanced users only!)
Atmel Atmel-ICE [USER GUIDE]
Atmel-42330C-Atmel-ICE_User Guide-10/2016
47