beautypg.com

5 enable / disable, 6 lin commands, 1 rx header / lin abort function – Rainbow Electronics ATmega64M1 User Manual

Page 205

background image

205

8209A–AVR–08/09

ATmega16M1/32M1/64M1

21.4.5

Enable / Disable

Setting the LENA bit in LINCR register enables the LIN/UART controller. To disable the
LIN/UART controller, LENA bit must be written to 0. No wait states are implemented, so, the dis-
able command is taken into account immediately.

21.4.6

LIN Commands

Clearing the LCMD[2] bit in LINCR register enables LIN commands.

As shown in

Table 21-1 on page 205

, four functions controlled by the LCMD[1..0] bits of LINCR

register are available (c.f.

Figure 21-5 on page 204

).

21.4.6.1

Rx Header / LIN Abort Function

This function (or state) is mainly the withdrawal mode of the controller.

When the controller has to execute a master task, this state is the start point before enabling a
Tx Header command.

When the controller has only to execute slave tasks, LIN header detection/acquisition is enabled
as background function. At the end of such an acquisition (Rx Header function), automatically
the appropriate flags are set, and in LIN 1.3, the LINDLR register is set with the uncoded length
value.

This state is also the start point before enabling the Tx or the Rx Response command.

A running function (i.e. Tx Header, Tx or Rx Response) can be aborted by clearing LCMD[1..0]
bits in LINCR register. In this case, an abort flag - LABORT - in LINERR register will be set to
inform the other software tasks. No wait states are implemented, so, the abort command is taken
into account immediately.

Rx Header function is responsible for:

• The BREAK field detection,

• The hardware re-synchronization analyzing the SYNCH field,

• The reception of the PROTECTED IDENTIFIER field, the parity control and the update of the

LINDLR register in case of LIN 1.3,

• The starting of the Frame_Time_Out,

• The checking of the LIN communication integrity.

Table 21-1.

LIN/UART Command List

LENA

LCMD[2]

LCMD[1]

LCMD[0]

Command

Comment

0

x

x

x

Disable peripheral

1

0

0

0

Rx Header - LIN abort

LIN withdrawal

1

Tx Header

LCMD[2..0]=000 after Tx

1

0

Rx Response

LCMD[2..0]=000 after Rx

1

Tx Response

LCMD[2..0]=000 after Tx

1

0

0

Byte transfer

no CRC, no Time out

LTXDL=LRXDL=0

(LINDLR: read only register)

1

0

Rx Byte

0

1

Tx Byte

1

1

Full duplex