查看: 1578|回复: 0

[评测分享] 【ALINX&紫光同创PGL12G开发板】-3-玩转UART

[复制链接]
  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2020-8-25 13:34:19 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 独活草 于 2020-8-26 00:48 编辑

      最近一直有做串口数据采集的相关工作,串口似乎已经是各种ARM、单片机芯片的标配了。PGL12G 板子厂家真的是很有良心的,担心玩家手头没有USB转TTL模块,在 PGL12G 板子上集成了USB转TTL。但还是忍不住想吐槽一下,为何不把串口引出来便于用户与TTL接口的串口设备连接呢? 此时,先埋下一个伏笔。  按照惯例,我是先把官方串口通讯测试的verilog代码编译下载进FPGA芯片,完美运行:
    0-原串口发送接收成功.JPG

      分析官方串口通讯的测试的verilog代码,主要实现了2个操作:1,串口发送端每隔1秒定时发送一个字符串;2,串口接收端接收到数据后,延迟1秒后,再通过串口发送端发出去;代码的详细注释就不讲解了,整个编程风格大概是先在 module 中申明定义好要用到的资源:输入、输出、IP核、中间变量(寄存器等),参数赋值,逻辑编写。



    *********************************************分割线*********************************************
      如何实现 PGL12G 板子的串口跟TTL串口设备连接呢?聪明的小伙伴,肯定想到了端口重映射。哈哈,此时先看看我的操作:
      首先,我是对官方串口通讯测试的verilog代码进行了几处修改:
    1-改代码.jpg

    1-改代码2.JPG

      接着在Device-I/O ,新增了一个输入端口和一个输出端口分别作为新增串口的输入与输出端;

    2-配引脚-编译成功.JPG

      结合上面的代码,很容易看出,我是把新增的串口输入端 J16,跟已有的串口输入端J12 做了逻辑与运算后,作为uart的输入端;新增串口的输出端 J15 ,与已有的串口输出端 J11 是简单的并联;编译综合也没有报任何的错。生成的RTL图跟我预想的一样一样的:

    3-RTL输入端.JPG 4-RTL输出端.JPG

      接着给大家看看我的硬件实物图:

    7-全图.jpg

    8-两个串口细节图.jpg

    我是用了两台笔记本电脑,分别跟板载的USB串口、新增的串口进行连接,两边都运行了一个串口调试助手软件;

    现在先测试串口接收数据情况:

    9-主串口.jpg

    板载串口接收数据

    10-次要串口.jpg

    新增串口接收数据

    看到两个串口都可以完美的接收数据;

    接着测试两个串口发送数据情况:板载USB串口每隔1秒发送Thank you ;新增串口每隔1秒发送WS

    5-UART-同步2.JPG

    板载串口发送数据

    6-UART-同步1.png

    新增串口发送数据

    如上图,发现两个串口都可以把数据发送出去,两个串口也都基本能接收到两边发送的数据,但有一点乱。
    最后,有兴趣把玩 PGL12G 板子串口的小伙伴,也可以试试哦。



    uart_test.v.txt

    6.45 KB, 下载次数: 1

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 20:30 , Processed in 0.114666 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.