完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我们使用 cypress 提供的标准同步 slavefifo 示例,从 FPGA 主站向 FX3 GPIF 总线写入数据,唯一的显著区别是使用了 DMA AUTO 模式,以及 UART 配置用于调试器和从 PC 到 FPGA 的通信。 FPGA 工作正常,本项目中使用了部分标志配置。 由于找不到问题的根源,我们反复查阅了有关标记工作原理的数据表,如果能得到任何帮助,我们将不胜感激。
观察到的情况是,旗帜最初的表现是正确的。 它们被配置为 ACtiVE HIGH 标志,初始值设为 LOW。 整个 DMA 通道默认使用两个 DMA 缓冲区。 传输开始时,第一个缓冲区被正确填满:部分标志(标志 b)变为高电平,表示几乎已满,然后在最后一次传输(水印设置为 5,使用 32 位总线)后,标志 A(DMA 就绪标志)变为高电平,4 个时钟周期后完全符合预期。 现在,第二个缓冲区被卡住了。 缓冲区切换完成后,标志 A 和标志 B 都会如预期变为低电平,表明缓冲区可用。 然后,第二个缓冲区开始填满,标志也会像之前一样升高,但不会再次变低,而是停留在高电平约 +/-240 毫秒,然后才会松开并继续进行 2 次传输,再次卡住的时间更短,然后顺利传输数据。 Buffers working until they get stuck缓冲器在卡住之前一直在工作 前两个缓冲区的标志 A(上)和 B(下),然后卡住 210 毫秒 Delay period when flags are stuck标记被卡住的延迟时间标记被卡住的延迟时间。 现在的问题显然是 240 毫秒的延迟(卡住),这早已超过了所需的捕捉窗口。 请注意,在逻辑分析仪上测量了各标志之间的确切延迟时间,结果与设计相符(这意味着没有一个额外或较少的传输会造成问题)。 还需注意的是,当使用 C++ 流媒体应用程序在 PC 上接收来自 FX3 USB3.0 的数据时(在通过其他第三方软件发送捕获命令之后),将流媒体的“Packets per Xfer” 命令更改为较大数目后,就能顺利地连续接收数据。 我们不知道为什么会出现这种情况,这只是一种观察,但我们怀疑是 FX3 固件的某个地方出了问题(流媒体应用程序是否覆盖了某些内容? Flags working when using streamer application使用流媒体应用程序时标志正常工作在数据采集过程中使用流媒体应用程序时标志正常工作 Streamer app configuration流媒体应用程序配置流媒体应用程序配置 还需注意的是,在示例中使用了 UART 调试器,在对 FX3 固件进行编程期间和编程后没有直接打印出错误信息。 但在传输过程中,UART 调试器显示发送/接收的缓冲区为 0,我认为这是 DMA 自动模式的预期行为(如果不是,请指正)。 当我切换到手动模式时,它显示在卡住后发送了一些缓冲区(但缓冲区的数量不正确--显示 5 个,而实际上连 2 个都没有发送--但这只是手动模式 DMA 的情况,主要问题仍然是标记长时间卡在高位。 这就是所有最重要的信息,如果有人在这方面有任何经验/建议,请回复。 |
|
相关推荐
1个回答
|
|
|
针对DMA标志在传输完成后卡住的问题,以下是可能的原因及解决方案的分步说明: 1. DMA AUTO模式配置检查
2. DMA回调函数处理
3. GPIF状态机与标志驱动
4. FPGA与FX3同步问题
5. 固件中的DMA通道管理
6. 中断冲突排查
7. 工具辅助诊断
8. 硬件信号交叉验证
通过上述步骤逐步排查,应能定位到标志卡住的具体原因。建议优先从增加DMA缓冲区数量和验证GPIF状态机时序入手,这两个是常见的问题点。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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 16:23 , Processed in 0.589638 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2746