正点原子领航者ZYNQ7020开发板 GMAC1 EMIO调试记录

ZYNQ嵌入式系统开发流程

在这里插入图片描述
上图中step1~step4为硬件设计部分主要在vivado工具中完成,step5为软件设计在sdk工具中完成,step6为最后的板子调试在开发板上验证功能。

1:创建Vivado工程

打开 Vivado,进入 Vivado界面后,点击下图红框中的Create Project创建vivado工程。
在这里插入图片描述

然后在弹出的创建Vivado工程向导界面,点击“ Next ”。 如下图所示
在这里插入图片描述
进入工程命名界面。设置工程名为“ zynq_gmac1_emio”,工程路径可使用任意路径,注意工程名和路径只能由英文字母、数字和下划线组成 不能包含中文、空格以及特殊字符!
确认已经 勾选“ Create project subdirectory””,点击“ Next 如下图所示
在这里插入图片描述
设置工程类型。此处我们选择RTL Project。本次不需
要添加源文件和约束文件,所以勾选Do not specify sources at this time。勾选之后会省略后面添加源文件和约束文件的步骤,点击“ Next”直接跳到器件选型界面。
在这里插入图片描述
领航者zynq7020开发板核心板的具体型号为:xc7z020clg400-2,如下图
在这里插入图片描述
完成vivado工程的创建,如下:
在这里插入图片描述

2:创建Process System

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在弹出的界面中进行如下操作
在这里插入图片描述
添加完成后如下图
在这里插入图片描述
配置DDR型号为MT41J256M16RE-125
在这里插入图片描述
根据开发板原理图配置UART引脚以及GMAC,SD,QSPI的引脚并且启动EMIO,选择SD和QSPI的引脚是为了后续程序固化以及Linux调试使用,启用EMIO是因为PL测的PHY芯片的复位引脚接在BANK35上的EMIO上。
如下图:
在这里插入图片描述
根据原理图配置bank0和bank1的电压
在这里插入图片描述
配置QSPI引脚
在这里插入图片描述
配置UART引脚:
在这里插入图片描述
配置SD引脚:
在这里插入图片描述
配置GMAC0引脚:
在这里插入图片描述
配置GMAC1引脚:
在这里插入图片描述
配置GPIO包含MIO和EMIO
在这里插入图片描述
配置PL侧的时钟如下:
在这里插入图片描述
保存完如下图所示:
在这里插入图片描述
可以看到GMAC1在使用EMIO的时候默认是GMII接口而实际的硬件电路中EMIO的PHY使用的是RGMII接口,所以需要一个GMII转RGMII的接口IP,xilinx官方提供了这样的一个IP可以直接添加使用如下图添加GMII转RGMII的IP:
在这里插入图片描述
添加完成后如下:
在这里插入图片描述
双击配置GMII To RGMII如下图:
在这里插入图片描述
在这里插入图片描述
添加反相器用于复位GMII To RGMII;
在这里插入图片描述
在这里插入图片描述

双击配置反相器:
在这里插入图片描述
接下来手动连线:
在这里插入图片描述

设置模块自动化:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引出EMIO引脚以及MDIO和RGMII引脚如下:
在这里插入图片描述
同理依次引出MDIO和RGMII接口如下图:
在这里插入图片描述
校验硬件设计如下:

正点原子ZYNQ7010开发板上进行上板操作或调试,通常包括硬件准备、驱动安装、软件环境搭建以及具体的调试步骤。以下是详细的流程和注意事项: ### 1. 硬件连接与驱动安装 在开始之前,确保开发板的硬件连接正确,并安装必要的驱动程序。 - 使用USB线将电脑与开发板的UART接口(J1)连接[^4]。 - 安装USB转串口驱动(如CP210x Windows驱动),确保设备管理器中能识别到串口设备[^4]。 ### 2. Vivado 工程创建与配置 Vivado 是 Xilinx 提供的 FPGA 开发工具,用于创建硬件工程并生成比特流文件。 - 打开 Vivado,选择“Create Project”创建新工程。 - 在工程设置中选择目标设备(ZYNQ7010),并根据需要选择适当的封装和速度等级。 - 创建 Block Design,添加 ZYNQ Processing System (PS) 模块,并根据需求配置 PS 的外设(如 UART、GPIO、EMIO 等)。 - 添加其他 IP 核或逻辑模块,完成设计后运行 Connection Automation 和 Address Automation。 - 生成顶层 HDL 文件,并进行引脚约束设置(特别是 EMIO 引脚)[^3]。 - 运行 Synthesis、Implementation,并生成 Bitstream 文件。 ### 3. 导出硬件到 SDK 并创建应用工程 - 在 Vivado 中选择“File > Export Hardware”,将设计导出为 .hdf 文件。 - 启动 Xilinx SDK,选择“File > New > Application Project”,导入硬件描述文件。 - 创建裸机(Bare-metal)或 Linux 应用程序工程,例如 LWIP Echo 测试工程[^3]。 ### 4. 下载比特流并调试 - 将开发板通过 JTAG 接口连接至电脑,使用 Vivado 或 SDK 下载比特流文件(.bit)到 FPGA。 - 如果是裸机程序,可以直接通过 SDK 下载并运行 ELF 文件到开发板内存中。 - 使用 SDK 自带的调试器设置断点、查看寄存器状态、变量值等信息。 ### 5. Linux 系统启动与调试 如果使用的是 Petalinux 构建的嵌入式 Linux 系统: - 配置设备树以支持所需的外设(如 GMAC1 EMIO)[^3]。 - 编译 Petalinux 镜像并烧录到 SD 卡或 EMMC。 - 设置启动模式为 SD 卡或 QSPI 启动。 - 使用串口终端(如 PuTTY、XCOM)连接开发板串口,观察系统启动日志。 - 若需修改自动挂载规则,可编辑 `meta-petalinux` 层中的 `11-sd-cards-auto-mount.rules` 文件[^2]。 ### 6. 常见问题排查 - **无法识别串口**:检查 USB 线是否插好,驱动是否安装正确。 - **下载失败**:确认 JTAG 连接正常,电源供电稳定。 - **系统无法启动**:检查 SD 卡镜像是否完整,启动模式设置是否正确。 - **外设不工作**:检查设备树配置是否匹配硬件设计,驱动是否加载。 --- ```python # 示例代码:SDK 裸机程序点亮 LED #include "xparameters.h" #include "xgpio.h" int main() { XGpio Gpio; XGpio_Initialize(&Gpio, XPAR_AXI_GPIO_0_DEVICE_ID); XGpio_SetDataDirection(&Gpio, 1, 0x0); // 设置通道 1 为输出 while (1) { XGpio_DiscreteWrite(&Gpio, 1, 0xFF); // 点亮所有 LED for(int i=0; i<1000000; i++); // 简单延时 XGpio_DiscreteWrite(&Gpio, 1, 0x00); // 关闭 LED for(int i=0; i<1000000; i++); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT8051

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值