Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
84
Добавлен:
01.03.2016
Размер:
3.56 Mб
Скачать

Universal asynchronous receiver transmitter (UART)

RM0016

 

 

 

 

 

Table 56. UART receiver’s tolerance when UART_DIV[3:0] is different from zero

 

M bit

NF is an error

NF is don’t care

 

 

 

 

 

0

3.33%

3.88%

 

 

 

 

 

1

3.03%

3.53%

 

 

 

 

Note:

The values specified in Table 55 and Table 56 may slightly differ in the special case when

 

the received frames contain some Idle frames of exactly 10-bit times when M=0 (11-bit times

 

when M=1).

 

 

22.3.6Parity control

Parity control (generation of parity bit in transmission and parity checking in reception) can be enabled by setting the PCEN bit in the UART_CR1 register. Depending on the frame length defined by the M bit, the possible UART frame formats are as listed in Table 57.

 

Table 57.

Frame format

 

 

M bit

 

PCEN bit

 

UART frame

 

 

 

 

 

 

 

0

 

0

 

| SB | 8 bit data | STB |

 

 

 

 

 

 

 

0

 

1

 

| SB | 7-bit data | PB | STB |

 

 

 

 

 

 

 

1

 

0

 

| SB | 9-bit data | STB |

 

 

 

 

 

 

 

1

 

1

 

| SB | 8-bit data PB | STB |

 

 

 

 

 

 

Legends: SB: Start Bit, STB: Stop Bit, PB: Parity Bit

 

Note:

In case of wakeup by an address mark, the MSB bit of the data is taken into account and not

 

the parity bit

 

 

 

 

Even parity: the parity bit is calculated to obtain an even number of “1s” inside the frame made of the 7 or 8 LSB bits (depending on whether M is equal to 0 or 1) and the parity bit.

Ex: data=00110101; 4 bits set => parity bit will be 0 if even parity is selected (PS bit in UART_CR1 = 0).

Odd parity: the parity bit is calculated to obtain an odd number of “1s” inside the frame made of the 7 or 8 LSB bits (depending on whether M is equal to 0 or 1) and the parity bit.

Example: data=00110101; 4 bits set => parity bit will be 1 if odd parity is selected (PS bit in UART_CR1 = 1).

Transmission: If the PCEN bit is set in UART_CR1 then the MSB bit of the data written in the data register is not transmitted but is changed by the parity bit to give an even number of ‘1’s if even parity is selected (PS=0) or an odd number of ‘1’s if odd parity is selected (PS=1).

Reception: If the parity check fails, the PE flag is set in the UART_SR register and an interrupt is generated if the PIEN bit is set in the UART_CR1 register.

324/454

Doc ID 14587 Rev 9

RM0016

Universal asynchronous receiver transmitter (UART)

 

 

22.3.7Multi-processor communication

It is possible to perform multi-processor communication with the UART (several UARTs connected in a network). For example, one of the UARTs can be the master, its TX output is connected to the RX input of the other UART. The others are slaves, their respective TX outputs are logically ANDed together and connected to the RX input of the master.

In multi-processor configurations it is often desirable that only the intended message recipient should actively receive the full message contents, thus reducing redundant UART service overhead for all non addressed receivers.

The non addressed devices may be placed in mute mode by means of the muting function. In mute mode:

None of the reception status bits can be set.

All the receive interrupts are inhibited.

The RWU bit in UART_CR2 register is set to 1. RWU can be controlled automatically by hardware or written by the software under certain conditions.

The UART can enter or exit from mute mode using one of two methods, depending on the WAKE bit in the UART_CR1 register:

Idle Line detection if the WAKE bit is reset,

Address Mark detection if the WAKE bit is set.

Idle line detection (WAKE = 0)

The UART enters mute mode when the RWU bit is written to 1.

It wakes up when an Idle frame is detected. Then the RWU bit is cleared by hardware but the IDLE bit is not set in the UART_SR register. RWU can also be written to 0 by software.

An example of mute mode behavior using idle line detection is given in Figure 120.

Figure 120. Mute mode using idle line detection

 

 

 

 

 

 

 

RXNE

RXNE

RX

Data 1

Data 2

Data 3

Data 4

IDLE

Data 5

Data 6

 

RWU

 

 

Mute Mode

 

 

Normal Mode

 

 

 

 

 

 

 

 

 

RWU written to 1

 

 

 

Idle frame detected

 

 

 

Address mark detection (WAKE = 1)

In this mode, bytes are recognized as addresses if their MSB is a ‘1’ else they are considered as data. In an address byte, the address of the targeted receiver is put on the 4 LSB. This 4-bit word is compared by the receiver with its own address which is programmed in the ADD bits in the UART_CR4 register.

The UART enters mute mode when an address character is received which does not match its programmed address. The RXNE flag is not set for this address byte and no interrupt request is issued as the UART would have entered mute mode.

Doc ID 14587 Rev 9

325/454

Соседние файлы в папке Минимум документации STM8