RS485测试#
本章介绍两路RS485接口的读写测试实验。
硬件环境搭建#
基于”ps_hello”工程,另存为一份rs485_test工程
第一路RS485用的是PS端的UART0,而DE信号用的是MIO9,GPIO MIO已经勾选上。
配置时钟频率为100MHz
打开PL端中断
添加AXI GPIO模块,并配置为输出,位宽为1,用于第二路RS485的DE控制
添加UART16550模块,用于第二路RS485的数据端口
自动连接
删除UART引脚,并展开UART接口


添加constant模块,并设置位宽为1,值为1
连接ctsn,rin信号
再添加一个constant模块,值设置为0
连接freeze,dcdn,dsrn信号
将sin和sout导出引脚
连接中断信号到ZYNQ的IRQ_F2P接口
修改引脚名称
引脚绑定
生成bitstream
导出硬件平台信息
Vitis程序开发#
新建Vitis工程rs485_test,本实验是根据UART和UART16550模块的example工程修改而来,程序流程为,初始化RS485 DE和UART设置RS485 0为发送,设置RS485 1为接收,发送16个字节数据,接收后进行数据对比反向,设置RS485 1为发送,设置RS485 0为接收,发送16个字节数据,接收后进行数据对比程序结束
注意要进行BSP的设置,将打印输入输出改成ps7_uart_1,也就是PS端的UART
PS端GPIO设置MIO9为输出,因为它是连接在RS485 0的DE上的。
PL端GPIO设置,连接到RS485 1的DE
在对UART初始化中,将PS端UART和PL端UART16550都设置为波特率115200,8bit,无奇偶校验位,1bit停止位
在回环的函数中,首先是将RS485_0设置为输出,RS485_1设置为输入,设置完后,在发送数据之前等待1ms时间,是因为有切换延迟。
测试后,切换方向RS485_0设置为输入,RS485_1设置为输出,再次进行数据发送
板上验证#
用杜邦线将A1与A2连接,B1与B2连接如下:
下载界面设置
串口打印信息
本章小结#
本章介绍了利用板子上的两路RS485进行回环测试,大家可以在此基础上功能扩展进行测试。