4、主控电路设计:STM32最小系统电路、晶振与复位电路、电源滤波与去耦电容布局

好,咱们进入第四讲。这一章要聊的是整个水质监测板的“大脑”——主控电路。说白了,就是STM32单片机怎么才能正常工作。

很多新手画原理图,喜欢一股脑把芯片引脚全连上,觉得“连上了就行”。我早年也犯过这毛病。结果呢?板子焊好,程序烧不进去,或者跑起来动不动死机。查了半天,发现是晶振没起振,或者复位引脚悬空了。嗯,这些坑,咱们今天一个一个填上。

4.1 STM32最小系统:到底“最小”到什么程度?

所谓最小系统,就是让STM32能跑起来的最简电路。我个人习惯把它拆成四块:电源、时钟、复位、下载调试。缺一个,芯片就罢工。

你想想看,单片机也是“人”,得吃饭(电源)、得有心跳(时钟)、得知道什么时候从头开始(复位)、还得有人教它干活(下载调试)。

这里我贴一个典型的最小系统电路结构,供你参考:

STM32最小系统必备要素:
├── 电源:VDD/VSS对,每个电源引脚配去耦电容
├── 时钟:主晶振(8MHz) + 32.768kHz RTC晶振(可选)
├── 复位:NRST引脚,上拉电阻 + 按键
└── 调试:SWD接口(SWDIO + SWCLK)

核心要点:STM32的VDD和VSS不是一对就够的。像STM32F103C8T6这种48脚芯片,有3对VDD/VSS。每一对旁边,都必须放一个100nF的去耦电容。别想着“共用一个就行”,我在项目中吃过这个亏——省了两个电容,结果ADC采样值跳得像心电图。

4.2 晶振与复位电路:时钟不稳,万事休矣

晶振电路,看着简单,其实最容易出幺蛾子。

STM32的主晶振通常用8MHz。为什么是8MHz?因为内部PLL可以倍频到72MHz(STM32F1系列的最高主频)。晶振两端需要接两个20pF左右的负载电容。这个电容值不是随便选的,得看晶振的数据手册。

我曾经遇到一个案例:某款国产晶振,标称负载电容12pF,结果我按习惯用了20pF。板子能工作,但串口通信偶尔丢包。用示波器一看,波形幅度偏小,起振时间也长。换回12pF的电容,问题解决。所以,晶振的匹配电容一定要看手册,别想当然。

复位电路就更直接了。NRST引脚内部有上拉电阻,但外部最好再拉一个10kΩ电阻到3.3V,然后接一个100nF电容到地。再加一个按键,按下去拉低复位。嗯,这里要注意:复位引脚不要悬空。悬空的话,电磁干扰可能让单片机莫名其妙复位。

我的小技巧:晶振底下不要走其他信号线,尤其是高速信号。晶振是模拟电路,对噪声敏感。我一般会在晶振区域铺一圈地铜,把干扰隔离开。

4.3 电源滤波与去耦电容布局:细节决定成败

电源设计,说白了就是“滤波”和“去耦”这两件事。

滤波是针对整个电源轨道的。比如3.3V进来,先过一个大电解电容(10μF~100μF),再过一个100nF的陶瓷电容。大电容滤低频纹波,小电容滤高频噪声。这个组合,业内叫“级联滤波”。

去耦是针对每个芯片的。每个IC的电源引脚旁边,都要放一个100nF的陶瓷电容。这个电容要尽可能靠近引脚,距离不要超过3mm。为什么?因为电容离得远,引线电感会抵消它的高频效果。

我画PCB时有个习惯:先摆电容,再摆芯片。电容的位置定了,芯片的位置自然就跟着定了。你想想看,如果先放芯片,再找地方塞电容,很可能塞到天边去了,那去耦效果就大打折扣。

下面这个表格,是我常用的电源滤波电容选型参考:

电容类型 容值 用途 放置位置
铝电解电容 10μF ~ 100μF 滤除低频纹波 电源入口
陶瓷电容 100nF 去耦,滤除高频噪声 每个IC电源引脚旁
陶瓷电容 10nF 抑制特定频段干扰 晶振、PLL等敏感电路

警告:去耦电容的接地端,一定要直接打过孔到地平面,不要绕路。我见过有人为了走线方便,把电容的地端绕了半圈再接地,结果高频噪声全耦合到电源线上去了。记住:电容的地线越短越好

4.4 布局实战:一个完整的STM32最小系统布局示例

光说不练假把式。咱们看一个实际布局的例子。假设我们用的是STM32F103C8T6,48脚LQFP封装。

布局顺序我一般是这样的:

  1. 先定芯片位置:放在板子中央偏左一点,方便走线。
  2. 再放去耦电容:每个VDD引脚旁边放一个100nF电容,电容紧贴引脚,地线直接打过孔。
  3. 放晶振:放在芯片的OSC_IN/OSC_OUT引脚附近,尽量靠近,底下不走线。
  4. 放复位电路:10kΩ上拉电阻和按键,放在板子边缘,方便操作。
  5. 放电源滤波电容:10μF和100nF放在电源入口处。
  6. 放SWD调试接口:4针排针(SWDIO、SWCLK、GND、3.3V),放在板子边缘。

嗯,这里要注意:晶振和去耦电容不要挤在一起。晶振是噪声源,去耦电容是抗噪声的,两者靠太近反而互相干扰。我一般会在它们之间留至少2mm的间距。

避坑指南:我曾经画过一块板子,为了省空间,把晶振放在了两排去耦电容中间。结果晶振起振不稳定,频率偏差了0.5%。后来把晶振挪到板子边缘,单独包地,问题才解决。所以,晶振要“独居”,别跟电容挤在一起

好了,这一章的内容就这些。总结一下:最小系统要保证电源、时钟、复位、调试四要素齐全;晶振的匹配电容要按手册选;去耦电容要靠近引脚放;布局时先摆电容再摆芯片。这些细节做好了,你的STM32才能稳定工作。

下一章,咱们聊聊传感器接口电路设计。水质监测板上那些pH、TDS、温度传感器,怎么跟STM32对接?到时候见。