PWM是如何工作的

脉冲宽度调制,英文缩写为:pwm(pulsewidthmodulation),是通过数字信号实现对模拟电路控制的一种非常有效的技术,常被广泛应用于测量、通信、功率控制与变换等众多领域。
那么pwm是如何工作的?
我们知道,数字电路只能产生高电平(1)或低电平(0),在小脚丫上也就意味着3.3v和0v。那么如果我们的应用恰好在这之间怎么办?比如,将3.3v直接连到led上会导致led灯很亮。如何将led灯调暗呢?当然,最简单的办法就是直接串联一个限流电阻但这样一来,限流电阻就需要不断产生功耗,而这个功耗实际上是完全浪费掉的。
无非就是调节led的亮度而已,难道就没有其他更好的办法了吗?当然有,用我们今天学习的pwm就可以轻松实现。在进一步探讨点亮led之前,我们先通过图1了解一些基本的参数:
图1
图1中,脉冲信号的周期为t,高电平宽度为t。如果我们将t/t定义为占空比,占空比就是2/3,因为高电平的宽度占了整个周期的2/3。在图1中我们还可以看到一条红色虚线,画在了脉冲高度2/3的位置。这条虚线实际上就对应着最终的有效值。那么如何在fpga上生成pwm信号呢?
我们还是习惯看图说话,请看图2。假如我们有一个锯齿波,然后在锯齿波上设置一个阈值(黑色水平虚线),凡是大于该阈值时输出均为高电平,反之则为低电平,这样我们是不是就得到一个pwm信号呢?如果我们想调整它的占空比,那么调节阈值的高低就可以了。在本例中,阈值线越低占空比越高。
图2
如果把上面的描述再抽象化一下,就可以画出图3的模块框图。锯齿波实际上就可以用计数器生成,阈值就是一个数值而已,比较器是用来生成最后输出高低电平用的。
图3
有了设计思路之后,我们来看一下最终代码。
在代码中,我们设置的计数器位宽是8位,也就是每128次后自动重新计数。所以,该计数器的最大频率也就是12mhz/128=93.75khz。图3中可以看出,pwm信号的频率和计数器的频率相同,因此也是93.78khz。
试想一下,led现在正以超过每秒9万次的速度闪烁,肉眼是完全分辨不出来的。那么闪烁过程中,亮/灭的比值越大,led的视觉发光效果就越强,反之则越弱。我们最后将上述程序导入小脚丫中,并通过调节阈值来观察小脚丫上的led发光强度的变化。


苹果计划在2024年iPhone 16上使用第一代3纳米芯片
联通扭转颓势,联通显示出后继乏力
远大新风肺保FE6拆解评测 方面表现都达到很高的水准
安森美半导体推出BelaSigna R261高性能语音捕获SoC
Linux2.6内核驱动移植参考
PWM是如何工作的
功率放大器在无线电能传输系统中的应用
来了!微信7.0.20 for Android正式版已经发布
NVIDIA 邀您参加 —— AI 软硬件协同开发技术交流与人才发展分享会
六大趋势推动 OLED彩电开创新时代
Zigbee 3.0网络优化的一些方法和建议
人工智能技术:如何突破机器学习的先验假设
骨传导耳机危害有哪些?骨传导耳机对听力有害吗?
全球十大电视制造商计划在2021年购买2亿块液晶电视面板
索尼4KHDR液晶电视X9500G芯片强大 让画面品质更进一步
HTC Vive推出VR开发者比赛 将面向全球的VR开发者
未来“电机驱动与控制”的四大特性!
大尺寸电视背光源订单增多,LED厂商业绩看涨
【模拟电路设计】输入失调电压
voc在线监测设备是什么,它有哪些特点