STM32F103RC 高级定时器踩坑指南

1.高级定时器配置互补pwm

2.死区验证

3.实际使用踩坑

项目是做一个mppt的太阳能最大功率跟踪系统,方案比较烂大街,一个buck_boost电路去把PV端的输出调到BAT想要的。模式分为两种

(1)直流DC充电模式

(2)太阳能输入模式

直流就恒流充电就行,考虑一下输入端直流的输出能力,做一个恒流,调也比较顺利

老大难的就是太阳能输出,这个下次有空说。

开始没整明白,直接开始使用cubeide配置。

1.高级定时器配置互补pwm

这个配置了两路一路给buck,一路给boost,为了方便就都放在了定时器8上做了两路互补输出。channel记得选择PWM Generation CH2 CH2N,这样才有互补输出。

然后,跳过电机驱动的都知道要配置一下死区

我这边直接把调节拉到最高了,0,720,这样是100k的频率,满足硬件的要求。

2.死区验证

死区就是为了防止上下管同高导通烧管,这个配置好不使用错一般不会炸。开定时器互补输出就下面两句就可以了确实方便。

    HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_2);
	HAL_TIMEx_PWMN_Start(&htim8,TIM_CHANNEL_2);

关输出,我是先关闭使能,然后关闭系统的两路互补pwm,这时候为了保险起见,我重新把定时器的引脚重新初始化成普通IO进行保护。

    HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_3);
	HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_2);
	HAL_TIMEx_PWMN_Stop(&htim8,TIM_CHANNEL_3);
	HAL_TIMEx_PWMN_Stop(&htim8,TIM_CHANNEL_2);

3.实际使用踩坑

实际使用出现一个比较蠢的需求,就是先开下管再开上管,一开完犊子了,炸了。之前测都很正常这是为啥。

用示波器打一下波形发现是如果只开下管,那定时器的占空比就是下管的,不是定时器占空比的互补。略蠢,烧了200块的料血泪教训。

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

1.高级定时器配置互补pwm

2.死区验证

3.实际使用踩坑

项目是做一个mppt的太阳能最大功率跟踪系统,方案比较烂大街,一个buck_boost电路去把PV端的输出调到BAT想要的。模式分为两种

(1)直流DC充电模式

(2)太阳能输入模式

直流就恒流充电就行,考虑一下输入端直流的输出能力,做一个恒流,调也比较顺利

老大难的就是太阳能输出,这个下次有空说。

开始没整明白,直接开始使用cubeide配置。

1.高级定时器配置互补pwm

这个配置了两路一路给buck,一路给boost,为了方便就都放在了定时器8上做了两路互补输出。channel记得选择PWM Generation CH2 CH2N,这样才有互补输出。

然后,跳过电机驱动的都知道要配置一下死区

我这边直接把调节拉到最高了,0,720,这样是100k的频率,满足硬件的要求。

2.死区验证

死区就是为了防止上下管同高导通烧管,这个配置好不使用错一般不会炸。开定时器互补输出就下面两句就可以了确实方便。

    HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_2);
	HAL_TIMEx_PWMN_Start(&htim8,TIM_CHANNEL_2);

关输出,我是先关闭使能,然后关闭系统的两路互补pwm,这时候为了保险起见,我重新把定时器的引脚重新初始化成普通IO进行保护。

    HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_3);
	HAL_TIM_PWM_Stop(&htim8,TIM_CHANNEL_2);
	HAL_TIMEx_PWMN_Stop(&htim8,TIM_CHANNEL_3);
	HAL_TIMEx_PWMN_Stop(&htim8,TIM_CHANNEL_2);

3.实际使用踩坑

实际使用出现一个比较蠢的需求,就是先开下管再开上管,一开完犊子了,炸了。之前测都很正常这是为啥。

用示波器打一下波形发现是如果只开下管,那定时器的占空比就是下管的,不是定时器占空比的互补。略蠢,烧了200块的料血泪教训。

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

生成海报
点赞 0

电子痴汉

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

暂无评论

发表评论

相关推荐

f4串口系列1案例代码

mv用到串口2 从mv代码中找到。 32接收mv发来的数据用0x0a结束 mv.c #include "openmv_uart.h"#define END_CODE 0x0a u8 openmv_rx_data[Rx_Length]; u8

STM32L152 的参考电压Vrefint输出

最近在做一个项目需要输出单片机内部参考电压.使用stm32cube生成的代码无法正常在引脚上输出内部参考电压. 根据数据手册的显示: 根据手册的意思首先使能输出,然后使能管脚状态.   /** Enables the output of

HC-42蓝牙模块制作无线串口

硬件准备:HC-42蓝牙模块x2、USB转TTL模块x1、杜邦线若干 步骤: 1、将蓝牙模块1与USB转TTL模块连接:VCC-VCC、GND-GND、TX-RXD、RX-TXD 2、将蓝牙模块1的