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.

[参考译文] CC1310:在使用 GPIO 中断和计时器的 CC1310F128RGZ 上进行 LMT01脉冲计数时出现问题

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1482824/cc1310-issue-with-lmt01-pulse-counting-on-cc1310f128rgz-using-gpio-interrupt-and-timer

器件型号:CC1310
主题中讨论的其他器件:LMT01、、

工具与软件:

您好!

我使用的是 TI CC1310F128RGZ 微控制器来连接 LMT01温度传感器 . 我正在尝试使用 a 对脉冲进行计数 GPIO 下降沿中断 但我没有得到一个准确的计数。

我还尝试了使用 计时器 来测量脉冲宽度、但遇到了一个限制、即下面的计时器无法正常工作 11微秒 .

是否有人遇到类似问题或找到解决方法? 对于任何关于如何在 CC1310上实现 LMT01传感器精确脉冲计数的建议、我们不胜感激。

提前感谢!

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

    尊敬的 Arvind:

    我认为、为了与 LMT01连接、您应该在"向上计数"模式下使用 CC1310 GPTimer:

    这将导致一个计数机制不会因不必要的中断而对主 CPU 造成压力。 我还将向您推荐计时器驱动程序文档: https://dev.ti.com/tirex/explore/content/simplelink_cc13x0_sdk_4_20_02_07/docs/tidrivers/doxygen/html/_g_p_timer_c_c26_x_x_8h.html

    另外、您 还可以访问一些有关如何执行该操作的示例代码:

    此致、

    Arthur

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

    您好、Arthur、

    我已经尝试使用 GPTimer、但它没有提供正确的计数。 这是我的代码。

    e2e.ti.com/.../Lmt01.c

    请检查代码、并建议我应该进行哪些更改或应该执行哪些操作来解决此问题。

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

    尊敬的 Arvind:

    计数有多不正确?

    您不应恰好等待54毫秒、因为您将错过一些脉冲。 此时应等待 至少60ms、以确保捕捉到脉冲序列。

    此致、

    Arthur

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

    您好、Arthur、

    我尝试了47毫秒、54毫秒、60毫秒、70毫秒和80毫秒、 但输出保持不变。

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

    您好、Arthur、

    脉冲数始终介于118和122之间。

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

    Arvind,

    LMT01如何与 CC1310连接? 您能否布置原理图?

    此致、

    Arthur

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

    您好、Arthur、

    R16已连接、但 R17未连接。 我还在 LAUNCHXL-CC1310板上使用外部传感器电路进行了测试。 该电路与原理图中所述的电路相同。

      

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

    尊敬的 Arvind:

    现在我思考一下、预分频器值如何? 您能展示一下它是如何在 TnPR 寄存器视图中配置的吗?

    此致、

    Arthur

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

    e2e.ti.com/.../timer-Register.txt

    您好、Arthur、

    文本文件中提到了 GPTimer 寄存器值。 请检查。

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

    尊敬的 Arvind:

    在再次查看您的代码后、我认为您应该执行以下操作:

    1. 先开始计数、等待60ms。 不要在中断中计数、或进行任何类型的处理。
    2. 在60ms 过后、使用  GPTimerCC26XX_getValue 获得该值。

    此致、

    Arthur

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

    e2e.ti.com/.../Lmt01_5F00_GPTimerCC26XX_5F00_getValue.c

    您好、Arthur、

    我已经尝试过、但它没有准确地计算脉冲。 我还附上了该代码。 请检查。

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

    尊敬的 Arvind:

    这次你也得到同样的118 - 122的价值吗? 请注意、您仍处于 GPT_MODE_EDGE_TIME 中:



    您需要处于 GPT_MODE_EDGE_COUNT 状态才能对边沿进行计数。

    此致、

    Arthur

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

    e2e.ti.com/.../Lmt01_5F00_Gptimer_5F00_pulses_5F00_2220.c

    您好、Arthur、

    我尝试了使用 GPT_MODE_EDGE_COUNT 在两种情况下:

    1. 传感器的持续电源 –在这种情况下、脉冲计数是随机的、如 2292, 2502, 53, 2493, 1080, 等等

    2. 在特定时间段内使用 GPIO 引脚14为传感器供电 –脉冲计数保持在之间 2200-2230. 环境温度下测量的。

    我还附上了我的代码。 请检查。

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

    尊敬的 Arvind:

    第2题是正确的方法、结果也是如此。 因为您同时依赖两个边沿、所以会获得两倍的计数。 如果将其除以2、则可得到环境温度值。

    此致、

    Arthur

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

    您好、Arthur、

    根据示波器波形、我设置 17毫秒 限制。 但在现实中、当 温度变化、此时间也会变化 所以我决定相应地调整它。

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

    您好、Arthur、

    我使用检查了温度 器件 有一个 相差6度 确定最佳亮度设置。

    • LMT01传感器 所示 19.9–20.1°C .

    • 器件 所示 26.7°C .

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据示波器波形、我设置了 17毫秒 限制。 但在现实中、当 温度变化、此时间也会变化 因此,我决定相应地调整它。[/报价]

    实际上、时间会随温度而变化、因为脉冲序列可能更长、也可能不更长。 请继续使用60ms 的值、正如您在解决方案2中建议的那样。

    [报价 userid="608190" url="~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1482824/cc1310-issue-with-lmt01-pulse-counting-on-cc1310f128rgz-using-gpio-interrupt-and-timer/5739822 #5739822"]

    已使用检查温度 器件 有一个 相差6度 确定最佳亮度设置。

    • LMT01传感器 所示 19.9–20.1°C .

    • 器件 所示 26.7°C .

    [报价]

    LMT01 (即校准器件)可能会暴露在不同的温度条件下或阳光下、这可能是造成差异的原因。

    此致、

    Arthur

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

    您好、Arthur、

    我检查了 LMT01传感器输出 在不同温度下、脉冲计数如下所示:

    1. at 70°C 、脉冲计数为 1638–1645 .

    2. at 79°C 、脉冲计数为 1768–1782 .

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

    尊敬的 Arvind:

     您的示波器是否 附带 脉冲计数功能? 这将有助于验证计数。

    如果计数刚好与 CC1310相匹配、则可以在浏览以下文档后切换到传感器论坛: https://www.ti.com/lit/pdf/snoa967

    此致、

    Arthur