主题中讨论的其他器件: CC1312R
工具/软件:
您好、
对于基于 CC1312R7 的工程 ( simplelink_cc13xx_cc26xx_sdk_6_30_01_03)、TI_RTOS7 我需要通过重复模式实现声音生成(以驱动 Siren)、家长由 2.8kHz 至 2kHz 范围内的 20 个频率组成、因为声音从 2.8kHz 开始、每 5ms 降至 2kHz、然后再次从 2.8kHz 开始。 所有频率的占空比值必须相同、这意味着要更改频率周期/加载值和匹配值、则必须更改此值。
若要实现此声音生成、我使用 SDK 中的 PWM 驱动程序进行两处修改:
1.在 pwm_open() 之后、我设置了 TxMRA.TxILD 位(换言之,将 mode 设置为 GPT_Tamr_TAILD_toupdate) 、以便只在计时器超时更新间隔。
2.将 PWM_PERIOD_for_glitch_protection 值从 16 增加到 960(约为 20us)。
问题是、几乎每次在 2kHz 至 2.8kHz 频率范围内设置新的间隔和匹配值时、PWM 输出都会出现问题、如下图所示(第一个信号显示了调用 Set load 和 match value 函数时的情况、第二个信号是 PWM 输出)。 此外、还添加了逻辑分析仪中的完整文件、以获取更多信息(可通过 Saleae 应用程序打开)。


问题是否存在有关 PWM/GPTimer 加载和匹配值设置/重新加载的任何已知问题、如果不是、什么原因会导致此行为?
也欢迎任何关于如何解决这一问题的想法。
此致。
Dimitar