Cypress技术论坛
直播中

朱梁贡

8年用户 207经验值
私信 关注
[问答]

CPU访问端点数据发生变化该怎么办?

你好,
IM使用FX2LP与端点2和4配置为散列双缓冲512字节手动模式,EP 6和8配置为EndoPosiStCurrouSouth-Buffice 521字节。数据从PC、FX2LPCPU访问数据发送,并手动地将所有数据包提交到通过奴隶FIFO访问数据的外部设备。
我有一个奇怪的Beaviver,当PC主机发送数据到端点:
当FX2LP接收到来自PC的OUT传输时,EP2ION-OPE4IOUT中断从EP目标触发,CPU对FIFO数据进行访问,然后将数据提交给从FIFO。有时,当FIFO中有一个元素时,当两个数据包在时间上接近(大约100个USEC)时,CPU从端点FIFO缓冲器读取数据,但是一些数据来自第一个数据包,而其他数据来自第二个数据包。似乎,当CPU从端点FIFO中提取数据时,数据正在发生变化。看来,即使在我没有提交数据包的情况下,数据包也被复制在FIFO缓冲器中,并且端点处于手动模式。在访问数据之前,我验证了FIFO不是EP2468 STAT寄存器空的,而我只在CPU访问结束时提交数据。
如果我用LeLogy T3 Advor协议分析器检查USB通信,我看到第二个包有一个初始的NWORD,那么它看起来是OK的,并且只有在它接收到ACK之后。
我有一个从外部FIFO中提取数据的外部微控制器,它正确地接收数据包,然后在FIFO缓冲器中数据是正确的,只有CPU访问的问题。
有什么想法吗?
谢谢,
贝格斯

回帖(1)

刘辉

2019-10-30 07:47:16
你好,
请与我们一起创建一个技术支持案例,这样我们的工程师就可以对此进行更多的调查。
当做,
- Madhu Sudhan
举报

更多回帖

发帖
×
20
完善资料,
赚取积分