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.

[参考译文] CC2340R5-Q1:脉冲测量

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1427421/cc2340r5-q1-pulse-measure

器件型号:CC2340R5-Q1
主题中讨论的其他器件:CC2340R5

工具与软件:

您好、TI 团队。

虽然我有一个类似的问题、但请告诉我以下方法。

我想使用 LGPTimer 功能从另一个 IC 获得低脉冲宽度(约16微秒)输出。

是否可以通过以下流程获得? 请告诉我。

 /* LGPTimer Settings */
 LGPTimerLPF3_Params_init(&lgpt_params);
 lgpt_params.hwiCallbackFxn = pulse_measure;
 lgpt_params.channelProperty[0].action = LGPTimerLPF3_CH_PULSE_WIDTH_MEASURE ;
 lgpt_params.channelProperty[0].inputEdge = LGPTimerLPF3_CH_EDGE_BOTH ;
 lgpt_handle = LGPTimerLPF3_open(CONFIG_LGPTIMER_0, &lgpt_params);
 LGPTimerLPF3_enableInterrupt(lgpt_handle, LGPTimerLPF3_INT_TGT);
 LGPTimerLPF3_start(lgpt_handle, LGPTimerLPF3_CTL_MODE_UP_PER);
 ...
 
 void pulse_measure(LGPTimerLPF3_Handle lgptHandle, LGPTimerLPF3_IntMask interruptMask)
 {
    /* Get pulse period */
    uint32_t pulse_period = LGPTimerLPF3_getChCaptureVal(gh_lgpt1_handle, LGPTimerLPF3_CH_NO_0);
 }

此致。

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

    您好!  

    是的、该实施方案将起作用。  此外、查看 LGPTimerLPF3_getNextChCaptureVal ()、该函数将测量输入的脉冲宽度。 确保将 Ch0引脚设置为您希望获取输入的任何 GPIO 引脚。 如果您对此实施有任何问题、请告诉我。  

    谢谢!  
    Isaac

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

    您好、Issac

    感谢您的答复。

    我们已经确认、它与问题出现时所显示的实施方案是有效的。

    但是、操作有两个问题、一个问题。(参见下图)

    CH1:CC2340R5 WAKEUP AND UART (CC2340R5接收)、 CH2:UART (CC2340R5发送)、CH3:Dammy Data (LGPT CH1)、Ch4:用于运动分析

    Q1.红色箭头指示的区域短时间为低。 为什么会这样呢? (在 CC2340R5未连接的情况下、另一个 IC 没有输出。)

    Q2.蓝色箭头所示的区域从虚拟信号结束到中断发生需要1.36ms 的时间。 为什么需要这么长的时间? 是否有办法缩短时间? (我希望缩短电池供电时间。)
    提示:等待虚拟信号输入处于待机模式。

    Q3.目前、我在中断函数中使用 LGPTimerLPF3_getChCaptureVal ()获取脉冲长度值、但 LGPTimerLPF3_getNextChCaptureVal ()和 LGPTimerLPF3_getCounterWidth ()之间的差异(分别、这三个函数中的哪一部分时间是测量值的?) 请告诉我。

    如果在回答问题时缺少任何信息、请告知我们。
    感谢您的合作。

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

    您好、Issac

    关于问题2、我能够通过如下所示审核代码来解决此问题(第7行)。
    请只回答其他问题。

    /* LGPTimer Settings */
     LGPTimerLPF3_Params_init(&lgpt_params);
     lgpt_params.hwiCallbackFxn = pulse_measure;
     lgpt_params.channelProperty[0].action = LGPTimerLPF3_CH_PULSE_WIDTH_MEASURE ;
     lgpt_params.channelProperty[0].inputEdge = LGPTimerLPF3_CH_EDGE_BOTH ;
     lgpt_handle = LGPTimerLPF3_open(CONFIG_LGPTIMER_0, &lgpt_params);
     LGPTimerLPF3_enableInterrupt(lgpt_handle, LGPTimerLPF3_INT_CH0_CC); /* Change intMask */
     LGPTimerLPF3_start(lgpt_handle, LGPTimerLPF3_CTL_MODE_UP_PER);
     ...
     
     void pulse_measure(LGPTimerLPF3_Handle lgptHandle, LGPTimerLPF3_IntMask interruptMask)
     {
        /* Get pulse period */
        uint32_t pulse_period = LGPTimerLPF3_getChCaptureVal(gh_lgpt1_handle, LGPTimerLPF3_CH_NO_0);
     }

    此致。

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

    您好!  

    Q1:由于该通道是来自外部 IC 的数据、我想是它的噪声或来自外部 IC 的某种瞬态。  1)您提到外部 IC 没有输出任何内容、是从 CC2340R5还是外部 IC 进行这种跟踪? 根据我的理解、您只是在没有连接 IC 的情况下监控 CC2340R5上外部 IC 的输入引脚吗?  

    Q3:您是否想了解输出单元(时间、节拍等)、或者每个函数如何测量波形? 我将跟进另一位团队成员、看看我是否可以获得有关这些功能的更多信息。 对于延迟、我们深表歉意。  

    谢谢!  
    Isaac

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

    你(们)好

    回复上一封电子邮件:
    问题1。 示波器图像显示了连接另一个 IC 的输出端口时的状态。

    这是因为 CC2340R5不会继续执行下一个操作、除非它在不规则低电平脉冲之后接收到合法的虚拟信号。

    不过、如前所述、单个 IC 不会像图中那样输出不规则的低电平脉冲、因此我怀疑在将端口切换至 LGPT 通道时 CC2340R5侧的电平可能发生变化。


    问题2: 这就是你提到的后者。 我想告诉您、每个函数在图像的哪一部分测量时间并输出从中得出的值。

    谢谢你。

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

    您好!  

    Q1:我相信你是正确的。 当 CC2340R5切换到 LGPT 通道时、将会出现一点电流下降。 我会做一些挖掘自己,看看我是否能看到类似的东西。  

    Q3:这些函数根据计数器节拍来测量周期和脉冲宽度。 您可以在  API 指南的 LGPTimerLPF3_ChannelAction 部分的 LGPTimerLPF3_CH_PULSE_WIDTH_Measure 下阅读有关此方面的更多信息。 有一个函数可将计数器周期数转换为毫秒数、但目前找不到这个函数。 我将于星期四(10月24日)提供更多信息。  

    谢谢!  
    Isaac