跳转至

MCU 最小系统与基础 I/O

MCU 不是“接上 3.3 V 就能用”。一套可靠的最小系统要保证它能启动、能下载、能从错误中恢复,并且复位期间不会误开电机或电磁阀。


一、先选 MCU 资源,不先选型号后缀

从接口和实时任务反推资源:

需求 对 MCU 的资源要求
多路电机 PWM 高级/通用定时器通道、互补输出、死区、刹车输入
增量编码器 支持编码器模式的定时器,或足够快的输入捕获
多路模拟采样 ADC 通道、采样率、分辨率、DMA、参考电压能力
CAN/RS485/上位机 足够的 CAN(FD)、UART,且引脚复用不冲突
1 kHz 控制循环 定时器、FPU/DSP 性能、确定的中断延迟
USB 芯片原生 USB 外设与满足精度的时钟源
安全关断 定时器 Break、比较器输出路由、独立看门狗

1.1 建立 Pin Map

画原理图前用表格锁定引脚:

功能 / MCU 引脚 / 复用编号 / 电压域 / 上电默认态
是否 5 V 容忍 / 是否影响下载 / PCB 位置 / 备用方案

重点检查:

  • PWM、编码器和输入捕获是否属于合适的定时器;
  • ADC 引脚是否连接目标 ADC 实例和通道;
  • CAN、UART、SPI 的复用组合能否同时存在;
  • SWD/JTAG 引脚有没有被普通外设占用;
  • 所谓 5 V 容忍是否也适用于模拟模式、掉电状态和目标封装;
  • 高速、晶振和模拟脚能否在 PCB 上保持短路径;
  • 预留备用 GPIO、一个日志串口和若干测试点。

二、MCU 最小系统包含什么

flowchart LR
    P[3.3 V 电源与去耦] --> MCU[MCU]
    R[复位与电源监控] --> MCU
    B[BOOT / 模式配置] --> MCU
    C[内部 RC / 外部晶振] --> MCU
    D[SWD/JTAG 下载调试] --> MCU
    W[看门狗与安全使能] --> MCU

2.1 电源脚与去耦

  • 每个 VDD/VSS 对按硬件设计指南配置去耦,常见起点为每脚 100 nF;
  • MCU 电源入口放 1~10 µF 局部储能;
  • VDDA、VREF、VBAT、VCAP 等特殊电源脚严格按手册连接;
  • 裸露焊盘若要求接地/散热,不能遗漏;
  • 多单元原理图符号要检查是否藏有独立电源单元;
  • 去耦电容的 PCB 回路要短,原理图上“有电容”不代表布局有效。

检查所有电源脚

MCU 能偶尔启动不代表供电正确。漏接一个 VDD/VSS、VCAP 电容值错误或 VDDA 悬空,都可能表现为 ADC 异常、特定外设失效或温度变化后死机。

2.2 复位

复位电路通常包括:

  • 复位脚的确定上拉/下拉;
  • 手动复位按键;
  • 下载器可控制的 NRST;
  • 必要时外部电源监控/复位芯片。

不要机械照搬“10 kΩ + 100 nF”。某些 MCU 的复位脚内部已有上拉,外部电容会影响下载时序或复位脉宽。值和最大电容以目标芯片硬件指南为准。

若电源上升很慢、3.3 V 有跌落或系统安全要求较高,外部电源监控芯片通常比简单 RC 更确定:只有电压超过门限并稳定一段时间后才释放复位。

2.3 BOOT 与模式脚

  • BOOT、模式选择和地址脚都用外部电阻定义正常状态;
  • 调试需要切换时用跳帽、拨码或测试点;
  • 不依赖 MCU 内部弱上下拉作为关键安全默认态;
  • 检查复位采样后该引脚是否会变成普通 GPIO,外部电路会不会冲突。

2.4 时钟

情况 选择
一般控制、UART 误差可接受 内部 RC 可能足够
USB、精确采样、同步通信 外部晶体/有源时钟或校准时钟
低功耗 RTC 32.768 kHz 晶体或外部低速时钟

晶体负载关系:

\[C_L\approx\frac{C_1C_2}{C_1+C_2}+C_{stray}\]

\(C_1=C_2=C\) 时,近似 \(C\approx2(C_L-C_{stray})\)。电容不应固定照抄 20 pF;还要检查 MCU 振荡器跨导能力、晶体 ESR 和驱动等级。

PCB 上晶体靠近引脚、走线短且对称,晶振网络下方不穿越高速或大电流信号。

2.5 下载与恢复接口

首板至少引出:

接口 建议包含
SWD SWDIO、SWCLK、GND、目标电压参考、NRST
日志 UART TX、RX、GND,并标明 3.3 V 逻辑电平
启动恢复 BOOT/下载模式和复位测试点
电源测试点 3V3、VDDA/VREF(若独立)、GND

下载器的目标电压参考通常用于识别 IO 电平,不应默认把它作为给整板供电的大电流来源。


三、上电默认状态比程序更早生效

MCU 从上电到程序配置 GPIO 之间,输出往往处于高阻或带内部弱上下拉状态。所有可能造成运动、发热或误选中的信号都要用外部电阻定义:

信号 推荐默认态
电机/驱动器 EN 硬件下拉,默认关闭
MOS 栅极 下拉或上拉到关闭状态
SPI 片选 CS 拉到未选中状态
RS485 DE 默认关闭发送,避免占用总线
传感器 load switch EN 按系统安全策略定义,通常默认关闭
急停复位/故障清除 不允许上电自动清故障

网络名直接表示有效电平,例如 MOTOR_ENVALVE_ENFAULT_NCS_IMU_N,减少软硬件对极性的误解。


四、LED、蜂鸣器和逻辑输出

4.1 LED 限流

\[R=\frac{V_{GPIO}-V_F}{I_{LED}}\]

3.3 V GPIO 驱动红色 LED,若 \(V_F=1.8\,V\)、目标 3 mA:

\[R=\frac{3.3-1.8}{0.003}=500\,\Omega\]

取标准值 510 Ω。状态灯通常 1~5 mA 已足够。还要检查单个 GPIO、每个 IO 组和芯片总灌/拉电流限制。

LED 可接成高电平或低电平点亮。低电平点亮时网络名可写 LED_RUN_N

4.2 何时加三极管或 MOS

负载 推荐驱动
几 mA LED GPIO + 限流电阻
有源蜂鸣器、小灯、多颗 LED NPN 三极管或小 N-MOS
数百 mA 风扇、灯带、电磁阀 逻辑级功率 MOS
双向电机 H 桥,不能用单个 MOS 完成正反转
高边断电 P-MOS 或专用 load switch

NPN 三极管作为开关时需要基极限流电阻,并按饱和所需基极电流检查 MCU 能力。电流更大时,MOS 通常损耗更低。


五、低边 MOS 开关

低边开关适合负载一端固定接正电源,另一端允许由 MOS 接地:

VLOAD ── 负载 ── Drain  N-MOS  Source ── GND
                       Gate
MCU ── 10~100 Ω ───────┤
                10~100 kΩ
                      GND

5.1 MOS 选型顺序

  1. \(V_{DS}\) 高于电源最高值和关断尖峰并留裕量;
  2. 数据手册在实际 \(V_{GS}\)(如 2.5 V/3.3 V)下保证 \(R_{DS(on)}\)
  3. 导通损耗初算 \(P_{cond}=I^2R_{DS(on)}\)
  4. PWM 时再计算开关损耗和栅极驱动能力;
  5. 封装、铜面积和热阻能排出这些热量;
  6. 脉冲、短路或线性工作时检查安全工作区 SOA;
  7. 感性负载有明确的续流/钳位路径。

不要用阈值电压选 MOS

\(V_{GS(th)}\) 只表示 MOS 刚流过很小的测试电流,不表示完全导通。若器件只给 10 V 栅压下的导通电阻,它不能被当作 3.3 V 逻辑级 MOS。

5.2 栅极电阻和下拉电阻

  • 栅极串阻限制 MCU 瞬态充放电电流、减小振铃;10~100 Ω 可作起点;
  • 下拉 10~100 kΩ 确保 MCU 高阻时 MOS 关闭;
  • 阻值越大,开关越慢、损耗可能增加;越小,驱动峰值电流和 EMI 越大;
  • 大栅电荷或高频 PWM 使用专用栅极驱动器,不让 GPIO 硬扛。

5.3 感性负载续流

继电器、电磁阀和线圈关断时,电流不能瞬间归零:

        ┌──── 线圈 ────┐
VLOAD ──┤              ├── MOS Drain
        └──|<|─────────┘
           续流二极管
  • 二极管正常时反向,关断时提供续流;
  • 额定电流、反向耐压和脉冲能量满足线圈;
  • 普通二极管钳位低、释放慢;需要快速释放时可按线圈和 MOS 耐压采用 TVS/齐纳钳位;
  • H 桥电流双向,按驱动器参考设计处理,不能简单在电机两端并一颗二极管。

六、按键、限位和普通数字输入

6.1 板内按键

常见电路:

3V3 ── 10 kΩ 上拉 ──┬── MCU GPIO
                    ├── 10~100 nF 到 GND(可选)
按键 ───────────────┴── GND

按下为低电平。硬件 RC 只能抑制部分毛刺,机械抖动仍建议软件消抖,例如状态稳定 5~20 ms 后确认。

6.2 外部长线开关

板外线缆不要只依赖内部弱上拉:

连接器 → ESD → 串联限流 → RC → 施密特缓冲/MCU
                       外部确定上拉/下拉

设计时确认:

  • 开路和断线时进入哪个状态;
  • 短路到地/电源时电阻能否限制电流;
  • 输入负电压或超过 3.3 V 时由谁钳位;
  • RC 截止频率不会滤掉有效脉冲;
  • 机械限位若承担安全功能,同时进入硬件关断链。

6.3 24 V 工业开关量

先确认传感器类型:

  • NPN 开漏/集电极开路:动作时把输出拉向 0 V;
  • PNP 输出:动作时输出接近 24 V;
  • 推挽输出:能主动拉高和拉低。

24 V 不能直接接 MCU。可根据隔离和速度要求选择:

方案 适合场景
电阻分压 + 钳位 + 施密特 共地、成本低、环境受控
三极管/比较器转换 需要明确阈值与迟滞
光耦输入 速度不高、需要隔离且可接受 CTR 变化
数字隔离器 + 前端 速度较高、边沿和时序要求明确

电阻要按 24 V 上限、可能的过压和自身功耗计算,比较器应加迟滞避免在门限附近抖动。


七、逻辑电平转换

信号类型 推荐方案 不推荐做法
单向推挽 专用电平转换器或带容忍输入缓冲器 把所有场景都用分压解决
双向推挽/方向已知总线 带 DIR/OE 的总线收发器 小 MOS 通用套用
I²C 开漏 I²C 双向转换器或合适的小 MOS 方案 推挽转换器直接争用总线
高速接口 对应协议专用 PHY/转换器 面包板式电阻网络

注意掉电状态:一侧 5 V 存在而 3.3 V 域关闭时,转换器是否允许输入、是否通过保护二极管反向给 MCU 供电。关键器件要查 Ioff、partial power-down 或 back-powering 说明。


八、MCU 与基础 I/O Checklist

  • Pin map 已核对复用、定时器、ADC、下载口和电压容忍;
  • 所有 VDD/VSS、VDDA/VREF/VCAP/VBAT 和裸露焊盘正确;
  • 复位、BOOT、时钟按目标 MCU 指南设计;
  • SWD、NRST、目标电压和日志 UART 可直接接入;
  • 驱动 EN、MOS、CS、DE 在复位期间均为安全状态;
  • GPIO 电流没有超过单脚、端口组和芯片总限制;
  • MOS 的导通电阻是在实际栅压下保证的;
  • 感性负载有经过能量核算的续流/钳位;
  • 板外数字输入有确定状态、限流、滤波和 ESD;
  • 电平转换已检查方向、速率和掉电反灌。

下一篇进入传感器与模拟前端,把真实世界的电压、电流、温度和位置可靠地送进 MCU。