基于Odyssey Max 10 FPGA EValuation Kit试用板的串口发送实验

作者: 囧人也幸福!
上传时间为: 2017-08-29 09:30 AM
2017-08-29
阅读:

本次实验是验证max10开发板的串口通信功能,之前已经写过基于si7020的温度采集的测试。现在想通过串口将程序传送至上位机。废话不多说,直接来干货。

-------------------------------------------------------------------------------------我是分割线---------------------------------------------------------------------------

1、串口发送模块接口,串口时钟,发送起始信号,发送忙标志用来对串口进行控制。

2、波特率发生器(大家可以自行百度,这边无须讲解)

parameter ClkFrequency = 50000000;

parameter Baud = 9600;

parameter BaudGeneratorAccWidth = 16;

reg [BaudGeneratorAccWidth:0] BaudGeneratorAcc;

wire [BaudGeneratorAccWidth:0] BaudGeneratorInc = ((Baud<<(BaudGeneratorAccWidth-4))+(ClkFrequency>>5))/(ClkFrequency>>4);

always @(posedge clk)

if(TxD_busy)

BaudGeneratorAcc <= BaudGeneratorAcc[BaudGeneratorAccWidth-1:0] + BaudGeneratorInc;

wire BaudTick = BaudGeneratorAcc[BaudGeneratorAccWidth];

3、根据串口通信的协议,串口发送主时序状态机如下。

4、顶层模块接口,只有外界时钟和串口发送接口

5、发送控制状态机,分三次完成24位数据的发送,这边是0x303030

6、管脚配置,串口选用外扩端口J4 接口 的 G9口,时钟50MHz

7、USB转TTL串口

由于板子上没有RS232电平输出,故借助USB转TTL电平转换模块PL2303实现串口通信验证

8、实验结果,上位机接收到串口数据,HEX显示。

9、副程序

chuankou.zip

10、结语,感谢爱板网 提供试用机会,学习使我快乐。

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示