English
Language : 

C8051F52X_12 Datasheet, PDF (171/221 Pages) Silicon Laboratories – 8/4/2 kB ISP Flash MCU Family
C8051F52x/F53x
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.5. Sleep Mode and Wake-Up
To reduce the system’s power consumption, the LIN Protocol Specification defines a Sleep Mode. The
message 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 the Identifier and data bytes. After that, the LIN slave node must be put into the Sleep Mode by
setting the SLEEP bit (LIN0CTRL.6).
If the SLEEP bit (LIN0CTRL.6) of the LIN slave application is not set and there is no bus activity for four
seconds (specified bus idle timeout), the IDLTOUT bit (LIN0ST.6) is set and an interrupt request is gener-
ated. After that the application may assume that the LIN bus is in Sleep Mode and set the SLEEP bit
(LIN0CTRL.6).
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 (LIN0CTRL.1). After successful trans-
mission of the wakeup signal, the DONE bit (LIN0ST.0) of the master node is set and an interrupt request
is generated. The LIN slave does not generate an interrupt request after successful transmission of the
Wakeup signal but it generates an interrupt request if the master does not respond to the Wakeup signal
within 150 milliseconds. In that case, the ERROR bit (LIN0ST.2) and TOUT bit (LIN0ERR.2) are set. The
application then has to decide whether or not to transmit another Wakeup signal.
All LIN nodes that detect a wakeup signal will set the WAKEUP (LIN0ST.1) and DONE bits (LIN0ST.0) and
generate an interrupt request. After that, the application has to clear the SLEEP bit (LIN0CTRL.6) in the
LIN slave.
17.6. Error Detection and Handling
The LIN peripheral generates an interrupt request and stops the processing of the current frame if it
detects an error. The application has to check the type of error by processing LIN0ERR. After that, it has to
reset the error register and the ERROR bit (LIN0ST.2) by writing a 1 to the RSTERR bit (LIN0CTRL.2).
Starting a new message with the LIN peripheral selected as master or sending a Wakeup signal with the
LIN peripheral selected as a master or slave is possible only if ERROR bit (LIN0ST.2) is set to 0.
Rev. 1.4
171