查看: 1044|回复: 0

【百度大脑AI计算盒FZ5C】项目:用 FPGA 控制 IO + 视频

[复制链接]
  • TA的每日心情
    开心
    昨天 22:46
  • 签到天数: 596 天

    连续签到: 3 天

    [LV.9]以坛为家II

    发表于 2021-3-18 00:10:07 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 robe.zhang 于 2021-5-14 10:43 编辑

    【百度大脑AI计算盒FZ5C】用 FPGA 控制 IO + 视频


    笔者在计算盒上用 FPGA 实现了一个IO电路,在 linux 系统中控制 IO 实现高低电平,视频:
    https://v.youku.com/v_show/id_XNTEyMjg3NTAwMA==.html

    主要思路:
    Xilinx 芯片PS 端有有 96 EMIOEMIO 可是沟通 PS PL 两端,那就可以把 PS 端的 IO 操作扩展到PL端,控制PL端的IO
    本文实现了一个PL IO 电路,跑通芯片整个开发流程:从 FPAG 电路设计、到 linux 系统构建、到烧写启动卡开机调试运行;用 PS 上运行的 linux 系统控制 PL IO 端口。

    主要步骤:
    1,  vivado 设计电路,导出 hardware platform。
    2,  petalinux 构建 linux 系统
    3,  制作启动卡,开机调试
    4,  Linux 中对 IO 操作,控制 IO 口输出高低电平

    Vivado 设计电路,参考文章:
    https://www.cirmall.com/bbs/thread-204308-1-1.html

    在上文基础上,添加 EMIO  0-1
    1101.png
    扩展 IO
    1102.png
    添加约束文件,添加以下内容:
    1103.png
    自己配置,一定要保存,不然后面会出错:
    1104.png
    其实笔者扩展了两个IO,一个绑定在 A15,另一个绑定在 B15,本文所有文件中都实现了两个 IO,仅以 A15 为例

    这两个 IO 在芯片上两个小亮点位置:
    1105.png
    1106.png
    1107.png
    1108.png
    1109.png
    芯片上,一个 IO 端口能看到 pad 、 ibuf 、 obuf ,pad 用在芯片封装时候,打金线

    电路图:
    1110.png
    1111.png
    电路图上一个 IO 由两个 iobuf 组成,每个 iobuf 由一个 ibuf,一个 obuf,和一个 ctrl 组成。
    原理图简单易懂

    IO 在芯片封装上的这个位置:
    1112.png
    原理图的位置:
    1113.png
    1114.png
    开发板的位置:
    1115.png
    综合实施生成bitstream导出hardware platform,没啥错误电路设计部分完成

    使用 petalinux 构建 linux 系统,参考这一篇文章:
    【百度大脑AI计算盒FZ5Cpetalinux 安装开发
    https://www.cirmall.com/bbs/thread-204309-1-1.html

    petalinux 构建的 linux 系统,一定确认好构建成功:
    1116.png
    Petalinux 输出 tasks summary 信息,是 yocto 输出的信息,一定要成功不可以失败

    打包 BOOT.bin 启动镜像:
    petalinux-package --boot --format BIN \
        --fsbl images/linux/zynqmp_fsbl.elf \
        --u-boot images/linux/u-boot.elf \
        --pmufw images/linux/pmufw.elf \
        --fpga images/linux/*.bit \
        --atf images/linux/bl31.elf \
        --force

    烧录SD卡,启动调试:这部分先参考米尔的资料吧,笔者的 petalinux 使用默认配置,能用,只是有点麻烦,稍后会移植新版本内核适配 ubuntu 系统,这个镜像就不用了,这里暂时就这样用凑合一下。调试用一下而已

    进入Linux 系统后,控制 GPIO 操作,A15 对应 416GPIO,本文视频就是操作 416 GPIOB15 对应 417 GPIO:执行以下命令

    echo 416 > /sys/class/gpio/export
    echo out >/sys/class/gpio/gpio416/direction
    echo 1 > /sys/class/gpio/gpio416/value                             # 这两条命令是输出高低电平
    echo 0 > /sys/class/gpio/gpio416/value

    然后就可以通过万用表测量开发板对应 IO 的高低电平,就是本文开头视频的内容,也可以自己外插一个 LED 灯,闪烁,等等其他 IO 操作都可以。
    外接电路需要匹配 IO 电气规格,这两个 IO 类型是 LVCMOS, 3.3V, 驱动能力 12mA

    到此 Xilinx 平台的整个开发过程跑通,调通,测试验证通过。

    本文输出的 hardware platform 文件和 petalinux 输出文件,保存在百度网盘中红色标识的两个文件:
    1117.png
    链接:https://pan.baidu.com/s/1cKaZQy_JaY2vZW0zUIed6w
    提取码:robe


    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 12:19 , Processed in 0.110629 second(s), 16 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.