ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MCU外围电路设计详解:从最小系统到调试接口的避坑指南

MCU外围电路设计详解:从最小系统到调试接口的避坑指南 去年帮朋友看一块产品板现象特别典型MCU上电后电流只有几毫安LED不亮下载器也连不上。我拿万用表一量VDD只有1.2V——他照着某开发板抄了原理图却把LDO后面的去耦电容省了还在启用内部RC时钟后想当然不焊晶振。这类问题在MCU硬件入门阶段极其常见也最能说明外围电路的坑跟内核没关系全在“周边配套”。这篇内容就是写给刚接触MCU硬件设计的朋友也适合软件工程师想搞明白板上为什么留那么多电阻电容。我按自己画板、调板、救板的经验把电源、时钟、复位、烧录、通信、驱动这几块外围电路从原理到实操串一遍每部分都带上具体数值和踩坑记录照着检查能省下不少弯路。1. 别急着画板先把外围电路的“必要项”盘点清楚很多人拿到一颗MCU第一反应是翻数据手册找引脚定义然后照着参考设计开始连线。这个习惯不算错但容易漏掉一个关键问题哪些外围电路是芯片能跑起来的最低条件哪些只是功能需要。区分清楚这两类调试时才能快速缩小范围。1.1 最小系统到底包含什么所谓最小系统就是让MCU能上电、能执行程序、能被调试的基本硬件集合。它不是“最简功能演示板”而是“缺了它芯片就无法正常工作的那一圈东西”。以市面上最常见的Cortex-M系列MCU为例最小系统一般包括五部分电源给VDD供电AVDD如果有独立引脚也要接VREF则需要按手册要求接参考电压或去耦电容。复位提供上电复位部分MCU还要求复位引脚有明确电平和脉冲宽度不能悬空。时钟外部晶振或内部RC振荡器至少保证芯片有时钟源可用。调试/烧录接口SWD或JTAG引脚至少要留出SWDIO、SWCLK、GND以及可选的VCC否则程序烧不进去。启动配置引脚很多MCU有BOOT0/BOOT1或类似引脚决定复位后从哪里取指如果悬空导致启动到错误区域程序就跑不起来。这五部分里电源和复位属于“接错就上电异常”的硬伤时钟和启动配置属于“看着没事但就是不工作”的软伤调试接口则直接决定你能不能把程序灌进去。我见过不少新手在原理图上省掉BOOT配置电阻结果芯片批量贴片后全部要飞线才能下载教训相当惨痛。1.2 常见误区内部RC够用就不用晶振“MCU内部有RC振荡器为什么还要外部晶振”这个疑问几乎每个初学者都会问。答案是够不够用取决于你的应用对时间精度的要求。内部RC的精度通常在±1%到±3%之间温度变化还会漂移。如果你只是点亮LED、跑跑逻辑、做按键扫描内部RC完全够。但如果涉及以下场景外部晶振就属于必要项串口通信速率较高如115200以上且长时间传输时波特率误差要求高内部RC可能不稳。需要RTC日历功能通常要求32.768kHz外部晶振否则走时偏差肉眼可见。USB通信对时钟精度要求非常严格全速USB的帧同步通常要求时钟误差在0.25%以内内部RC很难满足。CAN等同步协议对位时间精度敏感。所以判断标准不是“能不能省”而是“你的外设要求什么精度”。当然为了兼容设计很多开发板即使默认用内部RC也会预留晶振位置不想焊就不焊想用的时候再补上这种容错思路在量产板里同样值得借鉴。另一个误区是把最小系统里的负载电容、上拉电阻当成“按参考设计抄就行”完全不知道为什么要这个值。后面几章我会逐个解释取值逻辑这里先强调一个原则外围电路里每一个电阻电容都有存在理由如果数据手册和参考设计给了具体值尽量先按它的来再根据自己的需求去调整而不是随手贴个常见值就完事。2. 电源部分上电就炸、电压不稳的头号来源MCU外围电路里电源部分最枯燥却是故障率最高的区域。很多画板的人对电源的理解停留在“接个LDO输入输出各加个电容”结果系统一上电轻则电压跌落导致复位重则芯片冒烟。2.1 选LDO还是DCDC先算负载电流电源方案选型时首要参数不是“标称电压对不对”而是“负载电流到底多大”。LDO是线性稳压器核心特点是压差和静态电流。它适合输入输出压差小、负载电流不大、对噪声敏感的场合。比如3.7V锂电池降压到3.3V负载电流100mA以内用LDO就很合适纹波低、电路简单、外围元件少。但如果你把12V降压到3.3V压差接近9V负载电流200mA那LDO上的功率损耗就是9V×0.2A1.8W这热量足以让板子烫手这时候必须换成DCDC降压。DCDC开关电源的效率通常在85%~95%但代价是开关噪声。选型时重点关注三项最大输出电流、开关频率、反馈电压精度。实际设计中电感的饱和电流要留至少30%的余量肖特基二极管或同步整流管的体二极管耐压要高于最大输入电压输出电容ESR要合适否则纹波会上天。以常见的ESP32这类WiFi MCU为例射频发射瞬间电流能达到300~500mA如果用一个最大输出300mA的LDO供电WiFi一连接就会触发欠压复位。这种情况下要么换大电流LDO要么用DCDC预降压再加一级小LDO做噪声过滤。我实际测过一颗HT7833这种1A级别的LDO在ESP32发射瞬间也能把电压拉低0.2V左右所以给这种负载供电余量至少按峰值电流的1.5倍选型才稳。2.2 去耦电容怎么摆容值不是关键回路才是去耦电容的作用是在芯片电源引脚附近建立一个低阻抗的能量池应对数字电路开关瞬间的电流毛刺。0.1μF100nF这个经典值对应的是常见PCB寄生电感下谐振频率在几十MHz的噪声频段而1μF~10μF的陶瓷电容用于补充低频段的能量。所以标准做法是每个电源引脚放一颗100nF芯片附近再放一颗1μF或10μF的“大本营”。但比容值更重要的是电容到引脚之间的距离。如果去耦电容离电源引脚超过3mm走线电感就会让电容失效。我见过一块板子原理图完全正确电容值也对但布局时把100nF放到了PCB背面还用了两个过孔绕过去结果MCU每次在驱动数码管刷新瞬间就复位后来把电容挪到引脚正对的位置问题立刻消失。关于去耦电容再补充两个实战经验不要在原理图上把所有100nF都设计成同一种封装可以混用0402和0603方便贴片后的调整。每个电源域模拟电源、数字电源的“大本营”电容尽量靠近该电源域的远端而不是全部挤在电源入口否则远端电压跌落依旧无法抑制。2.3 上电时序与电压跌落实测有次做一款带NB-IoT模块和传感器的采集板MCU程序经常在发送数据时卡死后来抓波形发现模块发射时电流飙升3.3V瞬间跌到2.9V左右MCU没有完全掉电复位但Flash写入时电压不足导致数据错乱。这类问题的根源在于整个系统的电源设计只考虑了平均功耗没考虑瞬态峰值。排查和解决思路大致如下用示波器抓VDD波形观察跌落幅度和持续时间。计算峰值电流需求确认电源芯片的瞬态响应能力。在负载端就近增加大容量储能电容如47μF~100μF把瞬态电流的冲击就地吸收。如果跌落是斜率太大引起可以用软启动或DCDC的补偿网络调慢响应但多数场景下加大储能电容最直接有效。另外多路电源域之间如果存在上电时序要求比如内核先于IO供电需要仔细看数据手册里的Power Sequence章节必要时用分压电阻、RC延时电路或电源监控芯片来满足。否则轻则功能异常重则损坏IO口。3. 时钟与复位电路不起振、不复位的真正原因时钟和复位问题最让人头疼因为它们出问题时芯片的表现往往非常“诡异”电压正常、引脚电平正常、程序就是不走。下面从晶振匹配和复位设计入手讲清楚最关键的两个环节。3.1 晶振的匹配电容与布线不是随便焊的外部无源晶振石英晶体需要配合负载电容才能工作在标称频率附近。常见MCU参考设计里两个匹配电容通常取值10pF~22pF这个值并不是拍脑袋定的它和晶振的负载电容CL有关。并联谐振电路里实际负载电容约等于CL (C1 × C2) / (C1 C2) Cstray其中Cstray是引脚和走线的寄生电容一般取2~5pF。如果晶振规格书的CL是12pF你希望C1和C2相等那么(C1×C2)/(C1C2)CL-Cstray≈9pFC1C2≈18pF取就近的18pF或20pF即可。如果匹配电容偏差太大晶振频率会偏离标称值更严重的情况是起振困难或起振时间过长导致MCU复位结束后晶振还没稳定程序跑到一半死机。晶振布线有三条硬规则晶振和匹配电容尽量靠近MCU的OSC引脚走线越短越好。晶振底下不要铺地铜避免寄生电容改变振荡频率但要在外围做一圈地屏蔽防止邻近信号串扰。不要从晶振引脚上方或以直角穿越其他高速信号线。测量晶振波形时要用×10挡的示波器探头因为×1挡探头电容高达几十pF直接怼上去可能会让振荡器停振。我有一次量一个16MHz晶振×1探头一碰波形立刻变成一条直线换成×10才正常。3.2 复位电路从RC到专用复位芯片最简单的复位电路是一个10kΩ电阻上拉到VCC加一个100nF电容到GND利用RC充电形成上电复位脉冲。时间常数约1ms对多数MCU足够。如果要加手动复位按键就在复位脚和GND之间串一个按键同时并联一个小容量电容100nF做按键消抖。但这种RC复位的缺陷是当电源电压缓慢上升、不稳定时它无法提供一个确定的复位电平。比如电池供电的设备电池电压从0慢慢爬升RC复位电路可能在MCU欠压阈值附近反复触发复位造成系统疯跑。量产品里更稳妥的做法是加一颗专用复位监控芯片如MAX809、MCP809、STM809这一类。它内部有电压比较器能在VDD低于阈值时强制拉低复位脚电压恢复正常后延迟几百毫秒释放复位。这类芯片价格一颗几毛钱但能大幅提升系统可靠性。我见过不少低功耗产品睡眠时电源电压被负载拉低普通RC复位根本扛不住换成复位监控芯片后问题才根治。3.3 “芯片没反应”的完整排查链路一旦MCU看起来“死透了”建议按下面这个顺序查而不是直接怀疑芯片坏了步骤检查内容工具/方法1VDD引脚电压是否正常、纹波是否过大万用表、示波器2复位引脚电平是否符合芯片要求的复位状态万用表3晶振是否起振、频率是否偏差大示波器×10探头4BOOT引脚是否配置在能启动程序的位置万用表测电平5调试器能否连接连接后能否读取内核信息SWD/JTAG调试器6芯片是否被加密或Flash为空烧录工具读取这个顺序的核心逻辑是先确认芯片“活着”再确认它有“心跳”最后确认它能“接收指令”。很多人上来就连接下载器结果一直报错其实前面几步早就出问题了。按这个链路排查90%以上的“没反应”都能快速定位。4. 烧录与调试接口为什么总是超时无应答下载失败是MCU开发里最消耗耐心的环节之一尤其是用串口下载或SWD连接时反复报错。下面从接口接法和配置引脚两个角度把问题拆开。4.1 SWD接口的接法与抗干扰细节SWD只需要两根线SWDIO和SWCLK加上地线就能连接三根线看起来简单实际应用中的坑一点不少。首先要确认这两根线上有没有被复用为GPIO。某些MCU的SWDIO和SWCLK默认就是调试功能但有些项目的bootloader代码会把它们重新配置为普通IO口此时调试器自然连不上需要按住复位脚的同时尝试连接或者在代码里增加延迟窗口。其次是SWDIO是否需要上拉/下拉。很多MCU内部已经集成了弱上拉或弱下拉所以外部不接也能工作。但如果你的板子环境电磁干扰大、下载线又长SWDIO建议加一个10kΩ上拉到3.3VSWCLK加一个10kΩ下拉到GND可以有效防止干扰导致的连接不稳定。下载线尽量短杜邦线超过15cm就容易在高速通信时出问题。如果非要长线连接可以考虑降低SWD时钟频率很多调试器支持设置虽然下载慢一点但至少稳定。我调试一块电机驱动板时电源地线上干扰很强SWD一连接就断开后来把调试器的GND用一根粗短线单独接到板子的GND参考点而不是顺着下载线走立刻恢复正常。4.2 BOOT引脚与启动模式程序烧进去了却不运行以常见的STM32为例BOOT0和BOOT1引脚决定复位后从哪段存储区开始执行BOOT0BOOT1启动区域0X主Flash正常运行模式10系统存储器进入内置Bootloader可用于串口下载11SRAM调试用很多“下载成功但程序不跑”的案例都是因为BOOT0被拉高后忘记恢复芯片一直停留在系统存储器的Bootloader里。解决方式是BOOT0设计一个10kΩ下拉电阻默认接地需要进入Bootloader时用跳线帽或按键临时拉高。此外程序烧进去了但复位后不运行还要确认芯片复位向量是否正确。用调试器读一下PC指针如果复位后停在HardFault或一个非法地址很可能是程序本身的问题而非硬件配置。4.3 串口下载超时无应答的排查顺序串口下载比如STM32用FlyMcu、ISP下载是低成本和量产初期的常用方案但它比SWD更容易出问题。遇到“超时无应答”我一般按以下顺序检查确认USB转串口模块的电压是3.3V还是5V。如果模块输出5V的TX信号接到3.3V供电的MCU引脚上大概率会损坏或触发保护。最好选用带电平转换的模块或者确认两者电平兼容。确认BOOT0已经拉高、BOOT1拉低处于系统存储器模式且芯片已经复位。确认串口的TX接MCU的RX串口的RX接MCU的TX不要接反。交叉连接这个细节最容易被忽略。下载器是否与目标板共地。USB转串口模块和目标板如果不共地电平参考点不同根本没法通信。检查下载软件的“DTR/RTS自动复位”配置。FlyMcu这类工具通常需要DTR和RTS配合实现自动复位进入Bootloader如果配置不对软件会一直等待握手信号表现为超时。踩过一次很深刻的坑软件设置完全正确但板子的复位脚被一个100μF大电容拉着导致复位脉冲宽度不够Bootloader没能在电平变化窗口内启动。后来把复位电容减小到100nF下载立刻通畅了。另外提醒一句串口下载时MCU的Tx/Rx引脚如果接了RS485收发器或其他负载可能影响TTL电平导致握手失败。排查时可先断开这些外围用跳线直接连到USB转串口模块测试。5. 通信接口的外围电路电平标准、上拉电阻与常见困惑MCU与外界打交道离不开通信接口。每个通信接口的外围电路都有自己的“脾气”最典型的莫过于UART的RS232/RS485转换、I2C的上拉电阻以及“没有USB引脚怎么办”这类问题。5.1 UART怎么接RS232和RS485电平规格与接线UART本身是TTL电平高电平约3.3V/5V低电平0V传输距离短、抗干扰差。工业现场用的RS232电平是±12V左右RS485则是差分信号。所以MCU的UART引脚不能直接接到RS232/RS485总线上必须经过转换芯片。RS232方向常见芯片是MAX3232和SP3232它们内部有电荷泵可以单3.3V供电产生±5V以上的RS232电平。接线时注意MAX3232的T1OUT接DB9的第2脚RXDR1IN接DB9的第3脚TXDGND接第5脚这个交叉逻辑和TTL直连时刚好相反很多人栽在这里。RS485方向常见芯片是MAX485、SP3485等。它需要两根线A、B组成差分总线。实际应用中有几个外围电阻不能省终端匹配电阻总线两端各接一个120Ω电阻用于消除反射。只有一个设备或短距离时可以不接。偏置电阻A上拉到VCC、B下拉到GND阻值常见为1kΩ~10kΩ确保总线空闲时A-B电压差为正避免接收端收到乱码。收发控制脚DE发送使能和RE接收使能很多设计把它们并在一起用MCU的GPIO控制方向切换之间要留足够延时否则会丢数据。5.2 I2C上拉电阻怎么算不是随便放个4.7k就完事I2C总线是开漏结构SDA和SCL必须有外部上拉电阻才能输出高电平。上拉阻值的选择取决于总线工作模式、总线上挂的设备数量和走线长度。上拉电阻有两个边界最小值由引脚灌电流决定。I2C协议规定器件灌电流能力约3mA所以R_min (VCC - VOL) / 3mA。3.3V供电时VOL按0.4V算R_min约967Ω取1kΩ。最大值由上升时间决定。I2C标准模式100kHz允许最大上升时间1000ns快速模式400kHz允许300ns。上升时间约等于0.8473 × R × Cbus其中Cbus是总线总电容引脚电容加走线电容一般按50pF~200pF估算。举个实际例子总线电容按100pF算标准模式100kHz下R_max 1μs / (0.8473 × 100pF) ≈ 11.8kΩ所以10kΩ没问题。但快速模式400kHz下R_max 300ns / (0.8473 × 100pF) ≈ 3.5kΩ这时候4.7k就偏大了2.2k更稳妥。所以“板子上一律用4.7k”这个习惯在低速场合没问题但在400kHz快速模式或者挂载设备较多时需要把电阻改小否则波形上升沿过缓通信就会间歇性出错。5.3 关于“MCU没有USB引脚”和SPI的常见困惑有不少人拿到低端MCU后问芯片没有USB差分数据引脚怎么办要怎么实现USB通信答案是这颗芯片本身就不带USB外设你没办法用USB协议和它直连。可行的路径有三条换一颗集成USB外设的MCU型号如果软件兼容这是最省事的方案。外接一颗USB转UART芯片如CH340、CP2102把MCU的UART口桥接到USB总线上。如果只是需要和电脑通信而不追求USB协议直接用UART转USB模块MCU侧完全是TTL串口。不要妄想通过模拟时序在普通GPIO上实现完整的USB主机/设备功能USB协议对时序要求极高软件模拟在低速场合或许能跑通但稳定性没有保障。SPI接口相对宽容但有三条外围设计建议一是CS片选引脚建议加上拉电阻防止SPI设备在主控复位期间被误触发二是MISO/MOSI之间如果走线长可以串联一个33Ω~100Ω的电阻抑制振铃三是SPI从设备如果工作电压和主控不一致必须做电平转换可以用单芯片的双向电平转换器如TXB0104或简单的分压/缓冲方案。还有一个热词里出现的疑问MCU内部的Flash是用什么接口访问的简单说绝大多数MCU的Flash挂在内部总线矩阵上CPU直接通过地址映射访问它不是一个用户可见的SPI或I2C外设。调试器则通过SWD/JTAG调试接口经过芯片内部的调试访问端口来读写Flash。所以你在数据手册里不会看到“Flash接口”这个引脚它是芯片内部架构的一部分。6. 输出驱动与模拟采样电路每个电阻都有“责任”外围电路里驱动LED、数码管、继电器、MOS管以及ADC采样电路是最容易“烧IO”或“数据不准”的地方。这几类电路虽然简单但设计细节决定了整个系统的可靠性。6.1 LED与数码管驱动限流电阻的计算方式MCU的GPIO直接驱动LED时限流电阻不能省。典型计算R (VOH - VLED) / I_LED例如MCU的VOH为3.3V红色LED正向压降1.8V目标电流5mA则R (3.3 - 1.8) / 0.005 300Ω取330Ω标准值。如果用的是灌电流方式LED接VCC到GPIO计算时要用VOL公式类似。这里要特别注意“拉电流”和“灌电流”能力差异。很多MCU的灌电流能力比拉电流大比如STM32的IO能灌入20mA但拉出可能只有几mA到十几mA。驱动多路LED时要把每路电流累加起来确认不超过芯片的绝对最大额定值和电源域总电流限制。否则MCU会过热、输出电平漂移甚至烧毁IO。驱动数码管时段电流和位电流不能混淆。动态扫描方案中位选引脚需要在极短时间内导通8段电流比如一段5mA8段就是40mA位选引脚肯定扛不住所以要加三极管或达林顿管ULN2003做位驱动段驱动则通过限流电阻直接接GPIO或加595这类串转并芯片。扫描频率建议在1kHz以上每位数码管刷新频率至少100Hz否则会看到明显闪烁。6.2 继电器与感性负载续流是命门继电器线圈是典型的感性负载。当驱动管关断时线圈电流不能突变会产生很高的反向电动势理论上可达几十伏甚至上百伏如果不加保护轻则干扰MCU复位重则击穿驱动管。解决方案是给继电器线圈并联一只续流二极管。具体接法二极管的阴极接线圈的正电源端VCC方向阳极接驱动管导通时电流流出的一端集电极或漏极。这样关断瞬间的反向电流会通过二极管回流到电源把电压钳位在VCC0.7V左右避免高压冲击。选二极管时注意反向恢复时间常规1N4148就能满足绝大多数小继电器场景。驱动多个继电器时可以考虑用ULN2003这种内部集成续流二极管的达林顿管阵列省掉外部二极管布板也能整洁很多。如果驱动的是电机或电磁阀这类更大感性负载建议用光耦把MCU的地和功率地隔离同时在感性负载端加RC吸收电路如100Ω10nF串联和TVS把尖峰压得更死。这块不能为了省成本跳过去功率回路的反电动势烧掉的是整个板子不是一个器件。6.3 ADC采样的阻抗匹配与滤波MCU的ADC输入端不能直接猜一个电阻往里灌电压。ADC采样时内部采样保持电容会从引脚取一点电荷如果源阻抗太高采样期间电容充不满转换结果会偏小且跳动。数据手册里通常给出ADC建议的最大源阻抗例如STM32F1系列为10kΩ左右。如果信号源输出阻抗大于这个值就需要加一级运放做电压跟随器这是标准的阻抗变换方案。模拟信号进ADC前建议加一阶RC低通滤波把高频噪声滤掉。截止频率计算公式为f_c 1 / (2πRC)比如信号本身是100Hz以内的缓慢变化电压R取1kΩC取1μFfc≈159Hz能滤掉大部分电源噪声和辐射干扰。但注意R值不能太大否则影响源阻抗可以在C后面再接一个小的串联电阻到ADC引脚或者按ADC输入的源阻抗要求调整。参考电压VREF的去耦也容易被忽略。如果VREF引脚有独立供电要用低ESR的陶瓷电容去耦100nF1μF并联并尽量靠近引脚。内部基准源同样需要去耦否则ADC读数会梯度漂移尤其在高增益采集场景下会非常明显。7. 板子上电前的最后检查清单与调试顺序前面讲完了各路外围的设计逻辑这部分把“拿到一块新板怎么检查”这个实操流程收个尾。很多故障是可以在上电前被发现的但大多数人没有养成系统性检查的习惯才导致上电就冒烟。7.1 上电前用万用表必做的几项检查我的习惯流程是“先不插芯片先测电源”。具体如下万用表蜂鸣挡测VDD和GND之间是否短路。如果短路先不要上电排查电源网络里有没有贴错电容、电感或芯片焊反。测每个电源域的焊接点对地阻抗比如3.3V对地应该有几百欧以上的直流阻抗LDO输出电容充电后慢慢上升如果接近0Ω说明负载或电容短路。检查LDO/DCDC的输入输出方向输入输出电容极性有没有装反。检查MCU供电引脚有没有用万用表与电源网络连通常见问题是引脚虚焊导致后面怎么调都没用。确认合格后用可调电源限流100mA左右上电观察电流是否异常。如果电流瞬间飙到几百毫安立刻断电检查不要反复上电试运气。7.2 示波器重点看哪几个波形上电后会用到示波器的场景主要是三个看VDD上电波形电压是缓慢爬升还是快速达到稳定有没有尖峰电平平不平确认电源芯片相位裕度是否正常。看复位引脚VDD稳定后复位脚应该在几十到几百毫秒内跳变到正常电平。如果一直保持在复位状态查复位芯片使能引脚和上拉电阻。看晶振波形正常工作时晶振引脚能看到正弦波幅度一般在几百毫伏到几伏之间。若无波形或幅度异常检查负载电容和芯片供电。通信波形也建议看一眼。I2C的SCL/SDA上升沿如果明显倾斜说明上拉电阻偏大UART的TX/RX用示波器量波特率偏差误差超过3%就需要调晶振或代码配置。7.3 我的调试顺序与习惯做过的项目多了我会坚持一个原则先让最小系统跑起来再插外设永远不要一次性把所有模块都解锁。具体顺序是焊好MCU、电源、复位、晶振、SWD接口下载一个LED闪烁程序确认最小系统正常工作。再依次验证UART打印、I2C扫描、SPI读取等通信外设每加一个模块就测一次出现异常能立刻定位是新增模块的问题。驱动类负载电机、继电器、数码管放在最后接并且第一次上电前检查续流和限流是否齐全。每改一处硬件就重新测试一遍不要改动多处后一次性上电否则坏了都不知道是哪边引起的。这个习惯在初期看费时间实际能省下大量排查精力。像“MCU日志存储”“芯片低功耗”这类问题其实也是外围电路的一部分日志存储要考虑Flash擦写寿命和掉电保护低功耗设计要关注LDO静态电流、外部上下拉电阻在睡眠模式下的漏电路径。这些话题展开可以写好几篇但核心思路仍然是理解每一颗外围器件在对应状态下的行为再决定它该不该保留、选多少值。外围电路设计是门“抠细节”的手艺量级不大但处处是经验。希望这篇入门梳理能帮你少走几步弯路做出来的第一块板子就能跑起来。
返回列表