Chapter 21 LIN Controller (LINFlex)
MPC5602P Microcontroller Reference Manual, Rev. 4
522
Freescale Semiconductor
set after the first 8 bytes have been transmitted. The application has to update the buffer BDR before
resetting the DBEF bit. The transmission of the next bytes starts when the DBEF bit is reset.
After the last data byte (or the checksum byte) has been sent, the DTF flag is set.
The direction of the message buffer is controlled by the BIDR[DIR] bit. When the application sets this bit
the response is sent by LINFlex (publisher). Resetting this bit configures the message buffer as subscriber.
21.8.2.1.3
Data reception (transceiver as subscriber)
To receive data from a slave node, the master sends a header with the corresponding identifier. LINFlex
stores the data received from the slave in the message buffer and stores the message status in the LINSR.
If the response has been received successfully, the LINSR[DRF] is set. In case of error, the DRF flag is not
set and the corresponding error flag is set in the LINESR (see
Section 21.8.2.1.6, Error handling
It is possible to handle frames with a Response size larger than 8 bytes of data (extended frames). If the
data field length in the BIDR is configured with a value higher than 8 data bytes, the LINSR[DBFF] bit is
set once the first 8 bytes have been received. The application has to read the buffer BDR before resetting
the DBFF bit. Once the last data byte (or the checksum byte) has been received, the DRF flag is set.
21.8.2.1.4
Data discard
To discard data from a slave, the BIDR[DIR] bit must be reset and the LINCR2[DDRQ] bit must be set
before starting the header transmission.
21.8.2.1.5
Error detection
LINFlex is able to detect and handle LIN communication errors. A code stored in the LIN error status
register (LINESR) signals the errors to the software.
In Master mode, the following errors are detected:
•
Bit error
: During transmission, the value read back from the bus differs from the transmitted value.
•
Framing error
: A dominant state has been sampled on the stop bit of the currently received
character (synch field, identifier field or data field).
•
Checksum error
: The computed checksum does not match the received one.
•
Response and Frame timeout
Section 21.8.3, 8-bit timeout counter
21.8.2.1.6
Error handling
In case of Bit Error detection during transmission, LINFlex stops the transmission of the frame after the
corrupted bit. LINFlex returns to idle state and an interrupt is generated if LINIER[BEIE] = 1.
During reception, a Framing Error leads LINFlex to discard the current frame. LINFlex returns
immediately to idle state. An interrupt is generated if LINIER[FEIE] = 1.
During reception, a Checksum Error leads LINFlex to discard the received frame. LINFlex returns to idle
state. An interrupt is generated if LINIER[CEIE] = 1.