
Architecture
1220
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Multichannel Buffered Serial Port (McBSP)
25.2.7.5.5 Unexpected Transmit Frame Synchronization: XSYNCERR
A transmit frame sync error (XSYNCERR) may occur the first time the transmitter is enabled (XRST = 1)
after a device reset. To avoid this, after enabling the transmitter for the first time, the following procedure
must be followed:
1. Wait for two CLKG cycles. The unexpected frame sync error (XSYNCERR), if any, occurs within this
time period.
2. Disable the transmitter (XRST = 0). This clears any XSYNCERR.
3. Re-enable the transmitter (XRST = 1).
See also
for details on initialization procedure.
shows the decision tree that the transmitter uses to handle all incoming frame
synchronization signals. The diagram assumes that the transmitter has been started (XRST = 1). An
unexpected transmit frame sync pulse is defined as a sync pulse that occurs XDATDLY bit clocks earlier
than the last transmitted bit of the previous frame. Any one of three cases can occur:
•
Case 1: Unexpected FSX pulses with XFIG = 1. This case is discussed in
and
shown in
. In this case, unexpected FSX pulses are ignored, and the transmission
continues.
•
Case 2: FSX pulses with normal serial port transmission. This situation is discussed in
. There are two possible reasons for a transmit not to be in progress:
–
This FSX pulse is the first one to occur after XRST = 1.
–
The serial port is in the interpacket intervals. The programmed data delay (XDATDLY) may start
during these interpacket intervals before the first bit of the next element is transmitted. Thus, if
operating at maximum packet frequency, frame synchronization can still be received XDATDLY bit
clocks before the first bit of the associated element.
•
Case 3: Unexpected transmit frame synchronization with XFIG = 0. The case was shown in
for frame synchronization with XFIG = 0 at maximum packet frequency.
shows the
case for normal operation of the serial port with interpacket intervals. In both cases, XSYNCERR in
SPCR is set. XSYNCERR can be cleared only by transmitter reset or by writing a 0 to this bit in SPCR.
If XINTM = 11b in SPCR, XSYNCERR drives the receive interrupt (XINT) to the CPU.
NOTE:
The XSYNCERR bit in SPCR is a read/write bit, so writing a 1 to it sets the error condition.
Typically, writing a 0 is expected.