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_IOBASE | PWM实例 | 定义当前PWM寄存器实例及其基地址。 |
PWM_CLKEN_EN_MASK_ALL / PWM_CNTEN_EN_MASK_ALL / PWM_EVTEN_EN_MASK_ALL | PWM组位图 | 限定位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_ALL | Global控制位图 | 限定位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实例。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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);
功能说明: 设置时钟分频。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
div | const 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);
功能说明: 读取时钟分频。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 的 波形计数器。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 的 波形计数器。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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);
功能说明: 查询计数器使能状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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事件计数器。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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事件计数器。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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事件计数器使能状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 的 波形比较参数更新。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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事件参数更新。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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);
功能说明: 设置波形模式。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
mode | const 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);
功能说明: 读取波形模式。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P/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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P/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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P 初始电平 |
补充说明:
参数约束:
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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 初始电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N 初始电平 |
补充说明:
参数约束:
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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P 空闲电平 |
补充说明:
参数约束:
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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 空闲电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N 空闲电平 |
补充说明:
参数约束:
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 输出状态控制。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
oscr | const 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 输出状态控制。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P 输出状态控制 |
补充说明:
参数约束:
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 输出状态控制。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
oscr | const 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 输出状态控制。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N 输出状态控制 |
补充说明:
参数约束:
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);
功能说明: 设置周期计数值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
count | const 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);
功能说明: 读取周期计数值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
threshold | const 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阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
threshold | const 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阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
p_threshold | const uint16_t | 输入 | P阈值 |
n_threshold | const 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阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P阈值 |
补充说明:
参数约束:
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阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N阈值 |
补充说明:
参数约束:
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死区。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
dead_time | const 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死区。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
dead_time | const 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死区。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
p_dead_time | const uint16_t | 输入 | P死区原始字段 |
n_dead_time | const 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死区。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P死区 |
补充说明:
参数约束:
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死区。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N死区 |
补充说明:
参数约束:
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计数值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 事件阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
threshold0 | const uint16_t | 输入 | 第一个 ADC trigger阈值 |
threshold1 | const 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 事件阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 事件阈值。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
adc_trigger | const uint8_t | 输入 | ADC0/ADC1 trigger0/trigger1 endpoint selector |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
adc_trigger | const uint8_t | 输入 | ADC0/ADC1 trigger0/trigger1 endpoint selector |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | ADC 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 路由。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
adc_trigger | const uint8_t | 输入 | ADC0/ADC1 trigger0/trigger1 endpoint selector |
debug_io | const 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 路由。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
adc_trigger | const uint8_t | 输入 | ADC0/ADC1 trigger0/trigger1 endpoint selector |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | ADC 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
hold_count | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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);
功能说明: 查询 波形计数器工作状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 控制状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
mode | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | Fail 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
source | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | Fail 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 有效电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
valid_level | const 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 有效电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | IO 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 默认输出电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 默认输出电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 默认输出电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
level | const 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 默认输出电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | P 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 默认输出电平。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | N 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
div | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | IO 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 中断状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 中断。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 中断屏蔽。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 中断状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 中断。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 中断屏蔽。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
status_bits | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
fail_bits | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | Fail 状态 |
补充说明:
参数约束:
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 中断。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
fail_bits | const 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 中断屏蔽。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
fail_bits | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | Fail 中断 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 中断状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 中断。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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 中断屏蔽。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_mask | const 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。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const 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 中断周期数。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
count | const 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 原始字段。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | 有效 PWM 寄存器实例 |
group_index | const uint8_t | 输入 | PWM group index,范围 0至7 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | IRQ_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 模块软复位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_regs_t * | 输入 | PWM寄存器基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
补充说明:
参数约束:
pwmx为有效PWM实例。SOFT_RESETbit0 为低有效,硬件会自动恢复。
1.14.2 ll_pwm_get_soft_reset
static inline uint32_t ll_pwm_get_soft_reset(const pwm_regs_t *pwmx);
功能说明: 读取软复位控制位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const pwm_regs_t * | 输入 | PWM寄存器基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t | SOFT_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);
功能说明: 读取软复位状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | const 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 软复位状态。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pwmx | pwm_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清除操作。