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.

[参考译文] CC2652RB:当 PWM 被启用并且应该处于"空闲任务&quot 时 WDT 复位;

Guru**** 2531950 points
Other Parts Discussed in Thread: CC2652RB, CC2642R, DRV8837

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/901447/cc2652rb-wdt-resets-when-pwms-enabled-and-supposedly-in-idle-task

器件型号:CC2652RB
主题中讨论的其他器件: CC2642RDRV8837

您好!

最近、我们已将项目和代码从 CC2642R 迁移到 CC2652RB、这是我所期望的第一大操作差异。

而言之、当 PWM 处于活动状态时、WDT 似乎会递增、但没有任务处于活动状态(所有任务都被阻止/挂起)。

有关一些详细信息、我们将外部 TXCO 用于32kHz 输入、我们知道、由于 RTC 保持 god 时间、因此它工作正常。 我们的 PCB 上没有安装晶体振荡器、我们仅使用该 TXCO 和集成 BAW。 我们使用 PWM 驱动直流电机、直接通过 GPIO 控制 DRV8837。 我看到的是、如果我在1秒内没有中断使该 PWM 停止、或者没有另一个任务激活 WDT、我将得到 WDT 复位。  

我禁用了 WDT、控制器没有引发硬件异常、代码将按预期继续运行、而不会在这种情况下进行复位。 显然、移除 WDT 不是解决此问题的足够选择。

为什么会进行此复位? 我们是否应该能够在不需要唤醒并启动看门狗的情况下打开 PWM 并进入睡眠状态?

我不记得这会影响我们在之前的任何固件版本中使用 CC2642R。 我还想避免在我们的应用中使用较短的计时器和计数器将超时值相加时出现任何过度复杂的情况。

此致、
Tyler Witt

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

    您好、Tyler、

    我已将您的帖子分配给一位专家、以帮助您解决您的问题。

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

    Severin、

    感谢您的专家、但我认为我们已经找到了解决这个问题的方法、尽管这并不是一个很好的解决方案。

    同时、我已经做了一些研究、我认为应该从本系列的技术参考手册中看到我应该看到的结果。 我在有关时钟门控的第7.5.2.1节中发现、基础设施时钟运行 WDT、即仅高频时钟除以32。 此外、在该页面上、我发现 GP 定时器在 Periph_PD 内使用不同的条件分频器从相同的 HF 时钟计时。 我假设如果我们要通过一个分频器运行 HF 时钟、它也会通过另一个分频器运行、而没有任何门控阻止它、这是有道理的。

    我还向下修订了我们的代码、使其脱离 CC2642R 运行、发现运行 PWM 的时间超过 WDT 超时时间将导致 WDT 中断、在我们的情况下、则会导致软复位的 NMI。 出于调试目的、我们通常禁用 WDT、因为 WDT 软复位会导致调试器失去 JTAG 连接。  

    因此、既然我们知道这是一种"按设计运行"的方法、即使不是完全按预期运行、我们也必须找到一种软件方法来解决这一问题、我们可以做到这一点。

    但是、如果有任何解决方案能够在不增加 WDT 的情况下运行 PWM、我将有兴趣了解它们是什么。

    此致、
    Tyler Witt