本文主要是介绍直流电源切换模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求: 实现两个DC电源互为备份,其中任何一个出现故障掉电均可提供输出电源
原理:利用STM32芯片ADC采集+DMA传输实时采集A和B电源输出电压,电压低至10V操控继电器切换输出电路
实现功能:1、正常时AB电源同时作为输出电路
2、当A电源输出电压不足,切换至B电源输出
3、当B电源输出电压不足,切换至A电源输出
实验平台&开发环境:STM32CubeMx + Keil5
芯片: STM32F0P4V6
工作流程:
原理图,PCB焊接元器件,代码移植等(以前都是使用STM32F1标准库,首次使用HAL库,将来的开发主流就是CubeMx配置初始化+HAL调用的方式了)
用继电器控制输出线路,LED灯用来提示继电器工作状态,所以外设管脚不多,用管脚最少的F0芯片即可, 通过ADC采集AB电源的电压值,因STM32F0ADC采集范围0~3.6V,所以AB电源的输出电压需要加入电阻分压到3.6V后才能采集, 再通过DMA实时传送, 函数中滤波转换采集的值,主函数调用,判断低于值切换继电器、LED报警灯闪烁提示即可
CubeMx配置初始化时钟,GPIO,ADC,DMA等,在此就不上配置图了




记录这次过程中遇到的问题和总结
问题:
1、滤波电容是怎样取值的?
总结:
1、关于PCB的设计一定要细心,不要重复辅铜,这次改版了三次
后续:
制作展示平台:
这篇关于直流电源切换模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!