FPGA下UART发送功能学习记录

摘要:

  • 跟“小梅哥”学习记录,使用acx720板卡(老版),代码=先自己思考+跟视频修改细节,因而跟原版略有出入。
  • 功能:每1s内,板卡向XCOM串口软件发送10位数据(start+SW0-SW7的开关状态+stop),且发送完成后,led翻转。

🎈任务需求

image
详细时序如下:
image
注:8位数据发送的总时间远小于1s,led的翻转在剩余的空闲时间中完成。

💃功能分析

1. 输入输出分析

需要一个clk作为同步发送时钟,一个rx引脚保存8位数据,一个tx发送该8位数据给上位机,一个led作为发送标志灯。自然而然,板卡上的SW[7:0]是最好不过的选择。
image

2. 时序分析

时序:每1s=发送10bit数据(9600b/s)+led翻转+空闲
需2个定时器(定时器考虑使能、计数、清零三要素)。

  1. 1s定时器:每1s发送一组数据给上位机,无需暂停。
  2. 波特定时器:1s定时器清零后,开始波特定时器记数。10位数据传输结束后,关闭使能,且led翻转。
  3. 位逻辑:记数波特定时器溢出次数,一次对应一位。
  4. led翻转逻辑:波特溢出且次数为10时触发
    image

3. 时序计算

1s定时器:FPGA晶振50MHz=20ns,则1s/20ns=50_000_000。
波特定时器:(1/960)s/20ns
image
共13位
image

波形仿真

image
传输data数据,共花费1.0416ms,即5208次记数。
image
发送完数据后,在1s记数的空闲时间,led翻转。
image

posted @ 2026-02-04 10:51  树上掉下一只鱼  阅读(4)  评论(0)    收藏  举报