English
Language : 

C8051F52X Datasheet, PDF (167/220 Pages) Silicon Laboratories – 8/4/2 kB ISP Flash MCU Family
C8051F52x-53x
•Check the DONE bit in the status register if the DTREQ bit is not set. The transmission was success-
ful if the DONE bit is set.
•If the transmission was successful and the current frame was a receive operation for the slave, load
the received data bytes from the data buffer. If not check the error register (LINERR) to determine
the nature of the error. Further error handling has to be done by the application.
•Set the RSTINT and RSTERR bits in the status register (LINCTRL) to reset the interrupt request and
the error flags.
In Addition to these steps the designer must consider the following:
1. Steps 1…5 have to be done during the IN-FRAME RESPONSE SPACE If the current frame is
a transmit operation for the slave; otherwise a timeout will be detected by the master. If the
current frame is a receive operation for the slave, steps 1…5 have to be finished until the
reception of the first byte after the IDENTIFIER FIELD. Otherwise, the internal receive buffer
of the LIN peripheral will be overwritten and a timeout error will be detected in the LIN periph-
eral.
2. If the application detects an unknown identifier (e.g. extended identifier) it has to write a '1' to
the STOP bit (LINCTRL) instead of setting the DTACK bit (steps 2…5 can then be skipped). In
that case the LIN peripheral stops the processing of the LIN communication until the next
SYNC BREAK is received.
3. Changing the setup of the checksum (classic to enhanced or vice versa) during a transaction
will cause the interface to reset and the transaction to be lost. Therefore no change in the
checksum should be performed while there is a transaction in progress. The same applies to
changes in the LIN interface mode from slave mode to master mode and from master mode to
slave mode.
17.4.7. Sleep Mode and Wake-Up
To reduce the systems power consumption the LIN Protocol Specification defines a Sleep Mode. The mes-
sage used to broadcast a Sleep Mode request must be transmitted by the LIN master application in the
same way as a normal transmit message. The LIN slave application must decode the Sleep Mode Frame
from Identifier and data bytes. After that, it has to put the LIN slave node into the Sleep Mode by setting the
SLEEP bit in the control register (LINCTRL).
If the SLEEP bit in the control register (LINCTRL) of the LIN slave application is not set and there is no bus
activity for 4 s (specified bus idle timeout) the IDLTOUT bit in the status register (LINST) is set and an inter-
rupt request is generated. After that the application may assume that the LIN bus is in Sleep Mode and set
the SLEEP bit in the control register (LINCTRL).
Sending a Wakeup signal from the master or any slave node terminates the Sleep Mode of the LIN bus. To
send a Wakeup signal, the application has to set the WUPREQ bit in the status register (LINST). After suc-
cessful transmission of the wakeup signal the DONE bit in the status register (LINST) of the master node is
set and an interrupt request is generated. The LIN slave does not generate an interrupt request after suc-
cessful transmission of the Wakeup signal but it generates an interrupt request if the master does not
respond to the Wakeup signal within 150 msec. In that case the ERROR bit in status register (LINST) and
TOUT bit in LINERR register are set. The application has to decide whether to transmit another Wakeup
signal or not.
All LIN nodes that detect a wakeup signal will set the WAKEUP and DONE bits in status register (LINST)
and generate an interrupt request. After that, the application has to clear the SLEEP bit in the control regis-
ter of the LIN slave.
Rev. 0.3
167