嵌入式硬件设计实例:基于STM32的流水灯原理图和PCB设计
嵌入式硬件设计实例:基于STM32的流水灯原理图和PCB设计
本文将详细介绍基于STM32的流水灯硬件设计,包括原理图设计和PCB设计的各个方面。通过本文的学习,读者将掌握STM32最小系统的设计方法,了解电源部分、Buck电路、LED部分的设计要点,以及PCB布局和布线的注意事项。
1 目标和需求
本篇文章的目标是实现一个简单的流水灯硬件设计。具体需求如下:
- 主控芯片:选择STM32F103系列芯片,因为只需要GPIO功能即可实现流水灯效果。
- 电路组成:
- 调试接口:4线SWD
- 晶振
- Buck降压电路:提供3.3V电压给主控
- 8个LED灯
电路组成实际上就是STM32最小系统,再加上8个LED灯。
2 原理图设计
2.1 电源部分
电源部分是硬件电路板设计中最重要的一部分。以下是具体的电源设计:
2.1.1 电源座子
使用12V适配器供电,选择DC12圆孔封装。封装有3个引脚,1个是12V,2个是GND。
实际的电路如下:
2.1.2 Buck电路
对于STM32芯片来说,系统的电压是3.3V的,所以需要一个降压电路。简单地介绍一下Buck电路。
Buck电路是一种常见的降压型(step-down)直流-直流(DC-DC)转换器电路。它的主要作用是将一个较高的直流电压转换为一个较低的直流电压。Buck电路的工作原理基于电感和开关元件的组合,通过周期性地打开和关闭电路中的开关元件来实现电压的降低。
假设输入为15V,要降压为5V,中间是一个开关,输出连接一个电容。控制开关,闭合开关,将电容充电到6V时断开,到4V时再闭合开关。但刚开始电容相当于短路,此时电流非常大,会损坏电容,所以要在前面再串一个电阻。但电阻会消耗功率,所以不太合适。现在又不希望刚开始电容电流无限大,又不希望前面消耗功率。而电感可以阻碍电流的增大,它是BUCK电路中最核心的器件。
刚开始电感的阻抗无穷大,两端电压就等于输入电压,接着电感的压降越来越小,电流逐步增大,这样电流正好就满足了电容缓慢充电。电感的电流不会突变,但电压会突变,而这有后面的电容限制这个突变。
开关断开时,由于15V还存在着,电感产生的感生电动势会到开关左端,从而产生电弧。所以要给电感一个回路。
- 放电时经过二极管放电,上端电压为-0.7V,所以开关的耐压要大于15.7V;二极管的耐压要大于15V。
- 电感上升阶段斜率逐渐变缓
- 电感下降阶段斜率逐渐变抖,最终会趋于稳定。
2.1.2.2 Buck电路设计
选择MP2359作为Buck降压芯片。根据手册中的典型设计,设计原理图如下:
其中:
- R1和R2是反馈电阻,用于控制输出电压大小。
- 二极管D1是肖特基二极管,因为它有更好的快速开关特性、抗热性能和低正向压降。
- CB提供Bootstrap电压,存储开关周期内的电荷。
- 电感的作用是储能,C1和C2是输入/输出滤波电容。
2.2 STM32最小系统
选择STM32F103VET6型号。根据官方数据手册设计原理图,分为系统电源部分和其他引脚部分。
- 由于本例中没有用到特别多片上外设,其他引脚就简单地放在一起了。如果用上了,建议继续将引脚归类和细分,如SPI放一起,I2C放一起等;这样做不仅是为了美观,也是为了减少错误。
电源部分
其他引脚部分
接着添加晶振和调试引脚:
- 晶振:STM32中有两种晶振:
- OSC:连接8MHz的外部晶振,用于提供系统时钟(SYSCLK)或主时钟。
- OSC32:连接32.768kHz的外部晶振,常用于RTC模块。
实际上在这么简单的应用中,完全可以不接任何晶振,直接使用内部晶振。
- 复位引脚NRST的电容:主要是防止由于开关或其他外部因素引起的短时噪声或干扰对NRST引脚的误触发。如果接了一个按键用于复位,那电容还可以调整复位脉冲的上升时间,防止快速或突发的电平变化触发不必要的复位。
2.3 流水灯设计
流水灯部分的原理很简单,当GPIO输出高电平时,LED点亮,反之熄灭。电阻的大小取决于所选LED的数据手册。
3 PCB设计
由于原理图非常简单,二层板足以。以下是PCB设计中需要注意的细节:
3.1 封装选择
- 电阻和LED:选择0603封装,由于是初学,选择大一些的封装。注意,封装越小,能承受的功率越小。
- 电容:对于Buck电路来说,输入和输出的电压很大,需要选择大一点的封装,C3和C4选择C1206封装;其他选择0603封装。
- 肖特基二极管:根据所用二极管的手册选择,这里是DO-216AA。
3.2 电源滤波考虑
在电源附近放置104电容,主要目的是:
- 抑制高频噪声
- 提供瞬态稳定性
- 降低电源线上的尖峰
在设计PCB时,根据STM32芯片或其他芯片的封装布局,确定需要添加的104电容数量,并在原理图中添加,然后布局时放在电源附近。
对应放在STM32的几个电源附近:
3.3 Buck电路布局和布线
电源是系统中最重要的一部分,除了需要尽可能地将电源线弄宽之外,还需要注意以下布局和布线要点:
- 强电路径(GND/IN/SW)应该尽可能短且宽
- 输入电容需要和IN和GND引脚尽可能近
- 外部反馈电阻需要离FB引脚近
- 开关节点的走线短且远离反馈网络
- 对于6号开关引脚SW,由于频率很高,建议把连在这个引脚的电容、肖特基二极管和电感直接敷铜。
3.4 LED部分设计
由于是做流水灯,所以LED需要放在一起。在原理图中,会根据布线的难易程度,尽可能地将物理上要放在一起的器件所对应的引脚放在一起。
3.5 3D演示
以下是该板子的3D图:
4 总结
本篇文章简单介绍了嵌入式单片机的一个简单的最小系统的设计,涉及的知识点包括电源设计、Buck电路设计、STM32最小系统设计、LED设计以及PCB布局布线等。如果要做更复杂的PCB设计,如高频、强弱电、EMC等,还需要考虑更多方面的因素,如电容电阻的参数、阻值大小、容值大小等。