单片机/MCUwilliam hill官网
直播中

王敏

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

m052 PWM输出占空比低于50%时,输出不连贯的原因?怎么解决?

用m052做某项目,用PWM产生可调电压输出,即简易DA吧,当改变PWM输出的脉宽时,经过RC滤波即可得到变化的电压,我想大家都懂的,^_^。
现在问题来了,当PWM输出占空比在50%(含)以上时,输出没问题的,连贯。当占空比低于50%时,输出不连贯,是间歇输出的,一阵有脉冲输出(占空比符合设定要求),一阵没有脉冲输出(输出为“0”),而且占空比越小,间歇周期越大。原来用的是M052LBN,以为是芯片的问题,换成M052LDN,现象依旧,那么请问问:这是什么原因造成的?怎么解决?  (着急啊,被这个问题卡住了,产品没法往下走啊)

回帖(2)

王云玲

2024-1-16 10:21:00
两种可能, 
1、可能有某个地方无意中改了GPIO口的功能, 改成GPIO了。代码中同时不停的让PWM对应的 DOUT 位取反,若PWM不输出时刚好是DOUT的取反值,可验证是此原因
2、可能是写占空比寄存器 CMR 出现错误,打开PWM周期中断,在周期中断里,让另一个GPIO每次取反。看这个引脚的方波是否刚好是PWM频率的一半,若是,表明PWM并没有停,而是占空比值写错了。
举报

杨万富

2024-1-16 16:53:35
这种情况可能是由于m052 PWM输出的工作频率过高,导致在占空比低于50%时,输出脉冲的间隔时间太大,从而在人眼观察上会感觉到不连贯。

你可以尝试通过以下方式来解决这个问题:

1. 降低PWM输出的工作频率:通过修改相关寄存器,降低PWM输出的工作频率,使得脉冲的间隔时间变短。具体的修改方式和寄存器地址可以参考m052的数据手册。

2. 增加RC滤波器的时间常数:通过增加RC滤波器中电容或者电阻的值,可以延长滤波器的时间常数,从而使得输出的电压变化更加平滑,减少间歇性。

3. 使用其他方式生成可调电压输出:除了PWM输出之外,你可以考虑使用其他的方式来生成可调电压输出,比如使用数字到模拟转换器(DAC)芯片,这样可以得到更为连续且精确的输出。

希望以上方法可以帮助解决你的问题,祝你顺利完成项目!
举报

更多回帖

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