ST意法半导体
直播中

成尔秩

7年用户 953经验值
私信 关注
[问答]

STM32MP1的PWM限制是什么

大家好,
参考我之前的讨论。
我只想了解 STM32MP1 的 PWM 限制是什么。
我似乎无法生成低于 100 毫秒的 PWM 信号。
任何输入将不胜感激。
我的目标频率是 1KHz。


回帖(1)

杨秀英

2022-12-21 09:55:57
未测试,但您是否尝试确保duty_cycle始终小于period  
我已经使用此处描述的 pwm-leds


  • &timers1 {
  •         /* status = "okay"; */
  •         /* spare all DMA channels since they are not needed for PWM output */
  •         /delete-property/dmas;
  •         /delete-property/dma-names;
  •         /* define pwm1 label */
  •         pwm1: pwm {
  •                 /* configure PWM pins on TIM1_CH1 */
  •                 pinctrl-0 = ;
  •                 pinctrl-1 = ;
  •                 pinctrl-names = "default", "sleep";
  •                 /* enable PWM on TIM1 */
  •                 status = "okay";
  •         };
  •                 /* PWM DT user on TIM1_CH1: "pwm1", tim1_test with "pwm-leds" */
  •         pwmleds {
  •                 compatible = "pwm-leds";
  •                 tim1_test {
  •                         label = "PWM-TEST";
  •                         /* Use pwm1 channel 0 (e.g. TIM1_CH1) */
  •                         /* period in nanoseconds (***), normal polarity (0) */
  •                         pwms = ;
  •                         max-brightness = ;
  •                         default-trigger = "default-on";
  •                 };
  •         };
  • };

所以,与你的情况不太相似(这里的周期在 DT 中是固定的,我认为不能使用 sysfs 更改),但它背后使用的是相同的定时器驱动程序。
亮度为 127 (50%),我最终得到:


  • root@stm32mp1:~# echo 127 > /sys/class/leds/PWM-TEST/brightness
  • root@stm32mp1:~# cat /sys/kernel/debug/pwm
  • platform/44000000.timer:pwm, 4 PWM devices
  • pwm-0   (tim1_test           ): requested enabled period: 1197 ns duty: 596 ns polarity: normal
  • pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
  • pwm-2   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
  • pwm-3   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
举报

更多回帖

发帖
×
20
完善资料,
赚取积分