BREAK Character

The BREAK character is used to reset the internal state of the UPDI to the default setting. This is useful if the UPDI enters an error state due to a communication error, or when the synchronization between the debugger and the UPDI is lost.

To ensure that a BREAK is successfully received by the UPDI in all cases, the debugger should send two consecutive BREAK characters. If a single BREAK is sent while the UPDI is receiving or transmitting (possibly at a very low baud rate), the UPDI will not detect it. However, this will cause a frame error (RX) or contention error (TX), and abort the ongoing operation. Then, the UPDI will detect the next BREAK. The first BREAK will be detected if the UPDI is idle.

No SYNCH character is required before the BREAK because the BREAK is used to reset the UPDI from any state. This means that the UPDI will sample the BREAK with the last baud rate setting and be derived from the last valid SYNCH character. If the communication error was caused by an incorrect sampling of the SYNCH character, the device will not know the baud rate. To ensure that the BREAK will be detected in all cases, the recommended BREAK duration should be 12-bit times the bit duration at the lowest possible baud rate (8192 times the CLK_PER) as shown in Table 1).
Table 1. Recommended BREAK Character Duration
UPDICLKSEL[1:0] Recommended BREAK Character Duration
0x1 (16 MHz) 6.15 ms
0x2 (8 MHz) 12.30 ms
0x3 (4 MHz) - Default 24.60 ms