ZYNQ FPGA 调试及烧录固化-硬件综合

946 阅读2分钟

1 JTAG 下载

1.1 下载器

微信图片编辑_20220301222000.jpg

1.2 14-Pin JTAG

image.png

2 USB 串口

  • 板载了一个 UART 转 USB接口的转换芯片,一般用于 PS 程序调日志显示功能,下图是其与ZYNQ之间的连接框图:
  • USB 转串口芯片,CH340C,是国内芯片公司南京沁恒的产品,稳定性经测试还不错,
  • USB TypeC是一个Type C座,提供 CH340C 和电脑通信的接口,同时可以给开发板供电,VUSB 就是来自电脑 USB 的电源,USB TypeC 是本开发板的可选供电口(由于该接口供电电流较小,推荐使用电源适配器进行供电)。
  • 图中 U22(XC6206P332MR)将输入的 5V 电压转成 3.3V,此处之所以用单独的 3.3V 给CH340 供电,是为了当开发板断电后,电脑仍然能够识别到开发板的串口COM号。而U11和U12芯片(74LVC1G125GW)是为了防止开发板断电后,CH340C_RXD 和 CH340C_TXD 引脚电压反灌给FPGA芯片。 image.png

3 OTG

  • 开发板上还有一路 USB OTG 接口,跟 USB HOST 接口共用了 ZYNQ USB0 接口,虽然它是一个 OTG 接口,但是在正常工作的情况下,它只能做从机、而 USB HOST 在正常工作情况下只能做主机。
  • 右侧USB SLAVE对应的就是开发板上的Type-C插座,当OTG作为从机(DEVICE)的时候 USB 线接入此接口通过 USB3320 芯片实现将 ZYNQ USB0 的数字信号转为 USB 差分信号,OTG_D_P、OTG_D_N 输出的就是 USB 差分信号 image.png

3.1 OTG设备树配置

  • 打开内核源码目录 arch/arm/boot/dts/zynq-7000.dtsi 设备树文件,在该文件中定义了USB 控制器对应的设备节点,如下所示 image.png
  • pcw.dtsi 文件中将 usb0 节点的 status 属性设置为"okay" image.png
  • 打开 arch/arm/boot/dts/system-user.dts 设备树文件,添加相关内容 image.png
  • dr_mode 属性用于指定 USB 控制的工作模式,这里我们将其设置为 OTG 模式下,既可以使用开发板的 USB HOST 作为主机进行测试、也可以使用开发板的 USB OTG 作为从机进行测试。usb-phy 属性指定了 USB phy 节点。 image.png
  • 关 于 USB 节点 当中这些属性的详细描述信息,大家可以参考内核源码目录Documentation/devicetree/bindings/usb/generic.txt 文 档 以 及Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt 文档。

4 BOOT

image.png