参数配置
驱动配置
-
在 Luban-Lite 根目录下执行 scons --menuconfig,进入 menuconfig 的功能配置界面。
-
选择需要的 pwm/epwm 通道。以下以打开 PWM3 作为示例:
Board options ---> [ ] Using PWM0 [ ] Using PWM1 [ ] Using PWM2 [*] Using PWM3 Using EPWM ---> [ ] Using EPWM0 [ ] Using EPWM1 [ ] Using EPWM2 [ ] Using EPWM3 [ ] Using EPWM4 [ ] Using EPWM5
提示:为了简化使用,打开 Using PWMx/EPWMx 会自动打开 RT-Thread 的 PWM 设备驱动框架。
-
在 menuconfig 界面中打开 RT-Thread 的 PWM 设备驱动框架。 使用 RT-Thread 内核的时,PWM/EPWM 驱动需要依赖 RT-Thread 的 PWM 设备驱动框架。
PWM 自定义参数
PWM 驱动在 drv_pwm.c 中提供了一个接口
aic_pwm_default_action()
来配置 PWM 各通道的行为参数(EPWM 驱动的接口是
drv_pwm.c 中的 aic_epwm_default_action()
)。
如果因为板级硬件设计的差异,和实际应用场景不同,可以对这些参数进行调整。参数的定义如下表:
参数名称 |
类型 |
取值范围 |
功能说明 |
---|---|---|---|
mode |
enum |
up/down/up-down-count |
配置增减模式 |
default-level |
正整数 |
[0, 1] |
默认/初始电平 |
action0 |
数据结构 |
配置 CAD、CAU 等行为 |
多个关键时点的触发行为 |
action1 |
数据结构 |
配置 CAD、CAU 等行为 |
多个关键时点的触发行为 |
表中 action0 和 action1 会涉及 4 种行为类型,定义如下:
Action 类型 |
行为描述 |
---|---|
PWM_ACT_NONE/EPWM_ACT_NONE |
不做任何变化,保持之前的输出电平 |
PWM_ACT_LOW/EPWM_ACT_LOW |
跳变为 0 电平 |
PWM_ACT_HIGH/EPWM_ACT_HIGH |
跳变为 1 电平 |
PWM_ACT_INVERSE/EPWM_ACT_INVERSE |
跳变为反向的电平,比如从 0 跳变为 1 |
以下是一些典型的参数组合,可参考:
Mode |
CBD |
CBU |
CAD |
CAU |
PRD |
ZRO |
Def level |
本 SoC 测试结果 |
---|---|---|---|---|---|---|---|---|
Up count |
- |
- |
- |
high |
low |
- |
1 |
负占空比 |
- |
- |
- |
low |
high |
- |
0 |
正占空比(默认) |
|
- |
- |
- |
high |
- |
high |
1 |
负占空比 |
|
- |
- |
- |
low |
- |
low |
0 |
正占空比 |
|
Down count |
- |
- |
high |
- |
low |
- |
0 |
正占空比 |
- |
- |
low |
- |
high |
- |
1 |
负占空比 |
|
- |
- |
high |
- |
- |
low |
0 |
正占空比 |
|
- |
- |
low |
- |
- |
high |
1 |
负占空比 |
|
Up-Down count |
- |
- |
high |
low |
low |
high |
0 |
正占空比 |
- |
- |
low |
high |
high |
low |
1 |
负占空比 |
其中,“正占空比”和“负占空比” 的意思是指当通过 Backlight 节点设置背光亮度时,得到的占空比结果是正向、还是反向的。
时钟配置
PWM 模块涉及时钟的衍生关系:

EWM 模块涉及时钟的衍生关系:

-
PWM 驱动中,按照惯例将父时钟称作 sysclk,即上图的 PLL INT1。
-
PWM 硬件 spec 中,将上图中的 PWM Clk 称作 sysclk。