我们使用 FX3 已经很长时间了。顺便说一句,非常好的产品!
不幸的是,我们开始有客户报告我们的设备在现场出现挂起问题。
我们在
一些 FX3 产品中观察到了这个相对较新的问题: 在特定 PC 上, GPIF DMA 在 x 秒后在 INPUT 方向挂起 。此时间因系统而异。在某些系统中,我们的 GPIF 接口会在5-10 秒后挂起。与其他系统:几分钟。有些笔记本电脑总是运行良好。
我们的设备通常具有:
- 1x 或 2x HID 接口
- 视频输入( BULK ,GPIF 具有多个16KB缓冲区大小)
- 音频输入( ISO ,1ms,GPIF 具有多个192B缓冲区大小)
- 音频输出( ISO ,1ms,GPIF 具有多个192B缓冲区大小)
视频和音频传输彼此异步,并且音频优先于视频。因此,我们将 FPGA 和 FX3 之间的视频 16KB 传输拆分为 64x DW 。在这些突发之间,我们允许 FPGA 在必要时填充音频 GPIF 缓冲区。
使用 USB 分析仪和示波器,我们发现,当我们尝试在 FX3 内部填充16KB GPIF 缓冲区(视频)结束之前发送和接收音频时,VIDEO GPIF DMA 会挂起。这似乎正是我们在最后 1 个64x DWORD 中发送 AUDIO IN 时发生的。此后,FLAG_A 不再上升,因此 FPGA 无法向 HOST 发送更多视频。DMA 处于自动模式。重置 DMA 将在一段时间内解决问题,直到它再次崩溃。

- CH1 :FLAG_A,VIDEO IN(我们可以在图片顶部看到 FPGA 填充了 16KB 的缓冲区)
- CH2 :FLAG_B,AUDIO IN,视频 IN 16KB 缓冲区传输到 FX3 被中断,以LAST-1 64DW 突发视频包向主机发送音频)。
- CH3 :警告
- CH4 :FLAG_D,AUDIO OUT(在16KB完成后提供,但可能在同一SOF具有AUDIO IN期间由主机请求)。
所有设备都支持 USB2 和 USB3,但该问题仅发生在 USB3 模式下。
崩溃需要一些随机时间的原因似乎是等待音频传输与 VIDEO 端的 LAST-1 64DW 突发对齐。嗯,这是我们目前的理论。
这个问题似乎与这个问题相同:
https://community.infineon.com/t5/USB-superspeed-peripherals/Data-transfer-issues-on-some-hardware-c...
任何帮助都将不胜感激!