基于STM32F722ZET6的BUCK降压电路。本来计划是想用这学期学习的自动控制原理和Simulink搭建传递函数,通过自适应功能调出Kp和Ki的。但是期末的课程设计实在是太多了,最后只完成了开环的BUCK电路。留下的这个小尾巴打算暑假去完成,完成后会继续更新。小弟才识疏浅,若本帖出现错误请多多指教!

若还未熟悉STM32F722_Nucleo-144这块开发板的小伙伴,可以看我上一篇帖子https://mbb.eet-china.com/forum/topic/70999_1_1.html
本系统框图
图10 系统框图.png

1.核心硬件部分
1.1 IR2110

IR2110是英飞凌公司生产的一款开关管驱动芯片,可同时驱动两路开关管。具体资料如图1所示。图1来源于附件中的“IR2110.pdf”。本系统是根据附件的“HV_Floating_MOS_Gate_Drivers.pdf”一副拓扑图画原理图。
图1 IR2110截图.png
图9 IR2110拓扑图.png
图1 上图为IR2110部分截图 下图为本系统采用的拓扑图

1.2 6N137

本系统采用仙童公司推出的6N137光耦隔离芯片。光耦隔离的作用是把强电和弱电隔离开,起到保护的作用。在这里,小弟使用光耦隔离把主控芯片和MOS管的栅极隔离开,避免其栅极电压(15V)烧毁单片机。如图二所示,6N137芯片部分资料。详细可查看“6N137.pdf”
图2 6N137截图.png
图2 6N137部分截图

1.3 IRF540

如图3所示,本系统是DC24V输入通过BUCK降压DC12V输出。所以采用这款MOS—IRF540N详细请查看附件“IRF540npbf.pdf”
图3 IRF540截图.png
图3 IRF540部分截图

2 主控部分

本系统采用这次领取到的STM32F722_Nucleo开发板,主控芯片为STM32F722ZET6,输出频率为10KHz的单路PWM波,控制IRF540导通和关断。关键代码如下:
   /*Set TIMx instance */
TimHandle.Instance = TIMx;
         //配置输出PWM频率为10KHz,占空比为0.5
         //装载计数值为5400PRD=(HCLK/10KHz)-1=5.4MHz/10KHz-1
TimHandle.Init.Period            =5400-1;//装载计数值
  TimHandle.Init.Prescaler         = 0;     //系统时钟频率216M2分频后TIM3CLK108MHz,令此处Prescaler=0不分频
TimHandle.Init.ClockDivision     =0;     
TimHandle.Init.CounterMode       =TIM_COUNTERMODE_UP;//向上计数模式
TimHandle.Init.RepetitionCounter = 0;
  TimHandle.Init.AutoReloadPreload =TIM_AUTORELOAD_PRELOAD_DISABLE;

3.过程实现
3.1 绘制BUCK电路原理图。(部分期间参数未标出,若感兴趣可留言私聊)
图4 BUCK电路原理图.png
图4 BUCK电路原理图

3.2 定义PB0为PWM输出引脚口
/**
* @brief  Configures LED GPIO.
* @param  Led: Specifies the Ledto be configured.
*   This parameter can be one offollowing parameters:
*     @arg  LED1
*     @arg  LED2
*     @arg  LED3
* @retval None
*/
void BSP_LED_Init(Led_TypeDef Led)
{
GPIO_InitTypeDef  GPIO_InitStruct;
/* Enable the GPIO_LED Clock */
LEDx_GPIO_CLK_ENABLE(Led);

/* Configure the GPIO_LED pin */
GPIO_InitStruct.Pin = GPIO_PIN[Led];
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;

HAL_GPIO_Init(GPIO_PORT[Led],&GPIO_InitStruct);
HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET);
}


3.3 实物连接

PB0口连接到光耦输入引脚,如图5所示。由于时间的关系,最后没能做出辅助电源。图6中,光耦芯片是直接通过单片机5V供电的,并没有实现隔离。若要真正隔离则需从另外一个地方取5V的电给光耦芯片供电
图5 主控板引脚图.png          
图5 单片机接线图
图6 实物连线图.png
  图6 实物连接图


4.实物调试4.1单片机输出波形
单片机输出10KHz,占空比0.5脉冲波形图
图7 单片机输出脉冲图.png
图7 单片机输出波形

4.2 纯电阻负载输出电压

如图8所示,小弟串了一个12Ω的水泥电阻作为负载,由于最近课程设计太多,没办法完成电压闭环,只能够实现一个开环系统。等课程全部结束了,就会继续研究!
图8 负载电压.png
图8 负载电压图
核心硬件资料.zip (1.41 MB, 下载次数: 13)
全部回复 0
暂无评论,快来抢沙发吧