[MCU] 【先楫HPM5361】PWM模块的使用

hitwpc   2024-1-16 23:41 楼主

一、PWM模块介绍

下面是手册中对HPM5361的PWM模块的介绍:
● 28 (24 +4) 位分辨率计数器,支持向上计数模式
● 支持计数器同步
● 多达24 个比较器,支持用作输出比较,或者输入捕获
● 多达24 个通道,其中通道0∼7 可用于PWM 输出
支持8 路独立或者4 对互补PWM 输出
互补PWM 支持死区插入,支持独立配置双侧死区宽度
支持把PWM 输出强制设置为指定状态
支持故障保护输入,在出错时(如故障保护输入时),单独配置每个PWM 输出通道的状态
● 支持为每个输出通道灵活地分配数目不等的比较器,灵活控制输出信号,生成例如边沿对齐PWM、左右
不对称的中央对齐PWM 以及更复杂的输出信号
● 支持生成各类DMA 请求和中断请求
● 部分寄存器配有影子寄存器,支持灵活的寄存器新值更新/生效时机
234049l3eii7rr67el2i27.png
根据介绍,可以看到这颗芯片的PWM模块功能还是很强的,有几个实用的功能:
  1. 可调分辨率的计数器,24-28位计数器;
  2. 每个PWM模块有8个通道的PWM输出,有24个比较器,每个通道可以设置多个比较器,多个比较器的异或值作为最终的PWM输出电平,因此可以设置出复杂的PWM信号;
  3. 两侧可独立编程的死区补偿;
  4. PWM可强制设置制定状态(六步换向);
  5. 故障保护功能;
234049yg2gwi7876c7gc8g.png

2 例程API介绍测试

2.1 例程介绍

参考例程目录如下:
SDK\sdk_env_v1.3.0\hpm_sdk\samples\drivers\pwm\pwm_output\src
例程中测试了生成了各种PWM

2.2 API介绍

强制输出模式
PWM输出设置为立即更新,将PWM的两个通道设置为强制输出模式;
234049m7a2yj1nznfynvg9.png
下面的函数,可以将PWM的两个通道置高或者置低,pwm_output_1为高,pwm_output_0为低。
234049ws1wetw77vs1me8n.png
软件开启/关闭强制输出模式,GCR的SWFRC位置1使能强制输出,置0关闭强制输出
234049y9kkzp1m44k6t4pe.png
234049y33vkq3ffklrc444.png
两个通道依次输出一个高电平时间为1S的脉冲,测试图如下:
234049sdja2wdkggudyxad.png
边沿对齐模式
234049o824722kjk2g2448.png
234049f4t39vinuktwn0nu.png
中心对齐模式1
可以实现单个PWM的中心对齐另外一个PWM的起始
234049eoblml190kk7gm64.png
234049i1qsrk5pqhutjp43.png
中心对齐模式2
两个互补PWM,中心对齐。下面函数可以实现互补PWM的设置
234049lrrc2rhzz8htzrh1.png
234049wc757e4cd32c5w8x.png
本帖最后由 hitwpc 于 2024-1-16 23:42 编辑

回复评论 (1)

大佬源码
点赞  2024-1-21 17:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复