这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【CH582M】CH582M的PWM控制器

共1条 1/1 1 跳转至

【CH582M】CH582M的PWM控制器

专家
2026-09-11 08:52:49     打赏

CH582M的单片机,除了能使用定时器产生PWM外,它本身还配置了专用的PWM控制器。PWM控制器有8个,PWM4~PWM11。这些PWM控制器有以下几个特点:

1、数据宽度可选5~8位,默认为最大8位。

2、占空比可通过设置指定寄存器进行调整

3、PWM4/PWM5、PWM6/PWM7、PWM8/PWM9、PWM10/PWM11可设置为互补模式

4、有8种可选的周期

与之相关的寄存器:

image.png

各寄存器的说明如下:

一、PWMx 输出使能寄存器(R8_PWM_OUT_EN)

控制是否允许输出

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

配置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。

引脚映射

image.png





关键词: CH582M     PWM    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]