【求助】TuyaOS开发PWM初始化问题

Zigbee 子设备开发


Natural
Posts: 22

现在使用TuyaOS开发一个产品,使用的SDK 版本为TLSR8258_3.7.1 , 两路PWM 输出, 即CW 互补的方式, PWM 有效电平为高电平输出。现在第二路没有开启反向的时候初始化正常,当第二路PWM 开启反向后, 初始化时候, 该PWM会有一段时间高电平出来,本来应该是低电平的。 详情见附件图片,图片: 1.png为不反相输出,图2.png为反向输出。这个问题麻烦帮忙看下呢

Attachments
2.png
1.png
huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

您好:第二路PWM 开启反向 是调用了什么函数? 麻烦贴一下函数,方便我们定位问题,谢谢

Natural
Posts: 22

Re: 【求助】TuyaOS开发PWM初始化问题

在公版的基础上修改了两个初始化参数, 换了下GPIO 测试验证:v_cfg.duty = 1000;
v_cfg.polarity = TUYA_PWM_NEGATIVE;

Attachments
3.png
huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

1.请先确认 PWM_NUM_0 的frequency 是多少,如果是1000的话,duty = frequency 则会输出持续电平
2.下图是我用demo,pwm输出的结果,frequency是1000,实际输出是符合要求的

Attachments
PWM输出2.png
PWM输出.png
Natural
Posts: 22

Re: 【求助】TuyaOS开发PWM初始化问题

你现在是PWM1 的端口反向,你这样试下,设备上电的时候,PWM0 配置成输出100%高电平, PWM1反向,即CW互补的情况,那么PWM1 应该配置成输出低电平(PWM的有效占空比为0%),你看下设备上电的时候, PWM1 会不会有短暂的一瞬间高电平出来,正常情况下不应该会有高电平出来,因为配置的有效占空比是0%

huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

这个问题我们有复现,我们先确认下,之后会给你解决方案

huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

您好,我们实现了 tkl_pwm_idle_level_set 函数,用于配置 调用 tal_pwm_init 后到调用 tal_pwm_start 之间这段时间的pwm输出电平。之前的问题就是由于该电平输出错误导致的出现异常高电平

Attachments
pwm默认电平代码.png
1默认高电平2默认低电平.png
huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

第一个波形从电平调到高电平是因为进入了配置默认输出为高的函数,可以看到这时候第二个波形输出是配置的低

huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

这是默认输出 1路低 2路高 后开启1K,占空比30%的互补波形

Attachments
pwm默认输出1低2高.png
PWM默认输出1低2高代码.png
huanghuan
Posts: 244

Re: 【求助】TuyaOS开发PWM初始化问题

https://images.tuyacn.com/rms-static/7d ... =tkl_pwm.c

1.您可通过该路径下载更新后的 tkl_pwm.c 并将其替换原来开放框架路径下的同名文件,进行重新编译
2.为了实现多路PWM输出严格同步,更新后的该文件,tal_pwm_xxx_set 修改占空比,正反向,频率等后需要配套 tal_pwm_start 进行使用
3.如有问题欢迎留言沟通,谢谢

Post Reply