Clock Generation – Baud-Rate Generator

The baud-rate generator, as shown in Figure 1, generates internal clocks for asynchronous and synchronous communication. The output frequency (fBAUD) is determined by the Baud register (BAUD) setting and the baud reference frequency (fref). The baud reference clock is the serial engine clock, and it can be internal or external.

For asynchronous communication, the /16 (divide-by-16) output is used when transmitting, whereas the /1 (divide-by-1) output is used while receiving.

For synchronous communication, the /2 (divide-by-2) output is used.

This functionality is automatically configured, depending on the selected operating mode.

Figure 1. Baud Rate Generator

Table 1 contains equations for the baud rate (in bits per second) and the BAUD register value for each operating mode.

For asynchronous operation, there is one mode: arithmetic mode, the BAUD register value is 16 bits (0 to 65,535).

For synchronous operation, the BAUD register value is 8 bits (0 to 255).

Table 1. Baud Rate Equations
Operating Mode Condition Baud Rate (Bits Per Second) BAUD Register Value Calculation
Asynchronous Arithmetic fBAUDfref16 fBAUD=fref16(1BAUD65536) BAUD=65536(116fBAUDfref)
Asynchronous Fractional fBAUDfrefS fBAUD=frefS(BAUD+FP8) BAUD=frefSfBAUDFP8
Synchronous fBAUDfref2 fBAUD=fref2(BAUD+1) BAUD=fref2fBAUD1

S - Number of samples per bit, which can be 16, 8, or 3.

The Asynchronous Fractional option is used for auto-baud detection.

The baud rate error is represented by the following formula:

Error=1(ExpectedBaudRateActualBaudRate)