This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PGA450Q1EVM:BURST_CAP_COMP 函数中 FIFO 指针上的无限循环

Guru**** 1137420 points
Other Parts Discussed in Thread: PGA450Q1EVM, PGA450-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/752586/pga450q1evm-infinite-loop-on-fifo-pointer-in-burst_cap_comp-function

器件型号:PGA450Q1EVM
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。

以下是我的问题

  1. 这是当前代码中的错误吗?
  2. 命令2是否正常工作、以及之前是否为任何人报告了一些范围?
  3. 即使 FIFO 指针已经在整个 FIFO RAM 中循环了一次、FIFO 指针也在不断变化是正常的吗?
  4. 最后、您的建议是什么? (当我们首次超过767时、更复杂的停止条件检测?)

提前感谢您的支持!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、用户:
    我们已收到您的请求。 我们的一位应用工程师将尽快与您联系。

    此致、
    Bala Ravi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的更新。 如果您需要我这边的其他数据、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的用户5005795:

    我已将 PGA450-Q1固件更新为版本2.9、以实现更稳定的运行、下周将在网上提供该版本。
    同时、您可以从以下位置下载最新版本: txn.box.com/.../eks8zs72eczw4gh1lqqerztsoxe2mnfo

    我已经测试了这个版本来确认 UART 和 LIN 运行不会在一个无限循环或者错误情况下挂起。 请尝试此固件的最新版本以确定您的错误是否已解决。