1.简介 ???????简单介绍芯片内部的PWM模块,分享PWM的配置。本人是边学习边记录,内容仅作参考,有错误的地方请见谅。
2.PWM介绍 ???????本部分内容参考自TI官方手册。 ???????芯片内部有一个独立的PWM产生模块,相比于使用Timer的PWM模式,这个独立的PWM模块功能更强,带有死区控制,最多可以输出4组带死区的互补PWM,这样的功能还是很不错的,用来驱动H桥电路或者三相逆变桥还是很实用的。 ???????除了基本特性外,PWM还有一些其他特性,比如支持外部故障输入,触发ADC等。外部故障输入我的理解就是检测到外部故障信号生效时快速关断PWM,比如PWM驱动H桥,H桥输出短路时,电路检测到故障生成一个故障信号反馈到芯片内部,PWM检测到这个故障信号可以快速关断PWM信号防止H桥上的管子损坏。PWM模块也支持中断,支持的中断也有挺多种,上面说的检测到故障可以进中断,同时4个PWM模块又有自己独立的中断控制器,中断控制十分灵活。总之这个独立的PWM模块功能非常多,更详细的内容可以查看手册。
图1 PWM模块功能框图
3.PWM配置 ???????PWM配置实现M0PWM0输出1k频率25%占空比的信号。M0PWM2和M0PWM3输出一组互补的信号,20k频率50%占空比,上升沿和下降沿死区时间均为500ns。
void bsp_InitPwm(void)
{
uint32_t ui32PWMClockRate;
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinConfigure(GPIO_PF0_M0PWM0);
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0);
PWMClockSet(PWM0_BASE, PWM_SYSCLK_DIV_4);
ui32PWMClockRate = SystemCoreClock / 4;
PWMGenConfigure(PWM0_BASE, PWM_GEN_0,
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, (ui32PWMClockRate / 1000));
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0,
PWMGenPeriodGet(PWM0_BASE, PWM_GEN_0) / 4);
PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, true);
PWMGenEnable(PWM0_BASE, PWM_GEN_0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinConfigure(GPIO_PF2_M0PWM2);
GPIOPinConfigure(GPIO_PF3_M0PWM3);
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2);
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3);
PWMGenConfigure(PWM0_BASE, PWM_GEN_1,
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, (ui32PWMClockRate / 20000));
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2,
PWMGenPeriodGet(PWM0_BASE, PWM_GEN_1) / 2);
PWMDeadBandEnable(PWM0_BASE, PWM_GEN_1, 15, 15);
PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT | PWM_OUT_3_BIT, true);
PWMGenEnable(PWM0_BASE, PWM_GEN_1);
}
???????配置步骤,开启外设时钟->配置PWM输出引脚->配置PWM时钟->配置PWM频率->配置脉宽->设置输出状态true->开启对应模块的输出。对于带死区时间的互补输出,需要在输出前配置死区时间,上升沿和下降沿的死区时间都是独立可设置的。互补输出的PWM需要是同一个PWM模块下的一组信号,01、23、45、67这样四组信号可以配置成互补输出。
图2 1kHz 25%占空比PWM
图3 20kHz 500ns死区互补输出PWM
PWM配置keil工程下载
|