RS485测试
===========

本章介绍两路RS485接口的读写测试实验。

硬件环境搭建
------------

基于”ps_hello”工程，另存为一份rs485_test工程

1. 第一路RS485用的是PS端的UART0，而DE信号用的是MIO9，GPIO MIO已经勾选上。

.. image:: images/05_media/image1.png
      
配置时钟频率为100MHz

.. image:: images/05_media/image2.png
      
打开PL端中断

.. image:: images/05_media/image3.png
      
2. 添加AXI GPIO模块，并配置为输出，位宽为1，用于第二路RS485的DE控制

.. image:: images/05_media/image4.png
      
3. 添加UART16550模块，用于第二路RS485的数据端口

.. image:: images/05_media/image5.png
      
4. 自动连接

.. image:: images/05_media/image6.png
      
.. image:: images/05_media/image7.png
      
5. 删除UART引脚，并展开UART接口

|image1|\ |image2|

6. 添加constant模块，并设置位宽为1，值为1

.. image:: images/05_media/image10.png
      
7. 连接ctsn，rin信号

.. image:: images/05_media/image11.png
      
8. 再添加一个constant模块，值设置为0

.. image:: images/05_media/image12.png
      
9. 连接freeze，dcdn，dsrn信号

.. image:: images/05_media/image13.png
      
10. 将sin和sout导出引脚

.. image:: images/05_media/image14.png
      
11. 连接中断信号到ZYNQ的IRQ_F2P接口

.. image:: images/05_media/image15.png
      
12. 修改引脚名称

.. image:: images/05_media/image16.png
      
13. 引脚绑定

.. image:: images/05_media/image17.png
      
14. 生成bitstream

.. image:: images/05_media/image18.png
      
15. 导出硬件平台信息

.. image:: images/05_media/image19.png
         
Vitis程序开发
-------------

1. 新建Vitis工程rs485_test，本实验是根据UART和UART16550模块的example工程修改而来，程序流程为，初始化RS485 DE和UART设置RS485 0为发送，设置RS485 1为接收，发送16个字节数据，接收后进行数据对比反向，设置RS485 1为发送，设置RS485 0为接收，发送16个字节数据，接收后进行数据对比程序结束

.. image:: images/05_media/image20.png
      
2. 注意要进行BSP的设置，将打印输入输出改成ps7_uart_1，也就是PS端的UART

.. image:: images/05_media/image21.png
      
.. image:: images/05_media/image22.png
      
3. PS端GPIO设置MIO9为输出，因为它是连接在RS485 0的DE上的。

.. image:: images/05_media/image23.png
      
4. PL端GPIO设置，连接到RS485 1的DE

.. image:: images/05_media/image24.png
      
5. 在对UART初始化中，将PS端UART和PL端UART16550都设置为波特率115200，8bit，无奇偶校验位，1bit停止位

.. image:: images/05_media/image25.png
      
6. 在回环的函数中，首先是将RS485_0设置为输出，RS485_1设置为输入，设置完后，在发送数据之前等待1ms时间，是因为有切换延迟。

.. image:: images/05_media/image26.png
      
1. 测试后，切换方向RS485_0设置为输入，RS485_1设置为输出，再次进行数据发送

.. image:: images/05_media/image27.png
      
板上验证
--------

1. 用杜邦线将A1与A2连接，B1与B2连接如下：

.. image:: images/05_media/image28.png
      
2. 下载界面设置

.. image:: images/05_media/image29.png
      
3. 串口打印信息

.. image:: images/05_media/image30.png
      
本章小结
--------

本章介绍了利用板子上的两路RS485进行回环测试，大家可以在此基础上功能扩展进行测试。

.. |image1| image:: images/05_media/image8.png
.. |image2| image:: images/05_media/image9.png
      