原理图审查:电源网络检查、时钟树分析、复位电路验证

拿到一块新板子的原理图,我一般会先泡杯茶,然后从头到尾扫三遍。第一遍看架构,第二遍抠细节,第三遍嘛——专门盯着电源、时钟和复位这三个命门。这三个地方出问题,板子十有八九是废的。今天咱们就聊聊这三块怎么审。

一、电源网络检查:别让供电成为短板

电源网络审查,说白了就是看芯片能不能吃饱饭。我见过太多板子,功能设计得花里胡哨,结果一上电就复位、跑着跑着就死机,最后查出来都是电源惹的祸。

1.1 电源轨道的完整性

先数清楚板子上有多少种电压。MCU核心电压、IO电压、模拟电压、PLL电压……每种电压都要有独立的电源轨道。我习惯在原理图上用不同颜色标注不同电压域,一眼就能看出有没有遗漏。

关键检查点:

  • 每个电源引脚是否都连接到了正确的电源网络
  • 同一电压域的所有器件是否共享同一个电源网络
  • 不同电压域之间是否有电平转换电路

举个例子,STM32F4系列有VDD、VDDA、VREF+等多个电源引脚。VDD是1.8V-3.6V,VDDA必须和VDD相同或略高,VREF+则决定了ADC的参考电压。我在项目中遇到过有人把VREF+接到了3.3V,但VDD只给了1.8V,结果ADC读数全飘——嗯,这种低级错误其实挺常见的。

1.2 去耦电容的布局

去耦电容不是随便放几个就完事的。每个电源引脚旁边都要有至少一个0.1μF的陶瓷电容,而且必须紧挨着引脚放置。我见过有人把电容放在PCB的另一面,中间还隔了两层过孔——这基本等于没放。

我的经验:

  • 每个电源引脚配一个0.1μF电容,距离不超过2mm
  • 每2-3个引脚再配一个10μF钽电容
  • 板级入口处放一个100μF电解电容
  • 模拟电源和数字电源要分开走线

你想想看,电容的作用是提供瞬态电流。如果走线太长,寄生电感会把高频分量吃掉,芯片该要电流的时候电容给不出来,那不就白搭了?

1.3 电源上电时序

很多MCU对电源上电顺序有严格要求。比如某些FPGA要求核心电压先上,IO电压后上;有些MCU则反过来。我习惯在原理图里标注每个电源轨道的上电时序要求,然后用专门的电源管理芯片或者RC延时电路来实现。

注意:

我曾经在一个项目里忽略了上电时序,结果每次上电都有20%的概率芯片锁死。查了三天才发现是VDD比VDDA先到了,导致内部LDO工作异常。从那以后,我每个电源轨道的时序都会用示波器抓一遍。

二、时钟树分析:心脏跳动的节奏

时钟就是MCU的心脏。时钟不对,整个系统都是乱的。我审时钟树的时候,会重点关注三个东西:时钟源、时钟路径、时钟质量。

2.1 时钟源的选择

MCU通常有多个时钟源:外部晶振、内部RC振荡器、PLL倍频等。外部晶振精度高但成本高,内部RC省成本但精度差。我一般这样选:

应用场景 推荐时钟源 理由
普通IO控制、LED闪烁 内部RC(8MHz) 够用,省两个引脚
UART通信、I2C 外部晶振(8-16MHz) 波特率精度要求高
USB、以太网 外部晶振(25MHz) 需要精确的48MHz时钟
音频、视频 外部晶振+外部PLL 低抖动要求

说白了,能用内部RC就用内部RC,省事。但涉及到通信协议,千万别省那个晶振钱。我有个同事为了省两毛钱,用内部RC做UART,结果115200波特率下每10个字节就错一个——这板子最后只能降速到9600用。

2.2 时钟路径的完整性

时钟信号从晶振到MCU引脚,中间不能有任何分支。我见过有人把晶振输出同时接到两个芯片的时钟输入——这会导致信号反射,时钟波形变差。正确的做法是:每个时钟源只驱动一个负载,如果需要多个时钟,用时钟缓冲器。

时钟路径检查清单:

  • 晶振到MCU的走线尽量短(<10mm)
  • 晶振周围不要走高速信号
  • 晶振负载电容要匹配(通常12-22pF)
  • 时钟缓冲器要靠近负载放置

2.3 PLL配置的合理性

PLL倍频不是随便设的。每个MCU的PLL都有输入频率范围、倍频系数范围、输出频率上限。我习惯在原理图旁边写清楚PLL的配置参数:

/* 以STM32F407为例 */
/* 外部晶振:8MHz */
/* PLL配置:M=8, N=336, P=2, Q=7 */
/* 系统时钟 = 8 / 8 * 336 / 2 = 168MHz */
/* USB时钟 = 8 / 8 * 336 / 7 = 48MHz */

为什么要写这个?因为有时候硬件工程师改了个晶振频率,忘了通知软件,结果软件按老参数配置PLL,出来的时钟完全不对。我在原理图上标注清楚,软硬件工程师各看各的,不容易出错。

三、复位电路验证:让系统有个干净的起点

复位电路看着简单,其实坑不少。我审复位电路的时候,主要看三点:复位电平、复位时间、复位源。

3.1 复位电平的匹配

MCU的复位引脚通常是低电平有效。但不同MCU的复位阈值电压不一样。有些是0.3V以下才算低电平,有些是0.8V。我习惯查数据手册里的VIH和VIL参数,确保复位信号能正确识别。

我曾经踩过的坑:

有一次我用3.3V的复位芯片去复位一个1.8V的MCU。复位芯片输出高电平是3.3V,但MCU的复位引脚耐压只有2.0V。结果一上电,复位引脚就烧了。嗯,从那以后我每个复位电路都会检查电平匹配。

3.2 复位时间的保证

复位信号必须保持足够长的时间,让MCU内部所有电路都完成初始化。通常要求至少几个毫秒。我一般用RC延时电路或者专门的复位芯片来实现。

RC复位电路的计算公式很简单:

t = R * C * ln(Vdd / Vth)
其中:
t = 复位时间
R = 上拉电阻(通常10kΩ)
C = 电容(通常0.1μF)
Vdd = 电源电压
Vth = 复位阈值电压

举个例子,Vdd=3.3V,Vth=0.8V,R=10kΩ,C=0.1μF:

t = 10k * 0.1μ * ln(3.3/0.8) = 1ms * 1.42 = 1.42ms

这个时间够不够?看数据手册。大部分MCU要求至少1ms,所以这个参数是OK的。但如果你用的是大电容或者慢速上电的电源,可能需要重新算。

3.3 复位源的多样性

好的复位电路应该支持多种复位源:上电复位、手动复位、看门狗复位、欠压复位等。我习惯在原理图上画一个复位树,把所有的复位源都列出来:

  • 上电复位:RC电路或复位芯片
  • 手动复位:按键+去抖电路
  • 看门狗复位:外部看门狗芯片输出
  • 欠压复位:电源监控芯片输出

你想想看,如果只有上电复位,系统死机了怎么办?只能断电重启。但如果加了看门狗复位,系统死机后能自动恢复。这就是设计冗余的价值。

我的建议:

对于量产产品,至少要有上电复位和看门狗复位两种。如果产品用在工业环境,再加一个欠压复位。成本增加不多,但可靠性提升一大截。

总结

电源、时钟、复位,这三个网络审查好了,原理图就成功了一半。我每次审图都会在这三个地方花最多时间,因为我知道——硬件调试的噩梦,十有八九都是从这三个地方开始的。

下一章咱们聊聊PCB布局审查,到时候我会分享一些走线技巧和地平面设计的经验。记得带上你的原理图,咱们一起过一遍。