Supported baudrates are in range from 5 bps (bit per second) up to 3 Mbps. Programmable baudrate prescaler and programmable number of samples per bit allow settings of many different baudrates with very little deviation from standard baudrates.
Baudrate depends on input clock (SPLB_Clk if PLB register interface, OPB_Clk if OPB register interface or S_AXI_ACLK if AXI4-Lite interface is used) frequency and values written into baudrate (C_BAUDRATE_REG) and sample registers (C_SAMPLE_REG):
baudrate = f(MCLK)/(SAMPLE_REG+1)/(0xfffff-BAUDRATE_REG+1)
For example for baudrate of 115200 bps at MCLK frequency of 48 MHz values in registers has to be: C_BAUDRATE_REG = 0x0fff75 C_SAMPLE_REG = 0x02
baudrate = 48MHz/3/(0xfffff-0xfff75+1)=115108, error = 0.08%
The most often used baudrates on clock frequency of 100 MHz are given in next table:
Baud rate (bps) |
BAUDRATE_REG |
SAMPLE_REG |
Closest baud rate (bps) |
Error (%) |
115200 |
0xFFFC2 |
0x0D |
115207.375 |
0.006 |
57600 |
0xFFF84 |
0x0D |
57603.688 |
0.006 |
38400 |
0xFFF46 |
0x0D |
38402.457 |
0.006 |
19200 |
0xFFE8C |
0x0D |
19201.229 |
0.006 |
14400 |
0xFFE4E |
0x0F |
14400.922 |
0.006 |
9600 |
0xFFC4D |
0x0A |
9599.692 |
0.003 |
4800 |
0xFF89A |
0x0A |
4799.846 |
0.003 |
2400 |
0xFC9BF |
0x02 |
2399.981 |
0.001 |
1200 |
0xFC9BF |
0x05 |
119.990 |
0.001 |
600 |
0xEBA7B |
0x01 |
600.002 |
0.000 |
300 |
0xF9BD7 |
0x0C |
300.000 |
0.000 |
110 |
0xF1342 |
0x0E |
110.000 |
0.000 | |