API GUIDE / PWM / LL

G32S10 PWM LL 接口

LL 层接口:说明:完整函数原型以 ll_pwm.h 为准。

1. LL 与基础辅助接口规范

说明:完整函数原型以 ll_pwm.h 为准。

1.1 LL层实现边界

  • 当前LL实现文件为 code/include/drivers/g32s10/pwm/ll_pwm.h,寄存器映射和寄存器位定义文件为 code/include/drivers/g32s10/pwm/pwm_regs.h。

  • 所有公开 ll_pwm_* 接口均为 static inline,首参数统一为 pwm_regs_t *pwmx 或 const pwm_regs_t *pwmx。

  • LL层不检查实例、group index、group mask、位域取值、运行状态或 busy 状态。

  • 多group参数使用 group_mask,bit0至bit7分别对应group0至group7。

  • 写接口按寄存器 mask 截断参数,不返回 error_code_t;读接口返回 uint32_t 或 bool。

  • read-modify-write 接口不串行化;共享寄存器的并发访问由调用方同步。

  • trigger 接口只写硬件,不重试、不等待,也不能通过读回 write-only trigger 判断完成。

1.2 LL层公开宏

当前SDK中LL层使用的PWM寄存器宏集中在 pwm_regs.h,前缀为 PWM_。

宏用途说明
PWM / PWM_IOBASEPWM实例定义当前PWM寄存器实例及其基地址。
PWM_CLKEN_EN_MASK_ALL / PWM_CNTEN_EN_MASK_ALL / PWM_EVTEN_EN_MASK_ALLPWM组位图限定位0至位7组成的时钟、波形计数器和ADC事件计数器使能掩码。
PWM_UPDATE_PARAM_PWM_MASK_ALL / PWM_UPDATE_PARAM_EVT_MASK_ALL参数更新位图分别限定波形比较参数和ADC事件参数的更新组。
PWM_BUSY_PARAM_PWM_MASK_ALL / PWM_BUSY_PARAM_EVT_*参数更新忙状态区分波形比较参数和ADC事件参数的忙状态字段。
PWM_CCFG_DIV_* / PWM_WMODE_*组公共配置字段根据PWM组索引计算时钟分频和波形模式字段。
PWM_INIT_LEVEL_* / PWM_IDLE_LEVEL_* / PWM_OSCR_*输出电平字段定义P/N初始电平、空闲电平和输出状态控制字段。
PWM_WTH_* / PWM_WPNTH_* / PWM_WPNDTH_*波形参数字段定义周期、P/N阈值和P/N死区字段。
PWM_TTH* / PWM_ADC_SEL_CH_* / PWM_ADC_DEBUG_*ADC触发字段定义ADC事件阈值、触发源组、调试输出和保持计数。
PWM_GLOBAL_MASK_ALLGlobal控制位图限定位0至位7组成的Global控制组。
PWM_FEN_* / PWM_FSEL_* / PWM_FVAL_* / PWM_FDEFAULT_* / PWM_FCDIV_*FAIL配置字段定义每组FAIL使能、来源、有效电平、默认输出和IO滤波。
PWM_FST_*FAIL状态字段定义每组IO FAIL和ADC FAIL状态,以及完整packed位图。
PWM_ADC_TRIG_ST_MASK_ALL / PWM_GLOBAL_INT_MASK_ALL / PWM_UPDATE_INT_MASK_ALL中断状态位图限定ADC触发、Global和参数更新中断状态中的有效组。
PWM_ADCST_MASK_MASK_ALL / PWM_GLOBAL_MASK_MASK_ALL / PWM_FST_MASK_MASK_ALL / PWM_UPDATE_MASK_MASK_ALL中断屏蔽位图限定各中断屏蔽寄存器中的有效位。
PWM_CNT_* / PWM_IRQ_CNT_*计数字段定义当前波形计数值和update中断周期计数字段。
PWM_CLK_UPDATE_* / PWM_SOFT_RESET_* / PWM_SOFT_RESET_STATUS_*触发和复位字段定义时钟更新触发、软复位触发值和软复位状态位。

1.3 基础辅助与寄存器访问

PWM LL当前只公开实例判断辅助接口,不提供按偏移读写任意寄存器的通用接口;寄存器访问应使用后续具名 ll_pwm_* 接口。

1.3.1 ll_pwm_is_instance

static inline bool ll_pwm_is_instance(const pwm_regs_t *pwmx);

功能说明: 判断传入的PWM寄存器基地址是否为当前SDK支持的PWM实例。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入待判断的 PWM 寄存器实例指针

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 可为任意地址,接口只做地址比较。

1.4 时钟、计数器和ADC事件

时钟和参数更新触发均为直接写操作;LL层不检查busy状态。

1.4.1 ll_pwm_set_clk_div

static inline void ll_pwm_set_clk_div(pwm_regs_t *pwmx,
                                      const uint8_t group_index,
                                      const uint8_t div);

功能说明: 设置时钟分频。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
divconst uint8_t输入时钟分频选择值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;div 范围为0至0xF。

1.4.2 ll_pwm_get_clk_div

static inline uint32_t ll_pwm_get_clk_div(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取时钟分频。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t时钟分频

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.3 ll_pwm_clk_enable

static inline void ll_pwm_clk_enable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量使能指定 PWM group 的 clock。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.4 ll_pwm_clk_disable

static inline void ll_pwm_clk_disable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量关闭指定 PWM group 的 clock。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.5 ll_pwm_write_clk_enable_bits

static inline void ll_pwm_write_clk_enable_bits(pwm_regs_t *pwmx,
                                                const uint32_t group_mask);

功能说明: 覆盖写完整 CLKEN bitmap。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • 未置位的 group 会被关闭。

1.4.6 ll_pwm_is_clk_enabled

static inline bool ll_pwm_is_clk_enabled(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 clock-enable 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.7 ll_pwm_clk_update

static inline void ll_pwm_clk_update(pwm_regs_t *pwmx);

功能说明: 写 1 触发 clock-enable update。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

  • CLK_UPDATE 为 write-only trigger,不能通过读回判断完成。

1.4.8 ll_pwm_is_clk_update_busy

static inline bool ll_pwm_is_clk_update_busy(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 clock update busy 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.9 ll_pwm_counter_enable

static inline void ll_pwm_counter_enable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量使能指定 PWM group 的 波形计数器。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.10 ll_pwm_counter_disable

static inline void ll_pwm_counter_disable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量关闭指定 PWM group 的 波形计数器。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.11 ll_pwm_write_counter_enable_bits

static inline void ll_pwm_write_counter_enable_bits(pwm_regs_t *pwmx,
                                                    const uint32_t group_mask);

功能说明: 覆盖写完整 CNTEN bitmap。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • 未置位的 group 会被关闭。

1.4.12 ll_pwm_is_counter_enabled

static inline bool ll_pwm_is_counter_enabled(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询计数器使能状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.13 ll_pwm_event_enable

static inline void ll_pwm_event_enable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量使能指定 PWM group 的 ADC事件计数器。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.14 ll_pwm_event_disable

static inline void ll_pwm_event_disable(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量关闭指定 PWM group 的 ADC事件计数器。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.4.15 ll_pwm_write_event_enable_bits

static inline void ll_pwm_write_event_enable_bits(pwm_regs_t *pwmx,
                                                  const uint32_t group_mask);

功能说明: 覆盖写完整 EVTEN bitmap。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • 未置位的 group 会被关闭。

1.4.16 ll_pwm_is_event_enabled

static inline bool ll_pwm_is_event_enabled(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 ADC事件计数器使能状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.17 ll_pwm_compare_param_update

static inline void ll_pwm_compare_param_update(pwm_regs_t *pwmx,
                                               const uint32_t group_mask);

功能说明: 触发指定 PWM group 的 波形比较参数更新。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • UPDATE_PARAM 为 write-only trigger,接口不检查 busy。

1.4.18 ll_pwm_event_param_update

static inline void ll_pwm_event_param_update(pwm_regs_t *pwmx,
                                             const uint32_t group_mask);

功能说明: 触发指定 PWM group 的 ADC ADC事件参数更新。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • UPDATE_PARAM 为 write-only trigger,接口不检查 busy。

1.4.19 ll_pwm_is_compare_update_busy

static inline bool ll_pwm_is_compare_update_busy(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 波形比较参数更新 busy 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.4.20 ll_pwm_is_event_update_busy

static inline bool ll_pwm_is_event_update_busy(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 ADC ADC事件参数更新 busy 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5 波形模式、电平和 OSCR

本节 setter 直接修改寄存器字段,不检查 group 运行状态,也不补充中心对齐死区。

1.5.1 ll_pwm_set_wave_mode

static inline void ll_pwm_set_wave_mode(pwm_regs_t *pwmx,
                                        const uint8_t group_index,
                                        const uint8_t mode);

功能说明: 设置波形模式。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
modeconst uint8_t输入波形模式

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;mode 范围为0至3。

1.5.2 ll_pwm_get_wave_mode

static inline uint32_t ll_pwm_get_wave_mode(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取波形模式。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t波形模式

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.3 ll_pwm_set_init_level

static inline void ll_pwm_set_init_level(pwm_regs_t *pwmx,
                                         const uint8_t group_index,
                                         const uint8_t level);

功能说明: 设置 P/N 初始电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入初始输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至3。

1.5.4 ll_pwm_get_init_level

static inline uint32_t ll_pwm_get_init_level(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取 P/N 初始电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP/N 初始电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.5 ll_pwm_set_idle_level

static inline void ll_pwm_set_idle_level(pwm_regs_t *pwmx,
                                         const uint8_t group_index,
                                         const uint8_t level);

功能说明: 设置 P/N 空闲电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入空闲输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至3。

1.5.6 ll_pwm_get_idle_level

static inline uint32_t ll_pwm_get_idle_level(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取 P/N 空闲电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP/N 空闲电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.7 ll_pwm_set_p_init_level

static inline void ll_pwm_set_p_init_level(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint8_t level);

功能说明: 设置 P 初始电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入初始输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.5.8 ll_pwm_get_p_init_level

static inline uint32_t ll_pwm_get_p_init_level(const pwm_regs_t *pwmx,
                                               const uint8_t group_index);

功能说明: 读取 P 初始电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP 初始电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.9 ll_pwm_set_n_init_level

static inline void ll_pwm_set_n_init_level(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint8_t level);

功能说明: 设置 N 初始电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入初始输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.5.10 ll_pwm_get_n_init_level

static inline uint32_t ll_pwm_get_n_init_level(const pwm_regs_t *pwmx,
                                               const uint8_t group_index);

功能说明: 读取 N 初始电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN 初始电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.11 ll_pwm_set_p_idle_level

static inline void ll_pwm_set_p_idle_level(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint8_t level);

功能说明: 设置 P 空闲电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入空闲输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.5.12 ll_pwm_get_p_idle_level

static inline uint32_t ll_pwm_get_p_idle_level(const pwm_regs_t *pwmx,
                                               const uint8_t group_index);

功能说明: 读取 P 空闲电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP 空闲电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.13 ll_pwm_set_n_idle_level

static inline void ll_pwm_set_n_idle_level(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint8_t level);

功能说明: 设置 N 空闲电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入空闲输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.5.14 ll_pwm_get_n_idle_level

static inline uint32_t ll_pwm_get_n_idle_level(const pwm_regs_t *pwmx,
                                               const uint8_t group_index);

功能说明: 读取 N 空闲电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN 空闲电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.15 ll_pwm_set_p_oscr

static inline void ll_pwm_set_p_oscr(pwm_regs_t *pwmx,
                                     const uint8_t group_index,
                                     const uint8_t oscr);

功能说明: 设置 P 输出状态控制。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
oscrconst uint8_t输入OSCR 原始字段编码

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;oscr 范围为0至3。

1.5.16 ll_pwm_get_p_oscr

static inline uint32_t ll_pwm_get_p_oscr(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取 P 输出状态控制。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP 输出状态控制

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.5.17 ll_pwm_set_n_oscr

static inline void ll_pwm_set_n_oscr(pwm_regs_t *pwmx,
                                     const uint8_t group_index,
                                     const uint8_t oscr);

功能说明: 设置 N 输出状态控制。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
oscrconst uint8_t输入OSCR 原始字段编码

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;oscr 范围为0至3。

1.5.18 ll_pwm_get_n_oscr

static inline uint32_t ll_pwm_get_n_oscr(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取 N 输出状态控制。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN 输出状态控制

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6 波形参数和当前计数

P/N 合并 setter 对 group 专属 32 bit 寄存器执行一次写入;LL 不自动触发波形比较参数更新。

1.6.1 ll_pwm_set_period_count

static inline void ll_pwm_set_period_count(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint16_t count);

功能说明: 设置周期计数值。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
countconst uint16_t输入周期计数值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;count 范围为0至0xFFFF。

1.6.2 ll_pwm_get_period_count

static inline uint32_t ll_pwm_get_period_count(const pwm_regs_t *pwmx,
                                               const uint8_t group_index);

功能说明: 读取周期计数值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t周期计数值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6.3 ll_pwm_set_p_threshold

static inline void ll_pwm_set_p_threshold(pwm_regs_t *pwmx,
                                          const uint8_t group_index,
                                          const uint16_t threshold);

功能说明: 设置 P阈值。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
thresholdconst uint16_t输入P阈值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;threshold 范围为0至0xFFFF。

1.6.4 ll_pwm_set_n_threshold

static inline void ll_pwm_set_n_threshold(pwm_regs_t *pwmx,
                                          const uint8_t group_index,
                                          const uint16_t threshold);

功能说明: 设置 N阈值。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
thresholdconst uint16_t输入N阈值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;threshold 范围为0至0xFFFF。

1.6.5 ll_pwm_set_pn_threshold

static inline void ll_pwm_set_pn_threshold(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint16_t p_threshold,
                                           const uint16_t n_threshold);

功能说明: 设置 P/N阈值。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
p_thresholdconst uint16_t输入P阈值
n_thresholdconst uint16_t输入N阈值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;p_threshold 范围为0至0xFFFF;n_threshold 范围为0至0xFFFF。

  • P/N阈值通过一次 32 bit 写入同时更新。

1.6.6 ll_pwm_get_p_threshold

static inline uint32_t ll_pwm_get_p_threshold(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 P阈值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP阈值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6.7 ll_pwm_get_n_threshold

static inline uint32_t ll_pwm_get_n_threshold(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 N阈值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN阈值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6.8 ll_pwm_set_p_dead_time

static inline void ll_pwm_set_p_dead_time(pwm_regs_t *pwmx,
                                          const uint8_t group_index,
                                          const uint16_t dead_time);

功能说明: 设置 P死区。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
dead_timeconst uint16_t输入P死区原始字段

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;dead_time 范围为0至0xFFFF。

1.6.9 ll_pwm_set_n_dead_time

static inline void ll_pwm_set_n_dead_time(pwm_regs_t *pwmx,
                                          const uint8_t group_index,
                                          const uint16_t dead_time);

功能说明: 设置 N死区。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
dead_timeconst uint16_t输入N死区原始字段

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;dead_time 范围为0至0xFFFF。

1.6.10 ll_pwm_set_pn_dead_time

static inline void ll_pwm_set_pn_dead_time(pwm_regs_t *pwmx,
                                           const uint8_t group_index,
                                           const uint16_t p_dead_time,
                                           const uint16_t n_dead_time);

功能说明: 设置 P/N死区。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
p_dead_timeconst uint16_t输入P死区原始字段
n_dead_timeconst uint16_t输入N死区原始字段

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;p_dead_time 范围为0至0xFFFF;n_dead_time 范围为0至0xFFFF。

  • P/N死区通过一次 32 bit 写入同时更新。

1.6.11 ll_pwm_get_p_dead_time

static inline uint32_t ll_pwm_get_p_dead_time(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 P死区。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP死区

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6.12 ll_pwm_get_n_dead_time

static inline uint32_t ll_pwm_get_n_dead_time(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 N死区。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN死区

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.6.13 ll_pwm_get_counter

static inline uint32_t ll_pwm_get_counter(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 读取当前PWM计数值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t当前17位PWM计数值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.7 ADC trigger、debug 和工作状态

本节包含 ADC 触发阈值、触发路径、调试输出和 PWM 组工作状态的寄存器级接口。

1.7.1 ll_pwm_set_event_threshold

static inline void ll_pwm_set_event_threshold(pwm_regs_t *pwmx,
                                              const uint8_t group_index,
                                              const uint16_t threshold0,
                                              const uint16_t threshold1);

功能说明: 通过一次 32 bit 写入设置一个 group 的两个 ADC 事件阈值。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
threshold0const uint16_t输入第一个 ADC trigger阈值
threshold1const uint16_t输入第二个 ADC trigger阈值

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;threshold0 范围为0至0xFFFF;threshold1 范围为0至0xFFFF。

  • threshold0/1 通过一次 32 bit 写入同时更新。

1.7.2 ll_pwm_get_event_threshold0

static inline uint32_t ll_pwm_get_event_threshold0(const pwm_regs_t *pwmx,
                                                   const uint8_t group_index);

功能说明: 读取第一个 ADC 事件阈值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t第一个 ADC 事件阈值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.7.3 ll_pwm_get_event_threshold1

static inline uint32_t ll_pwm_get_event_threshold1(const pwm_regs_t *pwmx,
                                                   const uint8_t group_index);

功能说明: 读取第二个 ADC 事件阈值。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_t第二个 ADC 事件阈值

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.7.4 ll_pwm_set_adc_trigger_group

static inline void ll_pwm_set_adc_trigger_group(pwm_regs_t *pwmx,
                                                const uint8_t adc_trigger,
                                                const uint8_t group_index);

功能说明: 设置一个 ADC trigger endpoint 对应的 PWM group index。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
adc_triggerconst uint8_t输入ADC0/ADC1 trigger0/trigger1 endpoint selector
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;adc_trigger 范围为0至3。

1.7.5 ll_pwm_get_adc_trigger_group

static inline uint32_t ll_pwm_get_adc_trigger_group(const pwm_regs_t *pwmx,
                                                    const uint8_t adc_trigger);

功能说明: 读取 ADC trigger endpoint 的 PWM group index。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
adc_triggerconst uint8_t输入ADC0/ADC1 trigger0/trigger1 endpoint selector

返回值表:

返回值说明
uint32_tADC trigger endpoint 的 PWM group index

补充说明:

  • 参数约束:pwmx 为有效PWM实例;adc_trigger 范围为0至3。

1.7.6 ll_pwm_set_adc_debug_io

static inline void ll_pwm_set_adc_debug_io(pwm_regs_t *pwmx,
                                           const uint8_t adc_trigger,
                                           const uint8_t debug_io);

功能说明: 设置一个 ADC trigger endpoint 的 debug IO 路由。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
adc_triggerconst uint8_t输入ADC0/ADC1 trigger0/trigger1 endpoint selector
debug_ioconst uint8_t输入ADC trigger debug IO selector

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;adc_trigger 范围为0至3;debug_io 范围为0至3。

1.7.7 ll_pwm_get_adc_debug_io

static inline uint32_t ll_pwm_get_adc_debug_io(const pwm_regs_t *pwmx,
                                               const uint8_t adc_trigger);

功能说明: 读取 ADC trigger debug IO 路由。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
adc_triggerconst uint8_t输入ADC0/ADC1 trigger0/trigger1 endpoint selector

返回值表:

返回值说明
uint32_tADC trigger debug IO 路由

补充说明:

  • 参数约束:pwmx 为有效PWM实例;adc_trigger 范围为0至3。

1.7.8 ll_pwm_set_adc_debug_hold_count

static inline void ll_pwm_set_adc_debug_hold_count(pwm_regs_t *pwmx,
                                                   const uint16_t hold_count);

功能说明: 设置共享 ADC debug hold count。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
hold_countconst uint16_t输入四条 ADC debug 路由共享的 hold count

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;hold_count 范围为0至0xFFFF。

  • 该字段由四条 ADC trigger debug 路由共享。

1.7.9 ll_pwm_get_adc_debug_hold_count

static inline uint32_t ll_pwm_get_adc_debug_hold_count(const pwm_regs_t *pwmx);

功能说明: 读取共享 ADC debug hold count。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t共享 ADC debug hold count

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.7.10 ll_pwm_is_counter_working

static inline bool ll_pwm_is_counter_working(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 波形计数器工作状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.8 Global 控制

完整 bitmap 写接口覆盖 PWM_GLOBAL 的全部有效 bit,增量接口只修改选中的 PWM 组。

1.8.1 ll_pwm_set_global

static inline void ll_pwm_set_global(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量设置 Global 控制 bit。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.8.2 ll_pwm_clear_global

static inline void ll_pwm_clear_global(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 增量清除 Global 控制 bit。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.8.3 ll_pwm_write_global_bits

static inline void ll_pwm_write_global_bits(pwm_regs_t *pwmx,
                                            const uint32_t group_mask);

功能说明: 覆盖写完整 Global 控制 bitmap。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

  • 未置位的 group 会清除 Global 控制。

1.8.4 ll_pwm_is_global_set

static inline bool ll_pwm_is_global_set(const pwm_regs_t *pwmx, const uint8_t group_index);

功能说明: 查询 Global 控制状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9 FAIL 配置

本节包含 FAIL 使能、来源、IO 有效电平、默认输出和 IO 滤波配置。

1.9.1 ll_pwm_set_fail_enable_mode

static inline void ll_pwm_set_fail_enable_mode(pwm_regs_t *pwmx,
                                               const uint8_t group_index,
                                               const uint8_t mode);

功能说明: 设置 Fail enable mode。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
modeconst uint8_t输入Fail enable mode

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;mode 范围为0至3。

1.9.2 ll_pwm_get_fail_enable_mode

static inline uint32_t ll_pwm_get_fail_enable_mode(const pwm_regs_t *pwmx,
                                                   const uint8_t group_index);

功能说明: 读取 Fail enable mode。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tFail enable mode

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9.3 ll_pwm_set_fail_source

static inline void ll_pwm_set_fail_source(pwm_regs_t *pwmx,
                                          const uint8_t group_index,
                                          const uint8_t source);

功能说明: 设置 Fail source。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
sourceconst uint8_t输入一个 IO source 与一个 ADC source 按位或后的 Fail source 编码

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;source 范围为0至3。

1.9.4 ll_pwm_get_fail_source

static inline uint32_t ll_pwm_get_fail_source(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 Fail source。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tFail source

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9.5 ll_pwm_set_fail_io_valid_level

static inline void ll_pwm_set_fail_io_valid_level(pwm_regs_t *pwmx,
                                                  const uint8_t group_index,
                                                  const uint8_t valid_level);

功能说明: 设置 IO Fail 有效电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
valid_levelconst uint8_t输入IO Fail 有效电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;valid_level 范围为0至1。

1.9.6 ll_pwm_get_fail_io_valid_level

static inline uint32_t ll_pwm_get_fail_io_valid_level(const pwm_regs_t *pwmx,
                                                      const uint8_t group_index);

功能说明: 读取 IO Fail 有效电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tIO Fail 有效电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9.7 ll_pwm_set_p_fail_default_output

static inline void ll_pwm_set_p_fail_default_output(pwm_regs_t *pwmx,
                                                    const uint8_t group_index,
                                                    const uint8_t level);

功能说明: 设置 P Fail 默认输出电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入Fail 有效时的输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.9.8 ll_pwm_set_n_fail_default_output

static inline void ll_pwm_set_n_fail_default_output(pwm_regs_t *pwmx,
                                                    const uint8_t group_index,
                                                    const uint8_t level);

功能说明: 设置 N Fail 默认输出电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入Fail 有效时的输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至1。

1.9.9 ll_pwm_set_fail_default_output

static inline void ll_pwm_set_fail_default_output(pwm_regs_t *pwmx,
                                                  const uint8_t group_index,
                                                  const uint8_t level);

功能说明: 设置 P/N Fail 默认输出电平。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
levelconst uint8_t输入Fail 有效时的输出电平

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;level 范围为0至3。

1.9.10 ll_pwm_get_p_fail_default_output

static inline uint32_t ll_pwm_get_p_fail_default_output(const pwm_regs_t *pwmx,
                                                        const uint8_t group_index);

功能说明: 读取 P Fail 默认输出电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tP Fail 默认输出电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9.11 ll_pwm_get_n_fail_default_output

static inline uint32_t ll_pwm_get_n_fail_default_output(const pwm_regs_t *pwmx,
                                                        const uint8_t group_index);

功能说明: 读取 N Fail 默认输出电平。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tN Fail 默认输出电平

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.9.12 ll_pwm_set_fail_io_filter_div

static inline void ll_pwm_set_fail_io_filter_div(pwm_regs_t *pwmx,
                                                 const uint8_t group_index,
                                                 const uint8_t div);

功能说明: 设置 IO Fail filter divider。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
divconst uint8_t输入IO Fail filter divider

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;div 范围为0至0xFF。

1.9.13 ll_pwm_get_fail_io_filter_div

static inline uint32_t ll_pwm_get_fail_io_filter_div(const pwm_regs_t *pwmx,
                                                     const uint8_t group_index);

功能说明: 读取 IO Fail filter divider。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tIO Fail filter divider

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.10 ADC trigger 中断

ADC trigger status 使用 W1C 语义;中断 mask 位取 1 表示 masked。

1.10.1 ll_pwm_clear_adc_trigger_interrupt_status

static inline void ll_pwm_clear_adc_trigger_interrupt_status(pwm_regs_t *pwmx,
                                                             const uint32_t group_mask);

功能说明: 按 W1C 语义清除 ADC trigger 中断状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.10.2 ll_pwm_get_adc_trigger_interrupt_status_bits

static inline uint32_t ll_pwm_get_adc_trigger_interrupt_status_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 ADC trigger 中断状态 bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 ADC trigger 中断状态 bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.10.3 ll_pwm_is_adc_trigger_interrupt_pending

static inline bool ll_pwm_is_adc_trigger_interrupt_pending(const pwm_regs_t *pwmx,
                                                           const uint8_t group_index);

功能说明: 查询 ADC trigger 中断 pending 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.10.4 ll_pwm_adc_trigger_interrupt_mask

static inline void ll_pwm_adc_trigger_interrupt_mask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 屏蔽指定 PWM group 的 ADC trigger 中断。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.10.5 ll_pwm_adc_trigger_interrupt_unmask

static inline void ll_pwm_adc_trigger_interrupt_unmask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 解除指定 PWM group 的 ADC trigger 中断屏蔽。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.10.6 ll_pwm_get_adc_trigger_interrupt_mask_bits

static inline uint32_t ll_pwm_get_adc_trigger_interrupt_mask_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 ADC trigger 中断 mask bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 ADC trigger 中断 mask bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.10.7 ll_pwm_is_adc_trigger_interrupt_masked

static inline bool ll_pwm_is_adc_trigger_interrupt_masked(const pwm_regs_t *pwmx,
                                                          const uint8_t group_index);

功能说明: 查询 ADC trigger 中断 mask 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.11 Global 中断

Global 中断状态、原始位图和 mask 通过独立接口访问。

1.11.1 ll_pwm_clear_global_interrupt_status

static inline void ll_pwm_clear_global_interrupt_status(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 按 W1C 语义清除 Global 中断状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.11.2 ll_pwm_get_global_interrupt_status_bits

static inline uint32_t ll_pwm_get_global_interrupt_status_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 Global 中断状态 bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 Global 中断状态 bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.11.3 ll_pwm_is_global_interrupt_pending

static inline bool ll_pwm_is_global_interrupt_pending(const pwm_regs_t *pwmx,
                                                      const uint8_t group_index);

功能说明: 查询 Global 中断 pending 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.11.4 ll_pwm_global_interrupt_mask

static inline void ll_pwm_global_interrupt_mask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 屏蔽指定 PWM group 的 Global 中断。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.11.5 ll_pwm_global_interrupt_unmask

static inline void ll_pwm_global_interrupt_unmask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 解除指定 PWM group 的 Global 中断屏蔽。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.11.6 ll_pwm_get_global_interrupt_mask_bits

static inline uint32_t ll_pwm_get_global_interrupt_mask_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 Global 中断 mask bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 Global 中断 mask bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.11.7 ll_pwm_is_global_interrupt_masked

static inline bool ll_pwm_is_global_interrupt_masked(const pwm_regs_t *pwmx,
                                                     const uint8_t group_index);

功能说明: 查询 Global 中断 mask 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.12 FAIL 状态与中断

FAIL status 和 mask 均按每个 PWM 组 2 bit 打包:低 bit 为 IO FAIL,高 bit 为 ADC FAIL。

1.12.1 ll_pwm_clear_fail_status_bits

static inline void ll_pwm_clear_fail_status_bits(pwm_regs_t *pwmx, const uint16_t status_bits);

功能说明: 按原始 packed bitmap 清除 Fail 状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
status_bitsconst uint16_t输入原始 16 bit Fail status bitmap;每个 group 占 2 bit

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;status_bits 为16位packed FAIL状态。

  • 每个 group 的低 bit 为 IO Fail,高 bit 为 ADC Fail。

1.12.2 ll_pwm_get_fail_status_bits

static inline uint32_t ll_pwm_get_fail_status_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 packed Fail 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 packed Fail 状态

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.12.3 ll_pwm_clear_fail_status

static inline void ll_pwm_clear_fail_status(pwm_regs_t *pwmx,
                                            const uint8_t group_index,
                                            const uint8_t fail_bits);

功能说明: 清除一个 PWM group 内选定的 Fail 状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
fail_bitsconst uint8_t输入一个 group 内的 2 bit Fail selector;bit0 为 IO Fail,bit1 为 ADC Fail

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;fail_bits 范围为0至3。

1.12.4 ll_pwm_get_fail_status

static inline uint32_t ll_pwm_get_fail_status(const pwm_regs_t *pwmx,
                                              const uint8_t group_index);

功能说明: 读取 Fail 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tFail 状态

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.12.5 ll_pwm_fail_interrupt_mask

static inline void ll_pwm_fail_interrupt_mask(pwm_regs_t *pwmx,
                                              const uint8_t group_index,
                                              const uint8_t fail_bits);

功能说明: 屏蔽一个 PWM group 内选定的 Fail 中断。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
fail_bitsconst uint8_t输入一个 group 内的 2 bit Fail selector;bit0 为 IO Fail,bit1 为 ADC Fail

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;fail_bits 范围为0至3。

1.12.6 ll_pwm_fail_interrupt_unmask

static inline void ll_pwm_fail_interrupt_unmask(pwm_regs_t *pwmx,
                                                const uint8_t group_index,
                                                const uint8_t fail_bits);

功能说明: 解除一个 PWM group 内选定的 Fail 中断屏蔽。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
fail_bitsconst uint8_t输入一个 group 内的 2 bit Fail selector;bit0 为 IO Fail,bit1 为 ADC Fail

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;fail_bits 范围为0至3。

1.12.7 ll_pwm_get_fail_interrupt_mask

static inline uint32_t ll_pwm_get_fail_interrupt_mask(const pwm_regs_t *pwmx,
                                                      const uint8_t group_index);

功能说明: 读取 Fail 中断 mask。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tFail 中断 mask

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.12.8 ll_pwm_get_fail_interrupt_mask_bits

static inline uint32_t ll_pwm_get_fail_interrupt_mask_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 packed Fail 中断 mask。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 packed Fail 中断 mask

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.13 参数更新中断

LL 的 IRQ_CNTn 接口直接读写原始 17 bit 字段;实际中断周期数为原始值加 1。

1.13.1 ll_pwm_clear_update_interrupt_status

static inline void ll_pwm_clear_update_interrupt_status(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 按 W1C 语义清除 update 中断状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.13.2 ll_pwm_get_update_interrupt_status_bits

static inline uint32_t ll_pwm_get_update_interrupt_status_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 update 中断状态 bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 update 中断状态 bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.13.3 ll_pwm_is_update_interrupt_pending

static inline bool ll_pwm_is_update_interrupt_pending(const pwm_regs_t *pwmx,
                                                      const uint8_t group_index);

功能说明: 查询 update 中断 pending 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.13.4 ll_pwm_update_interrupt_mask

static inline void ll_pwm_update_interrupt_mask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 屏蔽指定 PWM group 的 update 中断。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.13.5 ll_pwm_update_interrupt_unmask

static inline void ll_pwm_update_interrupt_unmask(pwm_regs_t *pwmx, const uint32_t group_mask);

功能说明: 解除指定 PWM group 的 update 中断屏蔽。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_maskconst uint32_t输入PWM group mask,bit0至bit7 对应 group0至group7

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_mask 中仅bit0至bit7生效,允许为0。

1.13.6 ll_pwm_get_update_interrupt_mask_bits

static inline uint32_t ll_pwm_get_update_interrupt_mask_bits(const pwm_regs_t *pwmx);

功能说明: 读取原始 update 中断 mask bitmap。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t原始 update 中断 mask bitmap

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.13.7 ll_pwm_is_update_interrupt_masked

static inline bool ll_pwm_is_update_interrupt_masked(const pwm_regs_t *pwmx,
                                                     const uint8_t group_index);

功能说明: 查询 update 中断 mask 状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
true条件成立
false条件不成立

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.13.8 ll_pwm_set_update_irq_count

static inline void ll_pwm_set_update_irq_count(pwm_regs_t *pwmx,
                                               const uint8_t group_index,
                                               const uint32_t count);

功能说明: 设置 update 中断周期数。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7
countconst uint32_t输入IRQ_CNTn 原始字段,实际中断间隔为该值加 1 个 PWM 周期

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7;count 范围为0至0x1FFFF。

  • 参数为硬件原始字段,范围 0至0x1FFFF;实际中断间隔为 count + 1 个 PWM 周期。

1.13.9 ll_pwm_get_update_irq_count

static inline uint32_t ll_pwm_get_update_irq_count(const pwm_regs_t *pwmx,
                                                   const uint8_t group_index);

功能说明: 读取 IRQ_CNTn 原始字段。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入有效 PWM 寄存器实例
group_indexconst uint8_t输入PWM group index,范围 0至7

返回值表:

返回值说明
uint32_tIRQ_CNTn 原始字段,范围 0至0x1FFFF;加 1 后为实际 PWM 周期数

补充说明:

  • 参数约束:pwmx 为有效PWM实例;group_index 范围为0至7。

1.14 软复位

软复位触发值为低电平编码,软复位状态通过独立 W1C 接口清除。

1.14.1 ll_pwm_soft_reset

static inline void ll_pwm_soft_reset(pwm_regs_t *pwmx);

功能说明: 触发 PWM 模块软复位。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

  • SOFT_RESET bit0 为低有效,硬件会自动恢复。

1.14.2 ll_pwm_get_soft_reset

static inline uint32_t ll_pwm_get_soft_reset(const pwm_regs_t *pwmx);

功能说明: 读取软复位控制位。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_tSOFT_RESET bit0;0 表示请求有效,1 表示硬件已释放请求

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.14.3 ll_pwm_get_soft_reset_status

static inline uint32_t ll_pwm_get_soft_reset_status(const pwm_regs_t *pwmx);

功能说明: 读取软复位状态。

参数表:

参数类型方向说明
pwmxconst pwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
uint32_t软复位状态;0 表示发生过未清除的软复位,1 表示无未清状态

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

1.14.4 ll_pwm_clear_soft_reset_status

static inline void ll_pwm_clear_soft_reset_status(pwm_regs_t *pwmx);

功能说明: 按 W1C 语义清除 PWM 软复位状态。

参数表:

参数类型方向说明
pwmxpwm_regs_t *输入PWM寄存器基地址

返回值表:

返回值说明
无接口不返回状态码

补充说明:

  • 参数约束:pwmx 为有效PWM实例。

2. 寄存器映射与位域约定

2.1 寄存器映射

当前SDK使用具名结构体声明,再通过typedef导出寄存器类型:

struct pwm_regs {
    __IO uint32_t ccfg0;              /**< 0x000 PWM group 0-7 clock divider configuration. */
    uint32_t reserved_0[1];           /**< 0x004 Reserved. */
    __IO uint32_t clken;              /**< 0x008 PWM_CLKEN clock enable register. */
    __O  uint32_t clk_update;         /**< 0x00C PWM_CLK_UPDATE clock enable update trigger. */
    __I  uint32_t clk_busy;           /**< 0x010 PWM_CLK_BUSY clock enable update busy status. */
    __IO uint32_t cnt_en;             /**< 0x014 PWM counter enable register. */
    __IO uint32_t evt_en;             /**< 0x018 ADC event counter enable register. */
    __O  uint32_t update_param;       /**< 0x01C PWM_UPDATE_PARAM parameter/event update trigger. */
    __I  uint32_t param_busy;         /**< 0x020 PWM_BUSY_PARAM update busy status. */
    __IO uint32_t wmode;              /**< 0x024 Waveform mode configuration. */
    __IO uint32_t init_level;         /**< 0x028 Initial output level configuration. */
    __IO uint32_t idle_level;         /**< 0x02C Idle output level configuration. */
    __IO uint32_t oscr;               /**< 0x030 Output software control register. */
    uint32_t reserved_1[3];           /**< 0x034-0x03C Reserved. */
    __IO uint32_t wth[8];             /**< 0x040-0x05C PWM wave threshold registers. */
    uint32_t reserved_2[8];           /**< 0x060-0x07C Reserved. */
    __IO uint32_t wpnth[8];           /**< 0x080-0x09C P/N threshold registers. */
    uint32_t reserved_3[8];           /**< 0x0A0-0x0BC Reserved. */
    __IO uint32_t wpndth[8];          /**< 0x0C0-0x0DC P/N dead-time threshold registers. */
    uint32_t reserved_4[8];           /**< 0x0E0-0x0FC Reserved. */
    __IO uint32_t tth[8];             /**< 0x100-0x11C ADC trigger threshold registers. */
    uint32_t reserved_5[8];           /**< 0x120-0x13C Reserved. */
    __IO uint32_t adc_sel_ch;         /**< 0x140 ADC trigger PWM group selection. */
    __IO uint32_t adc_debug;          /**< 0x144 ADC trigger debug IO route and hold count. */
    __I  uint32_t work_st;            /**< 0x148 PWM work status. */
    __IO uint32_t adc_trig_st;        /**< 0x14C ADC trigger interrupt status. */
    __IO uint32_t adc_st_mask;        /**< 0x150 ADC trigger interrupt mask. */
    __IO uint32_t global;             /**< 0x154 Global control register. */
    __IO uint32_t global_int_status;  /**< 0x158 Global interrupt status. */
    __IO uint32_t global_int_mask;    /**< 0x15C Global interrupt mask. */
    uint32_t reserved_6[40];          /**< 0x160-0x1FC Reserved. */
    __IO uint32_t fen;                /**< 0x200 Fail signal enable register. */
    __IO uint32_t fsel;               /**< 0x204 Fail source selection register. */
    __IO uint32_t fval;               /**< 0x208 Fail valid level register. */
    __IO uint32_t fdefault;           /**< 0x20C Fail default output register. */
    uint32_t reserved_7[12];          /**< 0x210-0x23C Reserved. */
    __IO uint32_t fcdiv[8];           /**< 0x240-0x25C Fail IO filter divider registers. */
    uint32_t reserved_8[16];          /**< 0x260-0x29C Reserved. */
    __IO uint32_t fst;                /**< 0x2A0 Fail status register. */
    __IO uint32_t fst_mask;           /**< 0x2A4 Fail interrupt mask register. */
    uint32_t reserved_9[22];          /**< 0x2A8-0x2FC Reserved. */
    __I  uint32_t cnt[8];             /**< 0x300-0x31C Current PWM counters. */
    uint32_t reserved_10[8];          /**< 0x320-0x33C Reserved. */
    __IO uint32_t update_int_status;  /**< 0x340 Update interrupt status. */
    __IO uint32_t update_int_mask;    /**< 0x344 Update interrupt mask. */
    uint32_t reserved_11[2];          /**< 0x348-0x34C Reserved. */
    __IO uint32_t irq_cnt[8];         /**< 0x350-0x36C Update interrupt period counters. */
    uint32_t reserved_12[36];         /**< 0x370-0x3FC Reserved. */
    __IO uint32_t soft_reset;         /**< 0x400 Software reset trigger register. */
    __IO uint32_t soft_reset_st;      /**< 0x404 Software reset status register. */
};

/** @brief PWM register block type. */
typedef struct pwm_regs pwm_regs_t;

说明:

  • wth[8]、wpnth[8]、wpndth[8]、tth[8]、fcdiv[8]、cnt[8] 和 irq_cnt[8] 的数组下标均为PWM组索引0至7。

  • reserved_* 成员用于保持寄存器偏移,不得作为可用寄存器访问。

2.2 寄存器和位域宏

宏类别代表宏使用说明
PWM实例PWM / PWM_IOBASE定义当前PWM寄存器实例及其基地址。
PWM组位图PWM_CLKEN_EN_MASK_ALL / PWM_CNTEN_EN_MASK_ALL / PWM_EVTEN_EN_MASK_ALL限定位0至位7组成的PWM组掩码。
参数更新位图PWM_UPDATE_PARAM_PWM_MASK_ALL / PWM_UPDATE_PARAM_EVT_MASK_ALL分别生成波形比较参数和ADC触发参数的更新掩码。
共享组字段PWM_CCFG_DIV_* / PWM_WMODE_* / PWM_INIT_LEVEL_* / PWM_IDLE_LEVEL_* / PWM_OSCR_*通过PWM组索引计算共享寄存器中的字段偏移和掩码。
波形参数字段PWM_WTH_* / PWM_WPNTH_* / PWM_WPNDTH_*定义周期、P/N阈值和P/N死区字段。
ADC触发字段PWM_TTH* / PWM_ADC_SEL_CH_* / PWM_ADC_DEBUG_*定义ADC触发阈值、触发源组和调试输出字段。
FAIL配置字段PWM_FEN_* / PWM_FSEL_* / PWM_FVAL_* / PWM_FDEFAULT_* / PWM_FCDIV_*定义每组FAIL使能、来源、有效电平、默认输出和IO滤波字段。
FAIL状态位图PWM_FST_MASK_ALL / PWM_FST_IO_MASK_ALL / PWM_FST_ADC_MASK_ALL限定完整FAIL状态位图,并区分IO和ADC状态位。
中断状态和屏蔽位图PWM_ADC_TRIG_ST_MASK_ALL / PWM_GLOBAL_INT_MASK_ALL / PWM_UPDATE_INT_MASK_ALL / PWM_ADCST_MASK_MASK_ALL / PWM_GLOBAL_MASK_MASK_ALL / PWM_FST_MASK_MASK_ALL / PWM_UPDATE_MASK_MASK_ALL限定ADC触发、Global、update和FAIL中断的有效状态或屏蔽位。
计数器字段PWM_CNT_* / PWM_IRQ_CNT_*定义17位当前计数和参数更新中断周期原始字段。
软复位字段PWM_SOFT_RESET_* / PWM_SOFT_RESET_STATUS_*定义低有效软复位触发值和软复位状态位。

2.3 寄存器访问约束

  • 结构体成员使用 __IO、__I 和 __O 保留volatile及读写属性;LL层通过 im_mmio_* 接口访问寄存器。

  • clk_update 和 update_param 是只写触发寄存器,写入后由硬件执行更新;dump不读取这两个寄存器。

  • adc_trig_st、global_int_status、fst、update_int_status 和 soft_reset_st 的状态清除使用W1C语义,清除接口直接写入待清除掩码,不执行读改写。

  • 完整位图write接口覆盖寄存器的全部有效位;enable、disable、mask和unmask接口只修改选中的位。屏蔽寄存器统一使用1表示已屏蔽,0表示未屏蔽。

  • 当前寄存器dump只读取普通配置和状态寄存器,不读取只写触发寄存器,也不执行任何W1C清除操作。