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.

[参考译文] CC2745R10-Q1:使用计时器 (CC2745R10) 进行 UDS 实现时面临的挑战。

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1589815/cc2745r10-q1-challenges-in-using-timer-cc2745r10-for-uds-implementation

器件型号: CC2745R10-Q1

TI 团队大家好、

在为 UDS 实施计时器时、我们面临一些挑战。
CC2745 器件提供 4 个 LGPT 计时器、但我们的 UDS 实现方案需要 6 个独立的计时器并行运行以用于各自的任务。

您能否指导我们如何使用可用的计时器来实现此要求?

谢谢、此致
Ratan D.

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

    尊敬的 TI 团队:

    我希望此消息能帮您找到答案。 由于我尚未收到关于我的询问的答复、因此我希望继续跟进。 请您确认是否可行? 如果是、请你指导我们如何开展工作。

    谢谢、此致

    Ratan D.

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

    您好 Ratan、

    对延迟的回复表示歉意。 请问您使用 6 个并行运行的独立计时器的用例是什么? 我们通常建议使用事件、因为运行 6 个独立的计时器并不是很理想、因为我们所有的时间驱动器都有不同的行为。 话虽如此、但还有额外的计时器可供使用:  RTC 时钟  和  ClockP 模块、  它 基于 SYSTIM。 您可以查看这些选项、看看它是否满足您的需求。

    需要注意的一点是、所有这些驱动程序都不相同、即使是 4 个 LGPT 计时器也有不同的行为、因此、如果您并行运行它们、则必须考虑不同的情况。 我附上了以下 TRM、该 TRM 将提供有关可用计时器及其行为的更多信息:CC27xx 技术参考手册(修订版 A)

    谢谢您、

    Eshaan

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

    尊敬的 Eshaan:

    我们不希望使用 4 个 LGPT 计时器。 由于单个计时器有 3 个通道、因此我们希望所有三个通道都应该独立工作、并且每个通道都应有自己的回调。

    例如:

    • 通道 0- 1mS
    • 通道 1 - 5mS
    • 信道 2 - 100mS

    每个通道应根据其自己配置的周期运行、但我们无法实现该行为。
    您能否建议一种方法、让所有三个通道独立工作并使用单独的回调?

    如果这样有效、我们只需使用两个计时器即可满足我们的要求。

    谢谢、此致

    Ratan Dalei

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

    您好 Ratan、

    我正在查看计时器通道、但需要一些时间。 由于我们的团队将在一周的剩余时间内休假、感恩节期间、请期待收到延迟的回复。 同时、TRM 还提供了有关 LGPT 通道配置的详细信息 ( 第 12 章 )。 谢谢你。

    Eshaan

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

    您好 Ratan、

    我想跟进,因为我从假期回来. 您是否能够使用 TRM 解决问题、或者仍需要帮助?


    Eshaan

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

    尊敬的 Eshaan:

    问题仍未解决、我们正在等待您的支持。 之前、您在第 12 章中提到了使用 LGPT 计时器、但我们使用您的 SDK、不直接访问 MCU 寄存器。 由于我们正在使用您的 SDK、而不直接访问 MCU 寄存器、请指导我们如何使用 TI 库进行配置?

    我注意到单个 LGPT 计时器有三个通道、我想使用具有不同时间值的所有三个通道、以便可以使用一个 LGPT 计时器实现三个单独的时序和回调。  

    我不知道这是否可行、但我期望它应该是。 请确认或提供更好的建议、以实现相同的结果。

    谢谢。此致。

    Ratan D.

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

    您好 Ratan、

    下面的代码片段显示了如何初始化单个通道。 如果所有三个通道都遵循类似的结构、则应能够根据需要对其进行配置。 以下链接可将您转至我们的用户指南、您可在其中找到 TI 驱动程序 API 参考。 在“ LGPTimerLPF3.h 文件参考“  一节提供了有关 LGPTimer 模块及其配置方法的更多信息。 谢谢。

    void* taskFxn(void* arg) {
      LGPTimerLPF3_Handle lgptHandle;
      LGPTimerLPF3_Params params;
      uint32_t cntTargetVal = 1500/2;
      uint32_t chCompVal    = cntTargetVal/2;
      // Configure channel 2 action
      LGPTimerLPF3_Params_init(&params);
      params.channelProperty[2].action = LGPTimerLPF3_CH_TOGGLE_ON_COMPARE_PERIODIC;
      // Open driver
      lgptHandle = LGPTimerLPF3_open(0, &params);
      // Set channel output signal period
      LGPTimerLPF3_setInitialCounterTarget(lgptHandle, cntTargetVal, false);
      // Set channel output signal duty cycle
      LGPTimerLPF3_setInitialChannelCompVal(lgptHandle, LGPTimerLPF3_CH_NO_2, chCompVal, false);
      // Start the LGPTimer in up-down-periodic mode
      LGPTimerLPF3_start(lgptHandle, LGPTimerLPF3_CTL_MODE_UPDWN_PER);
      // Output signal forever
      while(1);
    }


    BLE 栈用户指南

    Eshaan

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

    您好、Eshaan、

    我已经以这种方式进行了测试、但无法使用不同的信道获得不同的时间值。 我将进一步检查使用您的代码是否有助于解决我的问题。 现在、我们将一个计时器用于不同的时序。 我们设置了一个 1ms 回调计时器、我们将增加一个计数器并比较不同时序的计数器值。 我会使用经过测试的代码尽快回复您。

    谢谢、此致
    Ratan D.