OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 77|回复: 2

[国产FPGA] ZYNQ 领航者7020 V3.4 串口发送失败

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2026-1-26
在线时间
1 小时
发表于 昨天 17:04 | 显示全部楼层 |阅读模式
3金钱
我测试了例程里的_uart_loopback,用的RS232,但是串口助手发送数据后,接收不到信息,我自己的项目用的是CH340转USB,用的引脚是J15,两个都是上位机收不到FPGA发的数据,串口助手用的是XCOM

回复

使用道具 举报

4

主题

2177

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6260
金钱
6260
注册时间
2018-10-21
在线时间
1848 小时
发表于 14 小时前 | 显示全部楼层
例程默认是PL UART例程吧?如果用RS232,要改下管脚,而且领航者要注意跳帽接的对不对
回复

使用道具 举报

0

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2026-1-29
在线时间
17 小时
发表于 11 小时前 | 显示全部楼层
一、硬件连接与电气特性排查
物理连接验证:

交叉接线确认:确保RS232/CH340的TXD与开发板RXD直连,RXD与开发板TXD直连,GND必须共地15。J15接口需对照开发板原理图确认引脚定义。
信号完整性测试:使用示波器抓取UART的TXD/RXD波形,确认在空闲状态下为高电平(3.3V),发送数据时存在明显的高低电平跳变。若波形异常,检查上拉电阻是否缺失或线路阻抗不匹配。
供电稳定性检测:测量VCCO_500(Bank 500)电压是否稳定在3.3V±5%,劣质SD卡或外设可能导致电源波动引发UART失效。
启动模式与MIO配置冲突:

拨码开关状态:检查SW1-SW3是否设置为011(SD卡启动)或其他非JTAG模式,错误的启动模式会导致PS端资源(包括UART)未初始化。
MIO复用冲突:在Vivado中核对MIO14/15是否被正确分配为UART0功能,且Bank 0电压配置为LVCMOS 3.3V。若误配为GPIO或其他功能,将导致串口无法工作。
二、驱动与协议层调试
CH340驱动兼容性:

驱动安装验证:在设备管理器中确认CH340被正确识别为USB Serial Port (COMx),无黄色感叹号。若显示“未知设备”,尝试更换USB线缆或重新安装驱动。
端口权限问题:Linux下访问串口设备需sudo权限或加入dialout用户组;Windows下检查安全软件是否拦截串口访问。
波特率与帧格式一致性:

XCOM参数配置:强制设定为115200 bps, 8N1(8位数据、无校验、1停止位),Flow Control设为None。部分开发板默认波特率可能为9600,需通过Xilinx SDK修改config.c中的baudrate参数。
回环测试:短接UART的TXD和RXD,本地发送数据应能自收发成功,排除硬件故障。
三、软件框架与中断处理优化
发送函数阻塞问题:

中断屏蔽机制:在调用XUartLite_Send()前关闭接收中断,防止AXI总线竞争导致的Data Abort错误。示例代码:
Xil_Out32(XPAR_PS7_UART_0_BASEADDR + 0x0C, 0x0); // 关闭中断使能寄存器
XUartLite_Send(InstancePtr, DataBufferPtr, NumBytes);
Xil_Out32(XPAR_PS7_UART_0_BASEADDR + 0x0C, 0x1); // 重新开启中断

      
非阻塞发送改造:使用DMA或轮询标志位替代中断驱动的发送逻辑,避免FIFO溢出。
内存映射与缓存策略:

禁用数据缓存:在关键发送路径上调用Xil_DCacheDisable(),防止CPU缓存与DDR内存数据不一致引发的异常。
缓冲区对齐要求:确保发送缓冲区的起始地址为16字节对齐,以满足AXI总线突发传输需求。
四、高级调试手段
JTAG在线仿真:

通过Xilinx SDK连接JTAG,单步执行至main()函数,观察UART控制寄存器(如XR_SR状态寄存器)的值变化,判断是否进入发送就绪状态。
读取BOOT_STATUS寄存器(地址0xF800025C),确认启动阶段是否因配置错误导致UART初始化失败。
日志追踪与断言定位:

在xuartps.h中启用调试宏#define XIL_PRINT_ERROR,捕获发送失败的具体原因(如超时、FIFO满等)。
使用逻辑分析仪抓取完整的UART帧序列,对比预期数据与实际波形差异。
总之,优先检查物理连接和驱动安装,随后通过JTAG单步调试定位软件阻塞点。若涉及PL端自定义IP核,需重点审查AXI总线仲裁策略。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-4-22 23:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表