2.8.3 Start-of-Frame Detection Can Unintentionally Be Triggered in Active Mode
The Start-of-Frame Detection feature enables the USART to wake up from Standby sleep mode upon data reception.
The Start-of-Frame Detector can unintentionally be triggered when the Start-of-Frame Detection Enable (SFDEN) bit in the USART Control B (USARTn.CTRLB) register is set, and the device is in Active mode. If the Receive Data (RXDATA) registers are read while receiving new data, the Receive Complete Interrupt Flag (RXCIF) in the USARTn.STATUS register is cleared. This results in the Start-of-Frame Detector being triggered and falsely detecting the following falling edge as a start bit. When the Start-of-Frame Detector detects a start condition, the frame reception is restarted, resulting in corrupt received data.
Note that the USART Receive Start Interrupt Flag (RXSIF) always is ‘0
’
when in Active mode. No interrupt will be triggered.
Work Around
Disable Start-of-Frame Detection by writing ‘0
’ to the Start-of-Frame
Detection Enable (SFDEN) bit in the USART Control B (USARTn.CTRLB) register when the device
is in Active mode. Enable it again by writing the bit to ‘1
’ before
transitioning to Standby sleep mode. This work around depends on a protocol preventing a new
incoming frame when re-enabling Start-of-Frame Detection. Re-enabling Start-of-Frame
Detection, while a new frame is already incoming, will result in corrupted received
data.
Affected Silicon Revisions
Rev. A |
X |