脉宽调制(PWM)是一种数字信号提供平滑变化的平均电压的方案。这是以一定受控制脉宽的规律间隔的正脉冲实现。耗费在高电平的时间比例称为占空比。可用于近似模拟输出或控制开关模式电力电子设备。
RP2040 PWM模块有8个相同的slice。每个slice可以驱动两个PWM输出信号,或测量频率或输入信号的占空比。这将提供多达16个可控PWM输出。所有30个GPIO引脚都可以驱动通过PWM块。
图中为单个PWM切片。根据PWM模式,16位计数器从0计数到某个编程值,然后回卷到零,或再次向下计数。A和B输出的高低转换基于当前计数值和预编程A和B阈值。计数器基于多个事件行进:可能是自由运行,或由B引脚上输入信号的电平或边缘选通。小数分频器减慢总体计数速度,以更好地控制输出频率。
每个PWM slice配置如下:
•16位计数器
•8.4小数时钟分频器
•两个独立的输出通道,占空比从0%到100%(包括0%到100%)
•双斜率和后边沿调制
•用于频率测量的边沿敏感输入模式
•占空比测量的电平敏感输入模式
•可配置计数器wrap值
◦ wrap和电平寄存器是双缓冲的,可以在PWM运行时进行无竞争修改
•计数器wrap上的中断请求和DMA请求
•运行时相位可以精确提前或延迟(一个计数的增量)
slice可以通过单个全局控制寄存器同时启用或禁用。然后slice完美地运行锁定步数,以使更复杂的功率电路可以通过多个slice输出进行切换。