前段时间调1个案子,客户需求要5路PWM独立输出,还有红外遥控器接受按键。
映射可以映射4路大体意思就是通过 OUT和DIE 配置00 01 10 11 配置4路,
设置输出,设置上下拉。
我选用的是用AC6921A做的,其实AC6951C也可以做。
大体思路就是:映射4路PWM+1路硬件真实的PWM3 也就是PB4
真实的PWM0-PWM3:PA1.PA4.PB3.PB4
映射我用的是3路电机的PWM,用1路系统timer的PWM
看箭头处,他是可以电机的PWM也可以映射的,并不是电机PWM是固定的,当然如果该脚位是电机的IO,也就不用映射也可以。【具体哪些口是电机的PWMHL可以看下AC692X用户手册】
不多说直接上代码:
先初始化电机的PWM:
mcpwm_module_on(MCPWM_INCREASE_REDUCE_MODE , SYS_Hz , MCPWM_CLK_DIV8 ,10000L,255);
SFR(JL_IOMAP->CON3, 20, 4, 8);
JL_PORTB->DIR &= ~BIT(3);
JL_PORTB->PU |=BIT(3);
JL_PORTB->PD |=BIT(3);
JL_PORTB->OUT &= ~BIT(3)