STM32G474 定时器通过抖动技术实现高分辨率PWM输出方法(提高16倍)

一.数字脉宽调制(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生成代码.

在这里插入图片描述

大功告成

三.编写代码

/* USER CODE BEGIN 2 */
//启动定时TIM1
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
  HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
  /* USER CODE END 2 */
  
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);//LED
	  HAL_Delay(500);
	  TIM1->CCR1=13600;//占空比50%
  }
  /* USER CODE END 3 */

调试一下,看看对不
在这里插入图片描述

四.输出结果

在这里插入图片描述
经过测量达到预期结果
输出100kHz互补PWM,占空比50%。

五.总结

有不对的地方请大家包涵,还望大家提醒,第一次写,有什么建议或问题欢迎评论下留言。

版权声明:本文为CSDN博主「藤一泓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45507036/article/details/122719882

生成海报
点赞 0

藤一泓

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32学习笔记2

GPIO GPIO:General Purpose Input & Output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚, STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以

stm32f407用oled实时显示日期和时间

这里我用的rtc时钟是非常好用的,先借鉴一下正点原子的理论知识。 STM32F4 的 RTC,是一个独立的 BCD 定时器/计数器。RTC 提供一个日历时钟(包含年月日时分秒信息)、两个