beautypg.com

4 handling data of lin response, 7 uart commands, 1 data handling – Rainbow Electronics ATmega64C1 User Manual

Page 209: 2 rx service, 3 tx service

background image

209

7647A–AVR–02/08

ATmega32/64/M1/C1

17.4.6.4

Handling Data of LIN response

A FIFO data buffer is used for data of the LIN response. After setting all parameters in the LIN-
SEL register, repeated accesses to the LINDAT register perform data read or data write (c.f.

“Data Management” on page 218

).

Note that LRXDL[3..0] and LTXDL[3..0] are not linked to the data access.

17.4.7

UART Commands

Setting the LCMD[2] bit in LINENR register enables UART commands.
Tx Byte and Rx Byte services are independent as shown in

Table 17-1 on page 207

.

Byte Transfer: the UART is selected but both Rx and Tx services are disabled,

Rx Byte: only the Rx service is enable but Tx service is disabled,

Tx Byte: only the Tx service is enable but Rx service is disabled,

Full Duplex: the UART is selected and both Rx and Tx services are enabled.

This combination of services is controlled by the LCMD[1..0] bits of LINENR register (c.f.

Figure

17-5 on page 206

).

17.4.7.1

Data Handling

The FIFO used for LIN communication is disabled during UART accesses. LRXDL[3..0] and
LTXDL[3..0] values of LINDLR register are then irrelevant. LINDAT register is then used as data
register and LINSEL register is not relevant.

17.4.7.2

Rx Service

Once this service is enabled, the user is warned of an in-coming character by the LRXOK flag of
LINSIR register. Reading LINDAT register automatically clears the flag and makes free the sec-
ond stage of the buffer. If the user considers that the in-coming character is irrelevant without
reading it, he directly can clear the flag (see specific flag management described in

Section

17.6.2 on page 221

).

The intrinsic structure of the Rx service offers a 2-byte buffer. The fist one is used for serial to
parallel conversion, the second one receives the result of the conversion. This second buffer
byte is reached reading LINDAT register. If the 2-byte buffer is full, a new in-coming character
will overwrite the second one already recorded. An OVRERR error in LINERR register will then
accompany this character when read.

A FERR error in LINERR register will be set in case of framing error.

17.4.7.3

Tx Service

If this service is enabled, the user sends a character by writing in LINDAT register. Automatically
the LTXOK flag of LINSIR register is cleared. It will rise at the end of the serial transmission. If
no new character has to be sent, LTXOK flag can be cleared separately (see specific flag man-
agement described in

Section 17.6.2 on page 221

).

There is no transmit buffering.

No error is detected by this service.