1. STM32F103 中 VDDA 的关键作用
在 STM32F103 系列中,VDDA 不仅仅是为 ADC 供电。
-
复位电路供电 :芯片内部的 上电复位(POR)和掉电复位(PDR)电路 是由 VDDA 供电的。
-
PLL 供电 :如果你使用外部晶振(HSE)或内部时钟倍频(PLL)作为系统时钟,PLL 模拟部分的电源也来自 VDDA。
2. 为什么悬空会导致"下载不进去程序"
当你尝试用 ST-Link 或 J-Link 下载程序时,调试器会执行以下操作:
-
连接:通过 SWDIO/SWCLK 与芯片物理通信。
-
复位:调试器会拉低复位引脚(NRST),或者发送软复位命令,让芯片回到初始状态。
-
初始化:芯片需要运行内部的 Bootloader(如果是从 RAM 启动)或者配置调试接口。
如果 VDDA 悬空:
-
POR/PDR 电路无法工作:芯片内部的复位逻辑可能处于不确定状态。可能表现为一直处于复位态,或者上电时序不满足要求,导致调试器无法正确识别内核 ID(Connection refused 或 No target found)。
-
PLL 无法锁定:如果芯片默认配置或者 Bootloader 试图启用 PLL,由于 VDDA 悬空导致电压不稳,PLL 无法锁定,系统时钟不工作,SWD 接口也会失效。
-
电平异常:悬空的 VDDA 电压可能是 0V,也可能是通过内部保护二极管从 VDD(3.3V)耦合过来的 2.5V 左右的不稳定电压。这种状态下,模拟电路部分无法建立正确的偏置,导致整个芯片的调试接口初始化失败。
3. 为什么"焊接上去后又好了"
你重新焊接后,焊锡将 VDDA 引脚与 PCB 上的电源网络(可能是 VDD 或独立的 3.3V)连通了。
-
电压恢复正常:VDDA 获得了稳定的 3.3V(或你设计的电压)。
-
POR 电路使能:复位电路工作正常,上电后能产生正确的复位脉冲。
-
时钟稳定:调试器可以正常初始化芯片的内核,SWD 接口恢复正常通信。
4. 针对 STM32F103 的特别提醒
虽然手册规定 VDDA 允许与 VDD 有 0.3V 的压差,但在实际工程中,STM32F103 对 VDDA 的电压非常敏感。
-
即使你不用 ADC ,也不建议将 VDDA 悬空。
-
标准做法 :在原理图中,如果你对模拟精度要求不高,直接把 VDDA 连接到 VDD(3.3V) ,把 VSSA 连接到 GND。
-
排查建议 :既然你已经重新焊接好了,建议你用万用表测量一下 VDDA 引脚(通常为 13 脚,LQFP48 封装) 与 VDD(36 脚或 48 脚)是否导通。如果不导通,说明 PCB 设计上可能缺少了 VDDA 的供电网络,需要飞线连接。
总结 :你遇到的情况正是因为 VDDA 虚焊导致芯片内部的复位电路和时钟电路无法初始化,从而使调试器无法连接。重新焊接为 VDDA 提供了稳定的电源,芯片恢复了正常功能。这也验证了 STM32F103 VDDA 必须可靠连接的硬件设计原则。