基于STM32电源模块开发
家里没有可控数字电源,做一些开发的时候比较难受,无法获取可调的电压以及电流信息,于是想着自己制作这么一个可控电源模块。
1. 需求分析
- 使用220-9V的电源适配器进行供电
- 输出2-5V可调,并且可以监控输出电流
- 带oled屏幕显示电压电流等信息
- 带MCU主控可做通信或测试功能使用
2. 硬件设计
2.1 硬件选型及原理图设计
- MCU部分原理图设计如下,主要参考的是我之前买的一个STM32F103的一个核心板提供的原理图,主要部分有USB接口、9.6英寸OLED屏幕接口(SPI通信)、SWD及UART接口、按键及指示灯、多余的引脚尽量通过排针引出。
电源部分原理图如下,芯片选型主要使用的是TI的WEBENCH设计工具设计后提供的参考芯片,数字电阻和电流监控的跨阻放大器也都是在TI官网搜的。这里为什么我都用TI的芯片,主要是因为TI可以给学生和公司职员提供免费的样品,只要是学校或公司的邮箱登录就行,申请规定数量的芯片基本上都能通过。每个芯片的datasheet中都提供了参考原理图,根据具体应用进行简单修改即可。
主要芯片:
- TPS54628:将外部DC座子提供的9V电压转换为5V,然后分为两路:一路通过LDO芯片AMS3117转换为3.3V为MCU部分供电,另外一路经TPS54339控制后为外部提供电压。
- TPS54339:通过数字电阻器实现输出可调的电压,后端经一跨阻放大器进行电流监控。
- TPL0401B:数字电阻器,I2C通信接口
- INA250A1PW:电流监控芯片,具体放大倍数可选,本设计倍数选小了。
2.2 AD10使用流程
本方案原理图及PCB设计使用的是Altium Designer10,用的不是很熟练但基本会用。
-
新建一个新的PCB工程,在新建的工程中添加草图和PCB文件,最好也新建或加入自己的草图和PCB库文件,因为在标准的库中大部分是没有你所使用芯片的草图和PCB引脚封装的,需要自己添加或者绘制相关器件封装。
-
原理图绘制,点击右侧的Libraries在合适的库中选择所要使用的器件草图,没有的器件需要自己绘制或去网上找,然后直接拖到右侧绘制窗口即可,最后根据芯片设计连接各器件。
Tips: Tools->Annotate Schematics选项可以自动给各器件编号命名。
-
原理图绘制完毕后,需检查每个元器件是否都有关联正确的引脚封装,检查无误后,点击Design->Update PCB Document ...将原理图中的器件引脚封装更新到PCB文件中。如下图,删除掉棕色的背景,Design->Board Shape选项可以调整整个布局大小,调整好各器件整体布局后就可以按快捷键P+T进行连线了。
-
布好线进行铺铜处理后效果如下图,部分器件封装带3D的模型可进行预览。
2.3 PCB回板焊接
- 淘宝上进行投板,注意给厂家发送原理图前一定要按照厂家提供的规则再次检查PCB布局走线,确保能符合它的生产工艺。
- 进行焊接,除TI的芯片是免费申请的,其它器件都是在淘宝上进行购买的
- 核心器件焊接完成,电阻电容的焊盘有点小导致电阻电容焊接的比较丑,下次把电阻电容的焊盘稍微调大一点。
3. 软件设计
- 软件功能较为简单,后面优化后再补充。
4. 实测展示
- MCU部分所有功能调试正常,在电源正常起来时可实现输出电压可调电流可监控功能,带负载能力未知,电流监控不是很准,电流监控芯片倍数选小了。
- 电源部分异常,第一级的TPS54628电源芯片在拔插9V供电时容易烧掉,原因应该是PCB布局完全没按照手册中进行绘制,仅仅只是连接上而已。
5. 总结
- PCB绘制走线对电源的影响非常大,以后得十分注意。
- 本设计除电源部分有设计失误外,整体功能逻辑都时正常的,还行。
- 有些事情得先做起来,不能总是思考准备,先搞起来迭代开发嘛。
- 电源芯片PCB走线注意点:
① 输入输出滤波电容要共地
② 反馈线要接到输出端最小电容处
③ 其它阻容器件单点共地
④ 具体还得看芯片手册