完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用 FX3 的 GPIF2 功能从 FPGA 接收大量数据,然后使用批量路径通过 USB 将这些数据传输到 PC。
在 USB 批量传输期间,当使用 FX3 的 I2C 主站与 FPGA 的 I2C 从站通信时,我在 I2C 数据包之间遇到延迟。 当不通过批量传输数据时,操作可以正常运行,延迟很短。 但是,连续使用批量传输时,I2C 数据包之间会有明显的延迟。 我使用了 FX3 的 SDK 版本 1.3.4, 以下是 I2C 的设置:
是否需要进行任何设置才能同时使用 GPIF2 和 I2C,或者如果没有,请解释造成延迟的原因? |
|
相关推荐
1个回答
|
|
有几个可能的原因会导致FX3的I2C延迟:
1. USB带宽限制:当大量数据通过USB进行批量传输时,可能会占用大量的USB带宽,而导致其他外设的数据传输受到限制,包括I2C通信。这可能会导致I2C数据包之间的延迟增加。 2. 中断优先级:FX3的中断优先级可能导致I2C通信被延迟。如果批量传输的中断优先级较高,可能会导致I2C通信被推迟处理,从而导致延迟。 3. I2C速度设置:您的代码中使用了400的I2C速度,这意味着I2C通信的速度为400kHz。如果您的I2C从站不能以这个速度进行通信,可能会导致延迟。请确保I2C从站能够支持所设置的速度。 4. 数据冲突:在同时进行大量数据传输和I2C通信时,可能会发生数据冲突。当同时进行大量数据传输和I2C通信时,可能会导致总线上的干扰,从而导致I2C通信延迟。 为了解决这些问题,可以尝试以下方法: 1. 提高USB的带宽:可以尝试优化USB传输的带宽利用率,以减少对其他外设的影响。 2. 调整中断优先级:优化中断优先级,确保I2C通信在批量传输之前得到及时处理。 3. 调整I2C速度:根据I2C从站的能力,调整I2C通信的速度。 4. 使用数据缓冲区:在大量数据传输期间,可以使用数据缓冲区来缓存I2C通信所需的数据,以在传输完成后进行处理,从而减少延迟。 以上是一些可能导致FX3的I2C延迟的原因和解决方法的示例,具体的解决方法可能需要根据您的硬件设置和应用场景进行调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
3956 浏览 0 评论
8474 浏览 0 评论
5936 浏览 0 评论
4066 浏览 1 评论
5172 浏览 0 评论
请问一下qspi mtsr引脚传输一次32bit后引脚不拉低怎么解决?
392浏览 2评论
633浏览 2评论
4725浏览 2评论
最近UJA1023开发遇到问题了,各位大神有谁知道可以替代这颗芯片的
576浏览 1评论
774浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 14:30 , Processed in 0.810435 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号