Thread 中讨论的其他器件: PGA450-Q1
您好!
我正在使用 PGA450Q1EVM 主页上提供的2.8版固件、并尝试使用 UART 接口读回回回声信息。
使用 Hercules 设置实用程序并使用 UART 接口与 PGA450进行通信、我能够发送命令0并从 PGA450获取正确的校验和响应。
但是、运行命令2始终无限期挂起。 我在580行执行了一些调试打印、并注意到当 LCV = 0x2FD = 765时、while 环路不会退出(请参阅下面的屏幕截图)。
这是我到目前为止所了解的内容:
1) 1)该循环的作用是等待所需的 FIFO 地址(LCV)被填满。 因此、我推断 FifoWritePointer.U16的值永远不会大于765、这意味着 FIFO RAM 地址766和767永远不会被填充?
2) 2)在 while 循环内进行一些额外的打印、我注意到 FIFO 指针不断变化、平均每循环增加0x3E = 62、甚至在超过760时也会继续这样做。 例如,FifoWritePointer.U16的可能值序列可以是... 569、633、695、757、51 (757 + 62的最后2个字节)。 因此、永远不会满足停止条件"LCV >= FifoWritePointer.U16"、并且循环被卡住。
3) 3)文档 SLDS185D 第42页提到、在远距离模式下、FIFO 指针增加2倍、但正如我之前注意到的、我看到每个循环迭代平均增加62倍... 当我进行更多打印时、这个值62更改为42。
以下是我的问题
- 这是当前代码中的错误吗?
- 命令2是否正常工作、以及之前是否为任何人报告了一些范围?
- 即使 FIFO 指针已经在整个 FIFO RAM 中循环了一次、FIFO 指针也在不断变化是正常的吗?
- 最后、您的建议是什么? (当我们首次超过767时、更复杂的停止条件检测?)
提前感谢您的支持!