1. 输入阻抗(Input Impedance)—— "单片机有多挑食"
定义:输入阻抗是指单片机引脚在接收外部信号时,对信号源呈现的等效阻抗。它决定了单片机从信号源“索取”多少电流。
核心特点:
- 输入阻抗越高,单片机对前级电路的影响越小(几乎不吸收电流)。
- 输入阻抗越低,单片机可能“吃掉”信号源的电流,导致信号衰减或失真。
1.1 输入阻抗在单片机中的具体应用
(1) ADC(模数转换)采样
- 问题:当单片机ADC引脚直接连接高阻抗传感器(如光敏电阻、电位器)时,如果ADC输入阻抗不够高,会导致分压误差。
- 举例:
- 电位器阻值:10kΩ
- STM32 ADC输入阻抗:约50kΩ(典型值)
- 实际采样电压 = 信号源电压 × (ADC输入阻抗 / (电位器阻值 + ADC输入阻抗))
- 若信号源电压=3.3V,则实际采样电压=3.3V × (50kΩ / (10kΩ + 50kΩ)) ≈ 2.75V(误差约16.7%)
- 举例:
分压电阻原公式
- 解决方案:
- 加电压跟随器(Buffer):使用运放(如LM358)缓冲,运放输入阻抗可达1MΩ以上,几乎不影响信号。
- 降低传感器输出阻抗:例如,光敏电阻+固定电阻分压后,再用运放缓冲。
(2) 按键检测(GPIO输入模式)
- 上拉/下拉输入模式:
- 输入阻抗高 → 更容易检测微小电流变化(如触摸按键、电容式感应)。
- 输入阻抗低 → 可能误判(如潮湿环境下漏电流导致误触发)。
- 典型值:
- STM32 GPIO输入阻抗:约50kΩ~1MΩ(取决于配置)。
- 机械按键通常直接接GPIO,但长线传输时需考虑阻抗匹配(防干扰)。
(3) 通信接口(UART、I2C、SPI)
- I2C总线:
- 总线上拉电阻(如4.7kΩ)的选择需考虑所有设备的输入阻抗。
- 若设备输入阻抗太低(如某些老式传感器),可能导致信号拉不高(逻辑“1”电压不足)。
- UART通信:
- 长距离传输(如RS485)时,接收端输入阻抗需匹配(通常120Ω终端电阻)。
1.2 如何测量/计算输入阻抗?
- 方法1:查数据手册
- 例如,STM32的GPIO输入漏电流典型值±1μA(@3.3V)。
- 输入阻抗 ≈ 电压 / 漏电流 = 3.3V / 1μA = 3.3MΩ。
- 方法2:实验测量
- 接可变电阻分压,观察ADC采样值变化,反推输入阻抗。
2. 输出阻抗(Output Impedance)—— "单片机有多大力气"
定义:输出阻抗是指单片机引脚在输出信号时,内部等效电阻。它决定了单片机驱动外部负载的能力。
核心特点:
- 输出阻抗越低,驱动能力越强(电压不易被拉低)。
- 输出阻抗越高,接负载后电压下降严重(如LED变暗、电机转速不稳)。
2.1 输出阻抗在单片机中的具体应用
(1) GPIO驱动LED
- STM32 GPIO输出阻抗:约25Ω(数据手册参数)。
- 直接驱动LED:
- 假设LED压降2V,限流电阻计算需包含输出阻抗!
- 错误示范:忽略输出阻抗,计算电阻 = (3.3V - 2V) / 10mA = 130Ω → 实际电流可能只有8mA(LED变暗)。
- 正确计算:总阻抗 = 输出阻抗 + 限流电阻 → 需调整电阻值。
(2) 驱动MOS管(如控制电机)
- MOS管栅极等效电容:几千pF(如IRF540N的Ciss≈1800pF)。
- 问题:
- 若单片机输出阻抗高(如100Ω),栅极充电慢 → MOS管开关损耗大(发热)。
- 例如,充电时间常数 τ = R × C = 100Ω × 1800pF = 180ns → PWM频率高时可能无法完全开关。
- 解决方案:
- 加栅极驱动芯片(如IR2104,输出阻抗<1Ω)。
- 用推挽输出模式(降低输出阻抗)。
(3) 电平转换(3.3V ↔ 5V)
- 问题:
- 3.3V单片机直接驱动5V设备(如某些老式LCD),若输出阻抗高,可能导致逻辑“1”电压不足(如只有2.5V)。
- 解决方案:
- 使用电平转换芯片(如TXB0104,输出阻抗低)。
- 或使用开漏输出+上拉电阻(降低等效输出阻抗)。
2.2 如何测量/计算输出阻抗?
- 方法1:查数据手册
- 例如,STM32的GPIO在IOL=8mA时,VOL=0.4V。
- 输出阻抗 ≈ VOL / IOL = 0.4V / 8mA = 50Ω。
- 方法2:负载调整法
- 空载测量输出电压V1,接已知负载R后测量V2。
- 输出阻抗 = (V1 - V2) / (V2 / R)。
3. 阻抗匹配的黄金法则(单片机版)
典型错误案例:
- 错误1:用单片机GPIO直接驱动继电器线圈(线圈等效阻抗低,如100Ω)。
- 结果:单片机IO口电流超限(如STM32最大25mA),导致重启或烧毁。
- 解决:加三极管/NMOS(如2N7000)驱动。
- 错误2:长线传输UART信号(如5米),未考虑阻抗匹配。
- 结果:信号反射、数据错误。
- 解决:加RS485芯片(阻抗匹配+差分传输)。
4. 高频情况(SPI、PWM)的特殊考虑
- SPI通信(1MHz以上):
- PCB走线阻抗需匹配(通常50Ω),否则信号反射导致数据错误。
- 解决方案:加串联电阻(如22Ω)或缩短走线长度。
- PWM驱动电机(10kHz以上):
- 关注驱动级的输出阻抗(影响MOS管开关速度)。
- 例如,输出阻抗高 → PWM上升沿缓慢 → 电机效率降低。
5. 总结
特性 | 输入阻抗 | 输出阻抗 |
---|---|---|
定义 | 单片机接收信号时的等效阻抗 | 单片机输出信号时的等效阻抗 |
理想值 | 越高越好(减少信号衰减) | 越低越好(增强驱动能力) |
典型应用 | ADC采样、按键检测、通信接收 | LED驱动、电机控制、通信发送 |
测量方法 | 查漏电流或实验分压法 | 查VOL/IOL或负载调整法 |
常见问题 | 信号衰减、采样误差 | 电压跌落、驱动不足 |
解决方案 | 加电压跟随器、提高输入阻抗 | 加驱动芯片、降低输出阻抗 |
记住核心原则:
- 前级输出阻抗 << 后级输入阻抗,系统才能稳定工作!
- 高频信号(SPI、PWM)需额外考虑阻抗匹配。