需求: 实现两个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等,在此就不上配置图了
原理图 PCB焊接 焊接后实物图 采集部分代码记录这次过程中遇到的问题和总结
问题:
1、滤波电容是怎样取值的?
总结:
1、关于PCB的设计一定要细心,不要重复辅铜,这次改版了三次
后续:
制作展示平台:
网友评论