完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
问题概述:
我采用FPGA+FX3的方案来实现U3V协议,其中U3V协议在FPGA中实现,FX3仅作为传输通道。 我使用的图像接收软件是eBUS Player,目前在eBUS Player中可以接收图像数据。 但图像接收不够稳定,eBUS Player在接收到数千或数万帧后就会停止传输图像。 1为项目命名。 GPIF项目设计如图所示。 FLAGA表示Current_Thread_DMA_Ready,FLAGB表示Current_Thread_DMA_WaterMark。 2. SDK 项目 SDK工程描述如下:Thread0用于传输图像数据流,Thread2用于传输上位机下发的命令,Thread3用于传输FPGA响应; Thread0对应的DMA缓存设计如下: 而且,在我的SDK项目中,PibEventcallbacks函数没有打印任何内容,说明Thread0没有溢出。 3. FPGA 项目 FPGA按照标准的slavefifo方式读写数据。 出现问题的时候发现FLAGA已经不能变高了,说明FX3的Thread0的DMA还没有准备好接收数据。 我不明白为什么 DMA 还没有准备好。 Vivado的抓取波形如下: 异常时波形图放大如下: 我认为FPGA的读写控制信号没有问题,但是此时可以看出FLAGA无法变为高电平。 需要注意的是,此时Thread2和Thread3还可以正常读写数据,只有Thread0出现了异常。 4. 日志文件 您可以在附加的日志文件中找到 Bus Hound 软件捕获的异常数据。 您能帮忙分析一下为什么Thread0的DMA还没有准备好吗? 是什么导致了这个问题? |
|
相关推荐
1个回答
|
|
|
针对您描述的FX3图传异常停止问题,以下是系统性分析框架和排查建议: 一、问题命名项目命名建议:U3V_Image_Pipeline_FPGA_FX3 二、关键问题分类1. GPIF状态机设计问题
2. DMA缓冲区管理缺陷
3. USB协议栈稳定性
4. FPGA-U3V协议栈问题
5. 上位机软件交互
三、深度优化建议
四、测试方案
五、根本原因推测根据现有信息,最大可能原因是Thread0 DMA的环形缓冲区管理存在隐性溢出,建议优先执行以下操作: 如需进一步分析,请提供以下数据:
|
||
|
|
||
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2353 浏览 0 评论
1425 浏览 0 评论
1874 浏览 0 评论
CYUSB3014烧录失败Cypress Benicia USB Boot Device
7868 浏览 1 评论
11294 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 10:52 , Processed in 0.476268 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
622