前面说到了UART,也就是串口发送模块,串口发送模块两个主要组件之一即为波特率时钟生成模块,这里需要
计算出系统时钟计数值与波特率之间的关系:
FPGA主板频率是50Mhz,T=20ns
9600波特率指的是9600bps,9600bit/s
然后周期是1/速率 = 1/9600 = 1.0416666667*10^(-4)=104167ns
波特率分频计数值:104167/System_clk_period=104167/20=5208
计数值与波特率之间的关系如表 1 所示
baud_set | 波特率 | 波特率周期 | 波特率分频计数值 | 50M 系统时钟计数值 |
0 | 9600 | 104167ns | 104167/ System_clk_period | 5208-1 |
1 | 19200 | 52083ns | 52083/ System_clk_period | 2604-1 |
2 | 38400 | 26041ns | 26041/ System_clk_period | 1302-1211 |
3 | 57600 | 17361ns | 17361/ System_clk_period | 868-1 |
4 | 115200 | 8680ns | 8680/ System_clk_period | 434-1 |
转自:https://blog.csdn.net/liqiang9410/article/details/76682599