一.数字脉宽调制(DPWM)介绍
如今,电力开关电子学表现出显著的性能提高。电力开关电子器件的开关频率不断提高,以满足现代电力转换系统的要求。在控制技术方面,这变得越来越具有挑战性。对于数控脉宽调制发生器,在开关频率和占空比微调之间有一个权衡。同时实现高分辨率和高开关频率意味着控制电路工作在高频率。
二.基于NUCLEO-G474RE开发板新建工程
2.1 打开 STM32CubeMX 软件,新建工程.
我手里有开发板所以选择基于开发板。
2.2 选择开发板(芯片)
我这里选择的是我的开发板NUCLEO-G474RE,少去一些步骤。
2.3 配置TIM1
配置TIM1产生100kHz的互补PWM. F= Tclk/[(psc+1) * (cnt+1)] = 170MHz/[1*1700] = 100kHz。 普通情况下一个周期记1700个数 在抖动模式下,这里将记1700x16=27200;
2.4配置一下时钟树.
2.5生成代码.
大功告成
三.编写代码
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
while (1)
{
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
HAL_Delay(500);
TIM1->CCR1=13600;
}
调试一下,看看对不
三.输出结果
经过测量达到预期结果 输出100kHz互补PWM,占空比50%。
四.总结
有不对的地方请大家包涵,还望大家提醒,第一次写,有什么建议或问题欢迎评论下留言。
|