PWM调制波形异常。

fan123450
Posts: 2
Joined: Wed Apr 27, 2016 9:43 am

PWM调制波形异常。

Postby fan123450 » Wed Apr 27, 2016 4:45 pm

你好,我使用SDK V1.5.3 AT例程源码进行PWM开发时候发现波形异常。

设置period=1000,duty=11111;希望调出周期1ms,占空比50%的波形。实际结果如附件图。
出现72us不明脉冲,周期1.10024ms,不能达到需求。

请问是否是正常情况,如不是该如何修正。

Code: Select all

void ICACHE_FLASH_ATTR
at_setupCmdPWM(uint8_t id, char *pPara)
{
    int result = 0, err = 0, flag = 0;

    pPara++; // skip '='
   uint32 period;
   uint32 duty;

    flag = at_get_next_int_dec(&pPara, &period, &err);
   if (*pPara == ',') {
         pPara++; // skip ','
         flag = at_get_next_int_dec(&pPara, &duty, &err);
    }
   pwm_set_duty(duty,0);
   pwm_set_period(period);
   
   pwm_start();
   at_port_print("\r\nPWM Start!\r\n");
    at_response_ok();
}
Attachments
20160427162548.jpg

ESP_Alfred
Posts: 56
Joined: Mon Nov 10, 2014 7:31 pm

Re: PWM调制波形异常。

Postby ESP_Alfred » Wed May 25, 2016 1:55 pm

新版本PWM的特性如下:
1.在原始的period周期之外,外加一个100us的时间进行duty的微调。
2.在微调的时间内,不能达到100%的高电平(毛刺就是微调)。
3.这样做的优点是总体的精度变高(周期越大,精度也会越高)。缺点是在duty接近100%时的,精度会变低(因为duty高时,精度低肉眼不易察 觉)。

实际上,我们还有另外一种PWM工作方式,可以到达100% Duty,周期也是准的,但总体精度可能没有这种方式高。

请参考 http://bbs.espressif.com/viewtopic.php?f=31&t=1378

Who is online

Users browsing this forum: No registered users and 13 guests