CH582M的单片机,除了能使用定时器产生PWM外,它本身还配置了专用的PWM控制器。PWM控制器有8个,PWM4~PWM11。这些PWM控制器有以下几个特点:
1、数据宽度可选5~8位,默认为最大8位。
2、占空比可通过设置指定寄存器进行调整
3、PWM4/PWM5、PWM6/PWM7、PWM8/PWM9、PWM10/PWM11可设置为互补模式
4、有8种可选的周期
与之相关的寄存器:

各寄存器的说明如下:
一、PWMx 输出使能寄存器(R8_PWM_OUT_EN)
控制是否允许输出

二、PWMx 输出极性配置寄存器(R8_PWM_POLAR)

三、PWMx 配置控制寄存器(R8_PWM_CONFIG)

四、PWMx 时钟分频寄存器(R8_PWM_CLOCK_DIV)

五、PWM 数据保持寄存器组 1(R32_PWMx_DATA) x = 4~7

六、PWM 数据保持寄存器组 2(R32_PWMx_DATA) x = 8~11

七、PWMx 中断控制和状态寄存器(R8_PWM_INT_CTRL)

配置PWM产生PWM波,需要按照以下步骤操作:
(1)、设置寄存器 R8_PWM_CLOCK_DIV,配置 PWM 的基准时钟频率;
(2)、设置 PWM 输出极性配置寄存器 R8_PWM_POLAR,配置对应 PWMx 的输出极性;
(3)、设置 PWM 配置控制寄存器 R8_PWM_CONFIG,设置 PWM 的模式、数据位宽、周期;
(4)、设置 PWM 输出使能寄存器 R8_PWM_OUT_EN,开启对应的 PWMx 输出使能;
(5)、根据需要的占空比计算出数据,写入对应的数据保持寄存器 R8_PWMx_DATA;
(6)、设置 PWM4-PWM11 中所需的 PWM 引脚方向为输出,可选地,设置相应 I/O 的驱动能力;
(7)、根据需要更新 R8_PWMx_DATA 中的数据,更新输出占空比。
调整 R8_PWMx_DATA 寄存器可修改输出 PWM 的占空比,占空比计算公式:
Ncyc = RB_PWM_CYCLE_SEL ? (2^n-1) : (2^n)
(其中 n=数据位宽),Ncyc 结果在 63~256 之间。
PWMx 输出有效电平的占空比 = R8_PWMx_DATA / Ncyc * 100%
PWMx 输出频率 Fpwmout = Fpwm / Ncyc = Fsys/R8_PWM_CLOCK_DIV / Ncyc
如果需要通过 PWM 产生直流信号,那么可以 PWMx 输出端使用 R/C 等电路滤波,建议用时间常数远大于 4 / Fpwmout 的两级 RC,或时间常数远大于 100 / Fpwmout 的一级 RC。
引脚映射

我要赚赏金
