PWM使用指南
硬件支持
S100 有1个PWM,每个PWM IP 有12个通道。
- 每个通道都是独立的,支持irq requset和dma requset
- 可以支持硬件触发脉冲输出
- 每个通道有自己独立的时钟分频寄存器
- 每个IP所有通道共享一个中断
- 当目标边沿或者脉冲类型到来的时候,会触发中断或者dma req
- 支持DMA更新period和duty
- 支 持周期边沿对齐方式设置,可以设置为边沿对齐或者中心对齐
- 支持pwm同步输出模式,6通道同步或者12通道同步。
软件驱动
- 支持CPU更新PWM通道的周期和占空比
- 支持DMA更新PWM通道的周期和占空比
- 支持设置开启和关闭PWM中断,设置PWM通道的中断函数,支持中断类型:上升沿,下降沿,双边沿
- 读取PWM输出信号的内部状态并将其返回
- 支持多通道同步输出
代码路径
PWM 模块相关文件说明
- Config/McalCdd/gen_s100_sip_B_mcu1/Pwm/src/Pwm_PBCfg.c: 正常模式下 PWM 的预编译配置源文件,包含通道和实例的具体配置参数(如周期、占空比、极性等)。
- Config/McalCdd/gen_s100_sip_B_mcu1/Pwm/inc: 预编译配置头文件,定义宏开关。
- McalCdd/Pwm/src/Pwm_Lld.c: 底层驱动实现文件,直接操作硬件寄存器,提供底层接口。
- McalCdd/Pwm/src/Pwm.c: 上层驱动逻辑实现,封装API 接口,并处理错误检测、状态管理等控制逻辑。
- McalCdd/Pwm/inc/Pwm_Lld.h: 底层驱动头文件,声明底层函数原型、结构体和枚举类型。
- McalCdd/Pwm/inc/Pwm_Types.h: 定义通用数据类型、结构体和回调函数指针类型,供上下层共享使用。
- McalCdd/Pwm/inc/Pwm.h: 主头文件,声明高层 API和核心结构体。
- samples/Pwm/Pwm_sample/Pwm_test.c: Pwm测试sample。