11、W601之PWM控制器
一、PWM功能概述
PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。
二、W601的PWM控制器的主要特性
- 支持 2 通道输入信号捕获功能(PWM0 和 PWM4 两个通道)
- 输入信号捕获功能支持中断交互模式和 DMA 传输模式;DMA 模式支持按字操作
- 支持 5 通道 PWM 信号生成功能
- 5 通道 PWM 信号生成支持单次生成模式和自动装载模式
- 支持 5 通道制动功能
- PWM 输出频率范围:3Hz~160kHz
- 占空比最大精度:1/256,插入死区的计数器宽度:8bit
- 支持通道 0 通道 1 同步功能,支持通道 2 通道 3 同步功能
- 支持通道 0 通道 1 的互补与非互补模式,支持通道 2 通道 3 的互补与非互补模式
- 支持 5 通道同步功能
- 输入信号捕获
- PWM 控制器支持两个通道的信号捕获功能,通过设置 PWM_CTL 寄存器的 Bit24 可以激活通道 0 的捕
获功能 - 设置 PWM_CAP2CTL 寄存器的 Bit1 可以激活通道 4 的捕获功能
- PWM 控制器支持两个通道的信号捕获功能,通过设置 PWM_CTL 寄存器的 Bit24 可以激活通道 0 的捕
- DMA 传输捕获数
- 通道 0 或者通道 4 开启捕获功能后,捕获寄存器的计数可以通过 DMA 通道快速传输至内存,加速用户
处理进程
- 通道 0 或者通道 4 开启捕获功能后,捕获寄存器的计数可以通过 DMA 通道快速传输至内存,加速用户
三、寄存器描述
四、代码实现
void pwm1_init(u32 freq, u8 duty)
{
wm_pwm1_config(WM_IO_PB_30);//复用PB30为PWM
tls_pwm_init(0, freq, duty, 0);//配置PWM基本参数
tls_pwm_start(0);//开始PWM
}
int main(void)
{
pwm1_init(1000, 128); //PWM初始化,频率1KHz,占空比128/256 = 50%
while(1)
{
LED_B = 0;
delay_ms(500);
LED_B = 1;
delay_ms(500);
log_i("main is running");
}
}
使用示波器就可以看到占空比为一般的方波