初次使用hi3516的pwm,参考手册中关于pwm外设配置,始终不能控制pwm的变化,切换为普通io则是正常,最后终于找到一个原因,外设控制寄存器没有配置。
这里mark一下,详细的配置如下:
0、外设控制器
himm 0x20120014 0x66 //bit16~19,分别指定pwm0~3,0为正产,1为pmc的pwm
1、管脚复用设置
himm 0x200f014c 0 //pwm0
himm 0x200f0150 0 //pwm1
himm 0x200f0154 0 //pwm2
2、管脚驱动能力
先读,bit7:0=慢沿,1=快沿
bit5-4:0=4ma,1=3ma,2=2ma,3=1ma
himm 0x200f094c 0x80
himm 0x200f0950 0x80
himm 0x200f0954 0x80
3、选择时钟源,3m
himm 0x20030038 0x2
himm 0x20030104 0x0
4、pwm0
himm 0x20130000 1000 周期
himm 0x20130004 500 高电平拍数
himm 0x2013000C 5 控制
5、pwm1
himm 0x20130020 1000 周期
himm 0x20130024 500 高电平拍数
himm 0x2013002C 5 控制
5、pwm2
himm 0x20130040 1000 周期
himm 0x20130044 500 高电平拍数
himm 0x2013004C 5 控制
6、修改参数
同步骤4/5/6,由第三条命令触发生效。