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.

[参考译文] RF430FRL152H:定时器捕捉问题:检测到周期不一致

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/774654/rf430frl152h-timer-capture-problems-detection-of-the-period-inconsistent

器件型号:RF430FRL152H

大家好、

我一直在创建一个能够检测方波信号边沿  的源代码、以找出周期/频率是多少。  我使用计时器捕获来执行该操作。 我的代码似乎可以正常工作、但现在我增加信号频率时、计时器计算出的值不一致。

时钟设置为最大速度(4MHz)。 因此、如果我尝试检测100kHz 信号的边沿、计时器应该能够(采样频率必须超过2倍)。

到目前为止、我的代码仅在6kHz 和50-60kHz 之间工作...非常奇怪。 我理解频率的最小级别、但不理解高级别。

有什么建议吗?

此致、
朱利亚诺

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

    我已要求专家对此进行研究、希望下周初能收到一些反馈。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Giuliano、

    为了更好地帮助您、我需要更多信息。

    是否可以获取您为计时器和时钟系统编写的代码、以便我可以在我的目标上检查该代码?

    您写道  、6kHz 的最小电平对您来说是合理 的、但在4MHz 计时器频率下、16位计数器的运行时间为~16ms、即~60Hz。  

    请检查 时钟系统的设置 和计时器的分频器设置。

    此致、

    Helfried

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

    e2e.ti.com/.../Coil_5F00_approach_5F00_freq_5F00_det.zip

    您好、Helfried、

    对、我对6kHz 的看法是错误的。 我可能在计算过程中犯了一些错误。

    总之、感谢您的回复。 您可以在此处找到我的代码。

    此致、
    朱利亚诺

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

    我曾尝试过您的编码、并得出与您相同的观察结果。
    最小值现在已清除、因为您测量的是100个周期。 具有4MHz 频率的16位计时器最大值 16.364毫秒。 6kHz = 166.66us * 100 = 16.66ms!

    最大频率是一个问题、因为 ISR 不够快。
    100kHz 意味着每10us 有一个 IRQ、处理器以2MHz 的频率运行。
    我已将您的里奇变量更改为 Int16以加快速度、并删除了 ISR (TA0CCTL0和 CCI)中的第一行、因为 ISR 已仅对 pos 做出反应。 边沿。
    我可以达到最大值 频率为85kHz、这仍然不足以满足您的需求。

    一种解决方案是将输入信号除以2、如果可能的话。

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

    此时、控制器必须能够读取介于40和70 KHz 之间的频率。 好的、这很完美。

    我还尝试读取超过100KHz 的数据、因为我不确定所需的频率范围是否相同。

    现在、我将尝试降低频率并像您那样更改代码。

    谢谢你。

    此致、
    朱利亚诺