一、原理图设计
(1)电源电路
查阅STM32数据手册可知,STM32芯片的工作电压的典型值为VDD=3.3V,通过USB接口输出的电源为5V,为确保单片机正常工作,因此设计5V转3.3V的稳压电路。
常见的稳压芯片:AMS1117-3V3、ME6211C33、RT9193-33GB、XC6206、TPS78233等
这里我们选择ME6211C33芯片,采用SOT-23-5的封装。
为方便观察单片机是否能正常通电,再设计一个电源指示灯电路。
(2)滤波电路
为保证STM32供电电压稳定性,在电源正反极之间放置一个104=10^4pf(即100nf)的去耦电容。利用电容阻直通交的特征进行去耦,滤掉电路中电压波动与高频振荡,减少电源噪声,增加稳定。
(3)时钟电路(晶振)
晶振 电路为主控芯片提供系统时钟,单片机运行必须依赖稳定的时钟脉冲,晶振电路相当于整个系统的“心跳节拍”。查阅STM数据手册可知,STM32有三个内部时钟源,由于单片机的内部时钟容易受外界干扰,所以需要设计外接晶振电路。
通常情况下,晶振电路需放置一个外部高速时钟和一个外部低速时钟,根据实际需求,我这里仅提供一个高速外部时钟用于单片机的主频使用。
(4)BOOT启动电路
参考手册可知STM32支持内部FLASH启动、系统存储器启动、内部SRAM启动三种启动方式,启动方式由BOOT0、BOOT1引脚电平状态决定。
整体为2*3排针,1、2引脚连接3V3电压(高电压)5、6引脚连接GND(低电平),由于BOOT和BOOT1默认情况下处于高阻态状态,所以连接10KΩ上拉\下拉电阻。
通过更改BOOT0和BOOT1引脚的高低电平状态,可改变系统的启动方式。
(5)SWD程序下载调试电路
STM32程序调试方式主要有两种,即JTAG和SWD,其中SWD方式适合封装引脚较少的芯片,只需要2个引脚便可完成对程序的调试和下载,使用4pin的弯针,用来外接ST-Link下载器。
(6)复位电路
复位电路主要用于对MCU进行程序复位,将电路重置到初始状态。根据数据手册可知,芯片的复位引脚与内部的永久上拉电阻相连,即默认为高电平,当提供低电平时芯片会复位。
引脚RESET连接到STM32芯片的复位引脚上,电路原理:利用RC电路的充放电原理,在上电瞬间为RESET引脚上产生一个短暂的低电平,按下按键会使RESET引脚产生低电平,电容还可以起到消抖的作用。
此复位电路有两种工作方式:①接入电源瞬间进行复位②按键复位
为保证系统能够正常复位,电容的充电时间应该大于两个机器周期以上的时间。主频为72MHZ时,单片机的一个机器周期=12/72M=0.1656x10^-6s。所以选用R=10KΩ,C=0.1uf的电阻、电容来设计复位电路,通过公式t=RC进行计算,得到复位时间为0.01s。
整体原理图
PCB设计
(1)PCB设计完整流程
(2)铜箔、焊盘、过孔
①铜箔:作为导线连接PCB板上的元器件(顶层和底层信号层的导线)
②焊盘:固定元器件的引脚,放置焊锡用来焊接元器件
③过孔:连接不同层的导线,将顶层和底层进行电气连接(两层板),连接不同层的信号或电源
④通孔:用于连接外部元件或测试点
(3)PCB板工作层面
①机械层:用于设置电路板的外形尺寸,安装和对齐标记,装配说明等机械信息;板框层、机械层
②信号层:主要用于布线和焊接,用于布置电路板上的导线(顶面顶层(红色)底面底层(蓝色))
③丝印层:主要用于放置印制的信息,如元件的轮廓和标识,各种注释字符等,是元器件焊接位置的依据也方便后期的引脚连接和调试
④焊膏层:主要用于将表面贴元器件粘贴在PCB上,对应焊盘上的喷锡。防止铜在空气中被氧化;方便元器件焊接到电路板上。
⑤阻焊层:主要用于防止不该被焊上的部分被焊锡连接,在焊盘以外部分涂覆的涂料,即PCB板上有颜色油墨部分
⑥内部电源/接地层:仅用于多层板,一般连接到地或电源,实际是铜层,起到电气连接作用
(4)PCB规则设置重要关注
①电气间隙,最小间距:走线间距、走线与过孔间距、过孔间距,防止串扰、短路
②线宽:根据电路中电流调整,电流大的话调整线宽,走线越宽,电流电阻越低,有助于减少热量积聚
③过孔尺寸:直径最优尺寸24mil,孔径大小最优尺寸12mil
线距(6mil(0.15mm))
线宽(普通信号线10mil、5V电源线15mil)
过孔(孔径12mil、过孔24mil)
④覆铜:覆铜→修铜处理,直连:直接与焊盘连接;发散:与焊盘产生十字连接
(5)PCB布局规则
①遵循连线最短,体积最小,面积最小的原则,考虑整体板子大小(因为嘉立创每个月有两次免费打10*10cm板的机会)
②考虑到各个元器件的摆放位置,着重考虑重要接口、传感器等与位置有关的元器件的位置分布
③进行模块化布局,尽量减少信号信号相关的元器件之间的距离
④元器件摆放不要过于密集,尽量使电路板布局紧凑合理,方便后面手工焊接
⑤布局过程中,滤波电容需要在芯片周围布局,可以达到最好的滤除干扰的效果
⑥小电容应尽量靠近ADC,降低噪声对其影响
⑦晶振与芯片尽可能靠近
(6)布线基本规则
①同类型的输入信号线,应该成组、平行分布,并保持它们之间的长度差异不大,这种布线方式可以有效的减少信号干扰,提高系统的稳定性
②走线时,一般采用45°转折线,因为90°的转折会带来信号反射,降低信号质量
③走线越长,阻抗越大,对信号完整性有一定程度的影响,在走线的过程中应保证元器件之间的走线距离尽量短
④走线的功能不同,宽度也不相同,遵循地线宽度大于电源线宽度大于信号线宽度
⑤虽然层与层之间的信号电气连接需要过孔来实现,但应该尽量减少信号线的过孔数量,有助于保证信号的完整性,并提高信号的传输速度
⑥电源和地的引脚,需要尽可能缩短过孔和引脚之间的长度,这样可以降低电阻和电感,并提高电路的稳定性
⑦晶振旁边使用GND布线包围,目的是为了将晶振隔离开PCB图
(7)覆铜
覆铜提高抗干扰能力;此外,覆铜信号线为GND,这样方便GND引脚连接
①电路板需要进行大面积覆铜,可以有效地吸收和分散电路板上的噪声和热量
②覆铜后,需要进行修铜处理,对尖角铜皮进行删除,防止尖端放电,产生不必要的干扰,对器件与器件之间的铜皮以及晶振/芯片下方的铜皮也需要进行删除
③检查覆铜区域顶层和底层信号是否接通,适当添加部分过孔
PCB
这是我板子的布局,电容电阻都放在了底层,方便后期焊接。底层和顶层元器件可以重叠,不会相互影响。
走线可以使用嘉立创的自动布线,但是会有短接的风险,而且不一定符号走线规则,所以建议还是手工布线
特别注意,正常情况下,晶振下面是不能走线的而且要在周围围一圈地线,但是由于这个系统比较小,造成的影响较小,所以我这里在晶振下面走了线
如果有更好的走线方法可以分享给我,一起学习。
布线完成后,进行泪滴和覆铜操作,泪滴为了让线和焊盘连的更牢固
-------------------------------------------
二编
上面的PCB板打板回来存在一些问题,所以我又重新调整了一版布局,更加符合布局规则,同时布局更加美观,走线更加方便.
为了方便连接,更改了IO的接口,这样可以减少飞线的交叉,方便后期走线。
同时调整了一些元件的层级,现在如果使用自动布线的话,就会很好布也能规范一点。如果手工布线的话,就按照我上面的布线规则来约束就可以了。同时添加了丝印信息.第一版我忘记添加丝印了,板子打回来没有办法测试是否联通。我还在板子上适量添加了一些过孔,确保顶层和底层信号接通。(注意:过孔不要加到信号线上,为了美观,尽量对称添加)
覆铜的时候可以给芯片和晶振上添加禁止区域,选择覆铜,这样芯片和晶振下面就不会被覆上铜。IO部分也可以使用1*20p的排针,这样就少一组VCC和GND,但是也够用。
使用嘉立创EDA将板子打回来后,可以使用万用表来测试板子是否都联通,防止焊接完成后板子出现问题,浪费时间以及耗材。
焊接完成后,可使用ST-LINK下载器给单片机上电,查看单片机是否正常可用,看LED灯是否正常点亮。
以上步骤完成,就可以做出一个专属与自己的STM32最小系统板啦!!!