199
ATmega16M1/32M1/64M1 [DATASHEET]
8209E–AVR–11/2012
“LIN Control Register” - LINCR - except LCMD[2..0], LENA & LSWRES
“LIN Baud Rate Registers” - LINBRRL & LINBRRH
“LIN Data Length Register” - LINDLR
“LIN Identifier Register” - LINIDR
“LIN Data Register” - LINDAT
If the busy signal is set, the only available commands are:
LCMD[1..0] = 00
b, the abort command is taken into account at the end of the byte
LENA = 0 and/or LCMD[2] = 0, the kill command is taken into account immediately
LSWRES = 1, the reset command is taken into account immediately
Note that, if another command is entered during busy signal, the new command is not validated and the LOVRERR
bit flag of the LINERR register is set. The on-going transfer is not interrupted.
20.5.5.2
Busy signal in UART mode
During the byte transmission, the busy signal is set. This locks some registers from being written:
“LIN Control Register” - LINCR - except LCMD[2..0], LENA & LSWRES
“LIN Data Register” - LINDAT
The busy signal is not generated during a byte reception.
20.5.6
Bit timing
20.5.6.1
Baud rate generator
The baud rate is defined to be the transfer rate in bits per second (bps):
BAUD: Baud rate (in bps)
clk
i/o: System I/O clock frequency
LDIV[11..0]: Contents of LINBRRH & LINBRRL registers - (0-4095), the pre-scaler receives clk
i/o as input clock
LBT[5..0]: Least significant bits of - LINBTR register- (0-63) is the number of samplings in a LIN or UART bit
(default value 32)
Equation for calculating baud rate:
BAUD =
fclk
i/o
/ LBT[5..0] x (LDIV[11..0] + 1)
Equation for setting LINDIV value:
LDIV[11..0] = (
fclk
i/o
/ LBT[5..0] x BAUD ) - 1
Note that in reception a majority vote on three samplings is made.
20.5.6.2
Re-synchronization in LIN mode
When waiting for Rx Header, LBT[5..0] = 32 in LINBTR register. The re-synchronization begins when the BREAK is
detected. If the BREAK size is not in the range (11 bits min., 28 bits max. — 13 bits nominal), the BREAK is
refused. The re-synchronization is done by adjusting LBT[5..0] value to the SYNCH field of the received header
(0x55). Then the PROTECTED IDENTIFIER is sampled using the new value of LBT[5..0]. The re-synchronization
implemented in the controller tolerates a clock deviation of ±20% and adjusts the baud rate in a ±2% range.
The new LBT[5..0] value will be used up to the end of the response. Then, the LBT[5..0] will be reset to 32 for the
next header.
The LINBTR register can be used to re-calibrate the clock oscillator.
The re-synchronization is not performed if the LIN node is enabled as a master.