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.

[参考译文] CC1352P7:Zephyr 中具有 GP 计时器的 PWM 似乎是不规则的

Guru**** 2393725 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1376704/cc1352p7-pwm-in-zephyr-with-gp-timers-seems-to-be-irregular

器件型号:CC1352P7

工具与软件:

我正在尝试在运行 Zephyr 的 Beagleconnect Freedom 上使用 PWM。 为了测试这一点,我试图淡出 LED 类似于 Fade Arduino 样例. 我 在这里创建了一个可重现的 Zephyr 示例应用程序。  

我将使用以下器件树叠加层来启用 ti、cc13xx-cc26xx-timer-pwm 中所述的 PWM

```μ A

/{
 别名{
  pwm-led0 =&pwm_led0;
 };

 pwmleds {
  兼容="PWM-LED";
  pwm_led0:pwm_led_0{
   Pwms =<&pwm0 0 255 PWM_POLARY_NORM>;
   标签="PWM MB1";
  };
 };
};

&pinctrl{
 pwm0_default:pwm0_default{
  引脚多路复用=<17 IOC_PORT_MCU_PORT_EVENT1>;
  偏置禁用;
  驱动强度=<2>;
 };
};

&gpt0{
 状态="正常";
};

&pwm0{
 状态="正常";
 pinctrl-0 =<&pwm0_default>;
 pinctrl-names ="默认值";
};

```μ A

我观察到的是不稳定的闪烁、而不是流畅的淡出。 脉冲计时似乎有误或出现问题。 不过、我没有示波器来真正测试输出。

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

    尊敬的 Ayush:

    我们没有任何 Zephyr 示例、因此我们在使用该器件时提供支持的方式有限。

    如果您怀疑时间安排错误、比较周期比例可能会有所帮助? 默认情况下、TI PWM 驱动器使用1Hz 周期、但可以通过 pwmParams 对其进行更改。

    https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_41_00_17/docs/drivers/doxygen/html/_p_w_m_8h.html

    谢谢、

    Marie H.

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

    在 main 函数中、使用 k_sleep (K_forever)将线程置于暂停模式、因此不使用 while (1)等阻塞语句;使 PWM 驱动器正常工作。  

    int main(void) {
        int i;
    
    
        pwm_set_pulse_dt(&pwm_led0, pwm_led0.period / 2);
        const struct pwm_cc13xx_cc26xx_config* config = pwm_led0.dev->config;
    
        while (1);
        // k_sleep(K_FOREVER);
        return 0;
    }