设计一个串口,波特率是9600bit/s,FPGA本身有的时钟频率为100Mhz,那么uart的时钟周期该怎么做?
可以这样去思考:
(1)
9600bit/s波特率的周期为1/9600=104167ns
100Mhz周期为10ns,
需要分频计数:104167/10=10416(注意这里是约等于)
(2)
同样,直接用100Mhz/9600=10416次,结果是一样的
在一般情况下,这个结果还要除以16,也就是16倍分频,主要是为了能够稳定的采集到数据。
文章讨论了如何在FPGA中设计一个9600bps的串口,基于100MHz的系统时钟,计算出UART时钟周期并进行分频,以确保数据稳定采集。作者提到两种方法:一是直接计算分频次数,二是考虑到可能的16倍分频需求。
设计一个串口,波特率是9600bit/s,FPGA本身有的时钟频率为100Mhz,那么uart的时钟周期该怎么做?
可以这样去思考:
(1)
9600bit/s波特率的周期为1/9600=104167ns
100Mhz周期为10ns,
需要分频计数:104167/10=10416(注意这里是约等于)
(2)
同样,直接用100Mhz/9600=10416次,结果是一样的
在一般情况下,这个结果还要除以16,也就是16倍分频,主要是为了能够稳定的采集到数据。
775
1318
465
2万+

被折叠的 条评论
为什么被折叠?