MPC5200B Users Guide, Rev. 1
20-40 Freescale Semiconductor
Functional Description
Step 1: Load the IFR Byte into the BDLC Data Register
As with the Type 1 IFR, the user begins initiation of a Type 2 IFR by loading the desired IFR byte into the BDLC Data Register. If
a byte has already been written into the BDLC Data Register for transmission as a new message, the user can simply write the IFR
byte to the BDLC Data Register, replacing the previously written byte. This must be done before the first EOD symbol is received.
Step 2: Set the TSIFR Bit
The second step necessary for transmitting a Type 2 IFR is to set the TSIFR bit in BDLC Control Register 2. Setting this bit will
direct the BDLC module to attempt to transmit the byte in the BDLC Data Register as an IFR until it is successful. If the byte is
transmitted successfully, or if an error or loss of arbitration occurs, TSIFR will be cleared and no further transmit attempts will be
made.
Step 3: If Necessary, Set the TEOD Bit
The third step in transmitting a Type 2 IFR is only necessary if the user wishes to halt the transmission attempts. This may be
necessary if the BDLC module’s attempt to transmit the byte loaded into the BDLC Data Register continually loses arbitration, and
the overall message length approaches the 12-byte limit as defined in SAE J1850.
If it becomes necessary to halt the IFR transmission attempts, the user simply sets the TEOD bit in BDLC Control Register 2. If the
BDLC module is between transmission attempts, it will make one more attempt to transmit the IFR byte. If it is transmitting the
Figure 20-15. Transmitting A Type 1 IFR
Enter Type 1 IFR
Transmit Routine
Is DLCBSVR = $1C? No
Yes
Load IFR byte
into DLCBDR
(Error Detected)
Set TSIFR and TEOD
Once BDLC module detects,
or EOF, IFR transmit
attempt is complete
Is DLCBSVR = $14?
No
Yes
(LOA)
Exit Type 1 IFR
Transmit Routine
Jump to Receive IFR
Handling Routine
IFR byte is discarded
IFR byte is discarded