7.8.2. 参数配置¶
7.8.2.1. 驱动配置¶
- 在 Luban-Lite 根目录下执行 - scons --menuconfig,进入menuconfig的功能配置界面。
- 选择需要的pwm/epwm通道。以下以打开 PWM3 作为示例: 
Board options  --->
    [ ] Using PWM0
    [ ] Using PWM1
    [ ] Using PWM2
    [*] Using PWM3
    [ ] Using EPWM0
    [ ] Using EPWM1
    [ ] Using EPWM2
    [ ] Using EPWM3
    [ ] Using EPWM4
    [ ] Using EPWM5
3. 在 menuconfig 界面中打开 RT-Thread 的 PWM 设备驱动框架。 使用 RT-Thread 内核的时,PWM/EPWM 驱动需要依赖RT-Thread的 PWM 设备驱动框架。
小技巧
为了简化使用,步骤2的``Using PWMx/EPWMx`` 会自动打开 RT-Thread 的 PWM设备驱动框架。
Rt-Thread options  --->
    RT-Thread Components  --->
        Device Drivers  --->
            [*]  Using PWM device drivers
7.8.2.2. PWM 自定义参数¶
PWM 驱动在drv_pwm.c中提供了一个接口  aic_pwm_default_action() 来配置PWM各通道的行为参数(EPWM 驱动的接口是drv_epwm.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 节点设置背光亮度时,得到的占空比结果是正向、还是反向的。
7.8.2.3. 时钟配置¶
PWM模块涉及时钟的衍生关系:
 
图 7.57 PWM 模块的时钟衍生关系图¶
EPWM模块涉及时钟的衍生关系:
 
图 7.58 EPWM 模块的时钟衍生关系图¶
其中:
- PLL_INT1 时钟是 D21x 和 D13x 中的设计,D12x 中 PWM Clk 的父时钟是固定的 24MHz。 
- PWM/EPWM 的各类时钟在驱动中已经配置好,而 PWM/EPWM Frequency 由使用时的 cycle 参数决定。 
注解
容易混淆的sysclk:
- PWM驱动中,按照惯例将父时钟称作 - sysclk,即上图的PLL INT1;
- PWM硬件spec中,将上图中的PWM Clk称作 - sysclk。