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.

[参考译文] LP-MSPM0L2228:能否可靠地读取 TIMGx 上的电流计数器值?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1395268/lp-mspm0l2228-can-current-counter-value-on-timgx-be-read-reliably

器件型号:LP-MSPM0L2228

工具与软件:

可以在计数器运行时可靠地读取 TIMGx 的计时器计数寄存器吗? 我们通常使用自由运行的计时器进行时间戳。 某些 MCU 上的一些计时器不支持在计时器运行时读取当前计数器值。

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

    始终会存在一些不准确情况、因为 CPU 确实需要一些时间来读出计数器值。 根据您的应用所需的精度、我不一定会说它不可靠、因为我知道它的精度会较低、并且计数器寄存器中的值可能与 CPU 在计数器可见时读取的值不同、除非您对计数器使用非常慢的输入。  

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

    为了消除我的担心:某些 MCU 不支持读取当前计时器值。 读取计时器计数器值是对底层计数器的非缓冲、非同步读取、在某些情况下为纹波计数器。 在这种情况下、如果读取发生在转换期间、无缓冲、非同步读取会返回无传感值。 S32K14x 系列 MCU 上的 LPIT 就是如此。 我的问题可能更好地问:当前计数器值的读取是否是已缓冲和/或同步读取、以便不会读取任何计数器转换?

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

    我懂了。 我以前已经在软件中读取了定时器、但我不会获得无传感值、但我不确定它们是否已被缓冲。 我可以肯定地说、计数器值在读取过程中将继续前进、因此读取返回的值不一定代表计数器寄存器中的确切值。 我刚刚给我们的设计团队发出了 Ping 命令、以检查寄存器是否已被缓冲、请花几天时间回答此问题。 谢谢

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

    针对此问题的典型权变措施是只读两次。 如果价值观一致、那么您就很好。 如果没有、请再次阅读。

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

    感谢您的反馈并 Ping 设计团队。 我运行了一个简单的测试、之前使用该测试来捕获由于捕获计数器转换而导致的异常读数。 测试未捕捉到奇数读数。 这种经验证据给了我一些信心。 最好从设计团队那里得到一份明确的声明。

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

    这是可能的备用解决方案。 最好能听到设计团队的消息、了解是否有必要这样做。 迄今为止的经验证据表明、这是不需要的。

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

    我已经能够从团队那里获得一些信息:

    定时器 CTR 寄存器不会被缓冲、因此、您使用该函数读取的寄存器与控制逻辑是同一个连接的寄存器。  

    我在读取寄存器时也没有看到完整的无用值、但我可以说、CTR 值与由 CPU 读取的值之间存在一些时钟周期差异。 请记住这一点、并考虑使用 Keith 的建议、继续设计。

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

    必须与控制逻辑进行某种类型的同步、以防止逻辑看到计时器转换。 否则会进行错误比较、逻辑将无法正常工作。 感谢您的帮助。 我现在很好。