当前位置:   article > 正文

EBAZ4205 ZYNQ 7Z010 裸机程序NAND固化 JTAG调试方法_smc时序

smc时序

简书 文章正在审核中... - 简书

EBAZ4205 是ebit的控制板,价格便宜。EBAZ4205使用XILINX XC7Z010-1CLG400I soc 包含两个硬核ARM A9,以及ARTIX-7逻辑。板子有一颗128M x 16 bit DDR3 CLK800Mhz,一块128M字节 NAND FLASH,PS 33.333Mhz osc,MII PHY、两个LED、三个排针坐接在PL上。PS上接了两个按键、SDIO、NAND、UART等。注意PHY接在FPGA上。板子电源使用12v,默认板子从三个排针接入电,J4排座没有焊二极管,可以短路后使用J4供电。板子还需要把UART JTAG排针坐焊上。暂时不用SD卡和PHY。

原理图和PCB:GitHub - Elrori/EBAZ4205: EBAZ4205 BOARD

如果使用PHY,参考:zynq[1] 矿板helloworld | hhuysqt 的方法在第4步建立PHY的EMIO,并把IO引出,再约束。ZYNQ SOC启动过程以ARM为主,上电后硬件读取PS端IO口确定从NAND、QSPI-FLASH、SD Card还是JTAG启动。板子默认从NAND启动。

0. 准备板子,接上UART,XILINX JTAG

1.上电前将 电阻R2578靠近NAND的一端接到地,再接上电源。或将R2584焊接到R2577可以改成从SD卡启动。

2. 新建该器件的vivado工程,创建原理图、点击“+” 检索zynq7 processing system添加,去掉AXI:

3. 外设IO设置使用NAND UART1,按照下图:

4. MIO配置,默认:(如使用PHY需勾选ENET0,并使用EMIO从PL引出,参见 githubio

5. 时钟配置,使用FCLK_CLK0用于PS给PL时钟,按照下图:

6. DDR3配置,    DDR3使用镁光128M16的代替,有效数据宽16bits(单DDR3),数据线PCB延迟设置为0.106,按照下图:

7. SMC时序,NAND时序按照下图:

8. 点击OK,右击原理图zynq7 点create ports,再检查可用性。右键source中的设计创建封装和输出,按照下图:

9. 新建verilog 顶层top_pl.v用于点灯。设计包含如下:

引脚约束,xdc文件内容:(PHY引脚参见 githubio

set_property PACKAGE_PIN W13 [get_ports {led_r}]

set_property PACKAGE_PIN W14 [get_ports {led_g}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_r}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_g}]

10. generate bitstream 产生 .bit文件

11. file->export hardware,勾上.bit文件:

12.  file->launch SDK,在SDK中新建如下,然后设置工程名fsbl,点next选择FSBL模板

13. 同样的方法在SDK中再新建一个工程 名为app并使用hello world模板,裸机程序就在这个工程中,而fsbl工程用于初始化ddr等。保存编译产生两个elf即 app.elf fsbl.elf

14. 制作BOOT.bin用于固化到NAND。BOOT.bin由fsbl.elf top_pl.bit app.elf三个文件组成。

同样的方法加入top_pl.bit 和 app.elf,partition type选择数据文件,请务必按顺序。

点击创建镜像完成产生BOOT.bin

15. 下载BOOT.bin到NAND,按照下图设置:

16. 断电在上电可以看到最后一个行打印输出Hello World说明裸机程序运行成功,LED交替闪烁说明FPGA配置完成。如果需要软件调试上电必须按照步骤1做一遍,然后直接debug app工程,注意debug 选项中ps初始化选上。

以上

操作省略较多 仅参考备忘用途

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/539353
推荐阅读
相关标签
  

闽ICP备14008679号