跳转至

嵌入式电路基础:电阻、电容、电感

学习目标

完成本文学习后,你将能够:

  • 理解电阻、电容、电感的基本特性和工作原理
  • 掌握各类元件的关键参数和选型方法
  • 能够进行基本的电路计算(分压、滤波、时间常数等)
  • 了解常见应用场景和设计技巧
  • 避免元件选型和使用中的常见错误

前置要求

在开始本文学习之前,你需要:

知识要求: - 了解基本的电学概念(电压、电流、功率) - 熟悉欧姆定律(V = I × R) - 了解串联和并联电路的基本概念 - 有一定的数学基础(简单的代数运算)

技能要求: - 能够阅读简单的电路图 - 了解基本的电路符号 - 熟悉常用的单位换算

推荐但非必需: - 有使用万用表的经验 - 了解基本的焊接技能 - 熟悉常见的电子元件外观

概述

电阻、电容和电感是电子电路中最基本的三大被动元件,它们就像建筑中的砖瓦一样,是构建复杂电路的基础。无论是简单的LED闪烁电路,还是复杂的微控制器系统,都离不开这三种基本元件。

为什么要学习基本元件

  1. 电路设计基础:所有电路都由基本元件组成
  2. 参数计算:需要根据需求选择合适的元件参数
  3. 故障排查:很多问题都与元件选型或损坏有关
  4. 成本优化:合理选型可以降低成本
  5. 性能提升:正确使用元件可以提升电路性能

三大元件的基本特性对比

元件 主要作用 对直流 对交流 储能形式
电阻 限流、分压 阻碍 阻碍 不储能(转化为热)
电容 滤波、耦合 隔断 通过 电场能量
电感 滤波、储能 通过 阻碍 磁场能量

第一部分:电阻(Resistor)

什么是电阻

电阻是一种限制电流流动的元件,它将电能转化为热能。电阻的基本单位是欧姆(Ω),符号为R。

电阻的核心特性

  1. 阻碍电流
  2. 限制电路中的电流大小
  3. 遵循欧姆定律:V = I × R
  4. 对直流和交流都有阻碍作用

  5. 功率消耗

  6. 将电能转化为热能
  7. 功率计算:P = I² × R = V² / R
  8. 需要考虑散热问题

  9. 分压作用

  10. 串联电阻可以分压
  11. 输出电压与电阻值成正比
  12. 常用于电压调节

电阻的主要参数

1. 阻值(Resistance)

阻值是电阻最基本的参数,表示对电流的阻碍程度。

常用单位: - Ω(欧姆):基本单位 - kΩ(千欧):1kΩ = 1000Ω - MΩ(兆欧):1MΩ = 1000kΩ = 1,000,000Ω

标准阻值系列

电阻通常采用E系列标准值,常见的有E12、E24、E96系列:

E12系列(精度±10%):
1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2

E24系列(精度±5%):
1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0,
3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1

2. 精度(Tolerance)

精度表示实际阻值与标称值的偏差范围。

常见精度等级: - ±1%:高精度,用于精密电路 - ±5%:常用精度,一般应用 - ±10%:低精度,要求不高的场合 - ±20%:粗精度,很少使用

色环表示: - 金色:±5% - 银色:±10% - 棕色:±1% - 红色:±2%

3. 额定功率(Power Rating)

额定功率表示电阻能够安全耗散的最大功率。

常见功率等级: - ⅛W (0.125W):小信号电路 - ¼W (0.25W):最常用 - ½W (0.5W):中等功率 - 1W, 2W, 5W:大功率应用

功率选择原则

实际功率 ≤ 额定功率 × 降额系数

降额系数通常取0.5-0.7,即:
如果计算功率为0.2W,应选择0.5W或更大功率的电阻

电阻的色环读数

色环电阻通过颜色编码表示阻值和精度。

四色环电阻(最常见):

颜色对照表:
黑-0  棕-1  红-2  橙-3  黄-4
绿-5  蓝-6  紫-7  灰-8  白-9

读数方法:
┌─────┬─────┬─────┬─────┐
│ 第1环│ 第2环│ 第3环│ 第4环│
│ 十位│ 个位│ 倍数│ 精度│
└─────┴─────┴─────┴─────┘

示例:棕-黑-红-金
= 1  0  ×100  ±5%
= 10 × 100 = 1000Ω = 1kΩ ±5%

五色环电阻(高精度):

┌─────┬─────┬─────┬─────┬─────┐
│ 第1环│ 第2环│ 第3环│ 第4环│ 第5环│
│ 百位│ 十位│ 个位│ 倍数│ 精度│
└─────┴─────┴─────┴─────┴─────┘

示例:棕-黑-黑-棕-棕
= 1  0  0  ×10  ±1%
= 100 × 10 = 1000Ω = 1kΩ ±1%

电阻的应用场景

1. 限流电阻

限制电路中的电流,保护元件不被过流损坏。

LED限流电阻计算

/*
 * LED限流电阻计算
 * 
 * 已知条件:
 * - 电源电压 Vcc = 5V
 * - LED正向压降 Vf = 2V
 * - LED工作电流 If = 20mA
 * 
 * 计算公式:
 * R = (Vcc - Vf) / If
 *   = (5V - 2V) / 0.02A
 *   = 3V / 0.02A
 *   = 150Ω
 * 
 * 选择标准值:150Ω(E24系列)或 180Ω(更安全)
 * 
 * 功率计算:
 * P = I² × R = (0.02)² × 150 = 0.06W
 * 选择:1/4W (0.25W) 电阻
 */

// 实际电路示例
#define VCC         5.0f    // 电源电压
#define LED_VF      2.0f    // LED压降
#define LED_IF      0.02f   // LED电流(A)

float calculate_led_resistor(void) {
    float R = (VCC - LED_VF) / LED_IF;
    float P = LED_IF * LED_IF * R;

    printf("计算电阻值: %.1f Ω\n", R);
    printf("功率消耗: %.3f W\n", P);
    printf("建议选择: 150Ω 或 180Ω, 1/4W\n");

    return R;
}

电路图

    VCC (5V)
      ├─── R (150Ω)
      ├─── LED
     GND

2. 分压电阻

通过串联电阻分压,获得所需的电压值。

分压公式

输入电压 Vin
    ├─── R1
    ├─── Vout = Vin × R2 / (R1 + R2)
    ├─── R2
   GND

示例:
Vin = 5V, R1 = 10kΩ, R2 = 10kΩ
Vout = 5V × 10kΩ / (10kΩ + 10kΩ) = 2.5V

分压电路代码示例

/**
 * @brief  计算分压电阻
 * @param  vin: 输入电压
 * @param  vout: 期望输出电压
 * @param  r1: 上拉电阻(已知)
 * @retval 下拉电阻R2的值
 */
float calculate_divider_r2(float vin, float vout, float r1) {
    // Vout = Vin × R2 / (R1 + R2)
    // R2 = R1 × Vout / (Vin - Vout)

    if (vout >= vin) {
        printf("错误:输出电压不能大于等于输入电压\n");
        return 0;
    }

    float r2 = r1 * vout / (vin - vout);

    printf("输入电压: %.2f V\n", vin);
    printf("输出电压: %.2f V\n", vout);
    printf("R1: %.1f Ω\n", r1);
    printf("计算R2: %.1f Ω\n", r2);

    return r2;
}

// 使用示例
void voltage_divider_example(void) {
    // 将5V分压到3.3V
    float r2 = calculate_divider_r2(5.0, 3.3, 10000);
    // 输出:R2 = 19411.8Ω,选择标准值20kΩ
}

3. 上拉/下拉电阻

确保信号线在未驱动时有确定的电平状态。

上拉电阻

    VCC
     ├─── R (上拉电阻)
     ├─── 信号线 ──→ MCU输入
    开关/三态输出
    GND

下拉电阻

    信号线 ──→ MCU输入
     ├─── R (下拉电阻)
    GND

上拉/下拉电阻选择

/*
 * 上拉/下拉电阻选择指南
 * 
 * 阻值范围:1kΩ - 100kΩ
 * 
 * 选择原则:
 * 1. 阻值太小:功耗大,驱动能力要求高
 * 2. 阻值太大:易受干扰,上升/下降时间慢
 * 
 * 常用值:
 * - I2C总线:4.7kΩ - 10kΩ
 * - 按键输入:10kΩ - 47kΩ
 * - 复位引脚:10kΩ
 * - GPIO输入:10kΩ - 100kΩ
 */

// I2C上拉电阻计算
#define I2C_VCC         3.3f    // 电源电压
#define I2C_VOL_MAX     0.4f    // 低电平最大值
#define I2C_SINK_CURRENT 3e-3f  // 灌电流(3mA)
#define I2C_BUS_CAP     400e-12f // 总线电容(400pF)
#define I2C_RISE_TIME   300e-9f  // 上升时间要求(300ns)

float calculate_i2c_pullup(void) {
    // 最小值:确保低电平有效
    float r_min = (I2C_VCC - I2C_VOL_MAX) / I2C_SINK_CURRENT;

    // 最大值:满足上升时间要求
    // t_rise = 0.7 × R × C
    float r_max = I2C_RISE_TIME / (0.7 * I2C_BUS_CAP);

    printf("I2C上拉电阻范围: %.1f Ω - %.1f Ω\n", r_min, r_max);
    printf("推荐值: 4.7kΩ\n");

    return 4700;  // 推荐值
}

电阻选型指南

选型步骤

  1. 确定阻值
  2. 根据电路功能计算所需阻值
  3. 选择最接近的标准值
  4. 考虑精度要求

  5. 确定功率

  6. 计算实际功率消耗
  7. 应用降额系数(0.5-0.7)
  8. 选择合适的功率等级

  9. 确定精度

  10. 精密电路:±1%
  11. 一般电路:±5%
  12. 要求不高:±10%

  13. 确定封装

  14. 贴片(SMD):0201, 0402, 0603, 0805, 1206
  15. 插件(THT):¼W, ½W, 1W

常见错误

错误做法: - 功率选择不足,导致电阻过热 - 精度要求过高,增加成本 - 使用非标准值,采购困难 - 忽略温度系数影响

正确做法: - 功率留有余量(降额50%) - 根据实际需求选择精度 - 优先使用E24系列标准值 - 考虑工作温度范围

第二部分:电容(Capacitor)

什么是电容

电容是一种储存电荷的元件,由两个导体板和中间的绝缘介质组成。电容的基本单位是法拉(F),符号为C。

电容的核心特性

  1. 储存电荷
  2. 储存电场能量
  3. 电荷量 Q = C × V
  4. 能量 E = ½ × C × V²

  5. 隔直通交

  6. 阻止直流电流通过
  7. 允许交流电流通过
  8. 频率越高,阻抗越小

  9. 充放电特性

  10. 充电时电压逐渐上升
  11. 放电时电压逐渐下降
  12. 时间常数 τ = R × C

电容的主要参数

1. 容值(Capacitance)

容值表示电容储存电荷的能力。

常用单位: - F(法拉):基本单位(很少使用) - mF(毫法):1mF = 0.001F = 1000μF - μF(微法):1μF = 0.000001F = 1000nF - nF(纳法):1nF = 0.001μF = 1000pF - pF(皮法):1pF = 0.001nF

单位换算

1F = 1000mF = 1,000,000μF = 1,000,000,000nF = 1,000,000,000,000pF

常用范围:
- 去耦电容:0.1μF (100nF)
- 滤波电容:10μF - 1000μF
- 定时电容:1nF - 100μF
- 高频旁路:1pF - 100pF

2. 额定电压(Voltage Rating)

额定电压是电容能够安全工作的最大电压。

常见电压等级: - 6.3V, 10V, 16V:低压电路 - 25V, 35V, 50V:常用电压 - 100V, 200V, 400V:高压应用

电压选择原则

工作电压 ≤ 额定电压 × 降额系数

降额系数:
- 陶瓷电容:0.5-0.6
- 电解电容:0.6-0.7
- 钽电容:0.5

示例:
5V电路中的电解电容,应选择:
5V / 0.7 = 7.14V,选择10V或16V

3. 介质类型

不同介质的电容有不同的特性。

常见介质类型

类型 容值范围 精度 特点 应用
陶瓷电容 1pF-10μF ±5%-±20% 体积小,高频特性好 去耦、高频滤波
电解电容 1μF-10000μF ±20% 容值大,有极性 电源滤波、储能
钽电容 0.1μF-1000μF ±10%-±20% 稳定性好,有极性 精密滤波
薄膜电容 100pF-10μF ±1%-±10% 精度高,无极性 精密电路

电容的应用场景

1. 去耦电容(Decoupling Capacitor)

去耦电容用于滤除电源线上的高频噪声,为IC提供稳定的电源。

去耦电容配置

/*
 * 去耦电容配置指南
 * 
 * 基本原则:
 * 1. 每个IC的电源引脚都应配置去耦电容
 * 2. 容值通常为0.1μF(100nF)
 * 3. 尽可能靠近IC电源引脚放置
 * 4. 大容量电容(10μF-100μF)用于整体滤波
 * 
 * 典型配置:
 * - 0.1μF陶瓷电容:靠近IC(<5mm)
 * - 10μF电解电容:电源入口处
 * - 可选:1μF陶瓷电容(中频滤波)
 */

// 电路示例
/*
    VCC ──┬── 10μF ──┬── 0.1μF ──┬── VCC (IC)
          │          │           │
         GND        GND         GND

    说明:
    - 10μF:滤除低频噪声,提供瞬态电流
    - 0.1μF:滤除高频噪声,响应速度快
    - 多个0.1μF并联可以覆盖更宽频率范围
*/

去耦电容计算

/**
 * @brief  计算所需去耦电容
 * @param  ic_current: IC瞬态电流(A)
 * @param  voltage_drop: 允许的电压降(V)
 * @param  response_time: 响应时间(s)
 * @retval 所需电容值(F)
 */
float calculate_decoupling_cap(float ic_current, 
                                float voltage_drop, 
                                float response_time) {
    // C = I × t / ΔV
    float capacitance = ic_current * response_time / voltage_drop;

    printf("IC瞬态电流: %.3f A\n", ic_current);
    printf("允许电压降: %.3f V\n", voltage_drop);
    printf("响应时间: %.2e s\n", response_time);
    printf("所需电容: %.2e F = %.1f μF\n", 
           capacitance, capacitance * 1e6);

    return capacitance;
}

// 使用示例
void decoupling_example(void) {
    // STM32F103,瞬态电流100mA,允许压降0.1V,响应时间1μs
    float cap = calculate_decoupling_cap(0.1, 0.1, 1e-6);
    // 结果:1μF,实际使用0.1μF + 10μF组合
}

2. 滤波电容

滤波电容用于平滑电源电压,滤除纹波。

RC滤波电路

输入 ──┬── R ──┬── 输出
       │       │
      C1      C2
       │       │
      GND     GND

截止频率:fc = 1 / (2π × R × C)

滤波电容计算

/**
 * @brief  计算滤波电容
 * @param  ripple_freq: 纹波频率(Hz)
 * @param  load_current: 负载电流(A)
 * @param  ripple_voltage: 允许的纹波电压(V)
 * @retval 所需电容值(F)
 */
float calculate_filter_cap(float ripple_freq, 
                           float load_current, 
                           float ripple_voltage) {
    // C = I / (2 × f × ΔV)
    float capacitance = load_current / (2 * ripple_freq * ripple_voltage);

    printf("纹波频率: %.1f Hz\n", ripple_freq);
    printf("负载电流: %.3f A\n", load_current);
    printf("允许纹波: %.3f V\n", ripple_voltage);
    printf("所需电容: %.2e F = %.1f μF\n", 
           capacitance, capacitance * 1e6);

    return capacitance;
}

// 使用示例
void filter_example(void) {
    // 5V/1A电源,100Hz纹波,允许50mV纹波
    float cap = calculate_filter_cap(100, 1.0, 0.05);
    // 结果:100μF,实际选择220μF或470μF
}

3. 定时电容

与电阻配合,用于产生时间延迟。

RC充放电时间常数

/*
 * RC时间常数
 * 
 * τ = R × C
 * 
 * 充电过程:
 * Vc(t) = Vcc × (1 - e^(-t/τ))
 * 
 * 充电到63.2%:t = τ
 * 充电到95%:t = 3τ
 * 充电到99%:t = 5τ
 * 
 * 放电过程:
 * Vc(t) = Vcc × e^(-t/τ)
 * 
 * 放电到36.8%:t = τ
 * 放电到5%:t = 3τ
 * 放电到1%:t = 5τ
 */

/**
 * @brief  计算RC延时
 * @param  R: 电阻值(Ω)
 * @param  C: 电容值(F)
 * @param  percent: 充电百分比(0-100)
 * @retval 延时时间(s)
 */
float calculate_rc_delay(float R, float C, float percent) {
    // t = -τ × ln(1 - percent/100)
    float tau = R * C;
    float t = -tau * log(1 - percent / 100.0);

    printf("R = %.1f Ω, C = %.2e F\n", R, C);
    printf("时间常数 τ = %.2e s\n", tau);
    printf("充电到 %.0f%% 需要: %.2e s = %.3f ms\n", 
           percent, t, t * 1000);

    return t;
}

// 使用示例
void timing_example(void) {
    // 10kΩ电阻,10μF电容,充电到95%
    float delay = calculate_rc_delay(10000, 10e-6, 95);
    // 结果:约300ms
}

电容选型指南

选型步骤

  1. 确定容值
  2. 根据应用场景选择合适的容值
  3. 去耦:0.1μF
  4. 滤波:10μF-1000μF
  5. 定时:根据RC计算

  6. 确定电压

  7. 应用降额系数
  8. 陶瓷电容:工作电压 × 2
  9. 电解电容:工作电压 × 1.5

  10. 选择介质

  11. 高频去耦:陶瓷电容
  12. 大容量滤波:电解电容
  13. 精密电路:薄膜电容或钽电容

  14. 确定封装

  15. 贴片:0402, 0603, 0805, 1206
  16. 插件:根据容值和电压选择

常见错误

错误做法: - 电解电容接反,导致爆炸 - 电压余量不足,击穿损坏 - 去耦电容距离IC太远,效果差 - 忽略ESR(等效串联电阻)影响

正确做法: - 注意电解电容极性 - 电压留有足够余量 - 去耦电容尽量靠近IC - 高频应用选择低ESR电容

第三部分:电感(Inductor)

什么是电感

电感是一种储存磁场能量的元件,由线圈绕制而成。电感的基本单位是亨利(H),符号为L。

电感的核心特性

  1. 储存磁能
  2. 储存磁场能量
  3. 能量 E = ½ × L × I²
  4. 电流变化时产生感应电动势

  5. 通直阻交

  6. 允许直流电流通过
  7. 阻碍交流电流通过
  8. 频率越高,阻抗越大

  9. 电流连续性

  10. 电流不能突变
  11. 断开时产生高压
  12. 需要续流保护

电感的主要参数

1. 电感量(Inductance)

电感量表示电感储存磁能的能力。

常用单位: - H(亨利):基本单位 - mH(毫亨):1mH = 0.001H = 1000μH - μH(微亨):1μH = 0.001mH = 1000nH - nH(纳亨):1nH = 0.001μH

常用范围

- 电源滤波:10μH - 1mH
- DC-DC转换:1μH - 100μH
- 射频电路:1nH - 100nH
- 共模扼流圈:1mH - 100mH

2. 额定电流(Current Rating)

额定电流包括两个参数:

  1. 饱和电流(Isat)
  2. 电感量下降到标称值的70%-80%时的电流
  3. 超过此值,电感量显著下降
  4. 通常是选型的主要依据

  5. 温升电流(Irms)

  6. 使电感温升达到规定值(如40°C)的电流
  7. 与线圈电阻和散热有关
  8. 影响长期可靠性

电流选择原则

工作电流 ≤ min(Isat, Irms) × 降额系数

降额系数通常取0.7-0.8

3. 直流电阻(DCR)

直流电阻是线圈的电阻值,影响效率和温升。

DCR的影响: - 功率损耗:P = I² × DCR - 压降:V = I × DCR - 效率:η = (Vout × Iout) / (Vin × Iin)

选择原则: - 大电流应用:选择低DCR电感 - 小电流应用:DCR影响较小 - 权衡电感量和DCR

电感的应用场景

1. DC-DC转换器

电感是开关电源的核心元件,用于储能和滤波。

Buck降压电路

Vin ──┬── SW ──┬── L ──┬── Vout
      │        │       │
     GND      GND      C
                      GND

工作原理:
1. SW闭合:电感充电,电流上升
2. SW断开:电感放电,电流下降
3. 输出电压:Vout = Vin × D(D为占空比)

电感选择计算

/**
 * @brief  计算Buck电路电感值
 * @param  vin: 输入电压(V)
 * @param  vout: 输出电压(V)
 * @param  iout: 输出电流(A)
 * @param  fsw: 开关频率(Hz)
 * @param  ripple: 电流纹波系数(0.2-0.4)
 * @retval 所需电感值(H)
 */
float calculate_buck_inductor(float vin, float vout, 
                              float iout, float fsw, 
                              float ripple) {
    // 占空比
    float duty = vout / vin;

    // 电流纹波
    float delta_i = iout * ripple;

    // 电感值:L = (Vin - Vout) × D / (ΔI × fsw)
    float inductance = (vin - vout) * duty / (delta_i * fsw);

    printf("输入电压: %.1f V\n", vin);
    printf("输出电压: %.1f V\n", vout);
    printf("输出电流: %.2f A\n", iout);
    printf("开关频率: %.0f Hz\n", fsw);
    printf("占空比: %.2f\n", duty);
    printf("电流纹波: %.3f A\n", delta_i);
    printf("所需电感: %.2e H = %.1f μH\n", 
           inductance, inductance * 1e6);

    // 饱和电流要求
    float isat_min = iout + delta_i / 2;
    printf("最小饱和电流: %.2f A\n", isat_min);

    return inductance;
}

// 使用示例
void buck_inductor_example(void) {
    // 12V转5V,2A输出,500kHz开关频率,30%纹波
    float L = calculate_buck_inductor(12, 5, 2, 500000, 0.3);
    // 结果:约10μH,选择10μH/3A电感
}

2. EMI滤波

电感用于滤除电磁干扰,保护电路。

共模扼流圈

信号线1 ──┬──╱╲╱╲╱╲──┬── 输出1
          │          │
         GND        GND
          │          │
信号线2 ──┴──╱╲╱╲╱╲──┴── 输出2

特点:
- 对共模噪声呈现高阻抗
- 对差模信号影响小
- 常用于电源输入和通信接口

LC滤波器

/*
 * LC低通滤波器
 * 
 * 输入 ── L ──┬── 输出
 *             │
 *             C
 *             │
 *            GND
 * 
 * 截止频率:fc = 1 / (2π√(LC))
 * 
 * 示例:
 * L = 10μH, C = 10μF
 * fc = 1 / (2π√(10e-6 × 10e-6))
 *    = 1 / (2π × 10e-6)
 *    ≈ 15.9 kHz
 */

/**
 * @brief  计算LC滤波器截止频率
 * @param  L: 电感值(H)
 * @param  C: 电容值(F)
 * @retval 截止频率(Hz)
 */
float calculate_lc_cutoff(float L, float C) {
    float fc = 1.0 / (2 * M_PI * sqrt(L * C));

    printf("电感: %.2e H = %.1f μH\n", L, L * 1e6);
    printf("电容: %.2e F = %.1f μF\n", C, C * 1e6);
    printf("截止频率: %.1f Hz = %.2f kHz\n", fc, fc / 1000);

    return fc;
}

3. 续流保护

电感断开时会产生高压,需要续流二极管保护。

续流电路

VCC ──┬── SW ──┬── L ──┬── 负载
      │        │       │
     GND      D1      GND
             GND

说明:
- SW断开时,电感电流通过D1续流
- 防止产生高压损坏开关
- D1通常使用肖特基二极管(低压降)

电感选型指南

选型步骤

  1. 确定电感量
  2. 根据应用计算所需电感值
  3. DC-DC:根据纹波要求计算
  4. 滤波:根据截止频率计算

  5. 确定电流

  6. 计算最大工作电流
  7. 选择Isat > 工作电流 / 0.7
  8. 选择Irms > 工作电流 / 0.8

  9. 考虑DCR

  10. 大电流应用选择低DCR
  11. 计算功率损耗
  12. 评估温升影响

  13. 选择封装

  14. 贴片:功率电感、屏蔽电感
  15. 插件:大功率应用
  16. 考虑散热和空间

常见错误

错误做法: - 电流超过饱和电流,电感失效 - 忽略DCR,效率低下 - 没有续流保护,产生高压 - 电感布局不当,EMI问题

正确做法: - 电流留有足够余量 - 选择低DCR电感 - 添加续流二极管 - 注意电感布局和屏蔽

第四部分:综合应用与设计技巧

RLC组合电路

1. RC滤波器

一阶RC低通滤波器

/*
 * RC低通滤波器
 * 
 * 输入 ── R ──┬── 输出
 *             │
 *             C
 *             │
 *            GND
 * 
 * 截止频率:fc = 1 / (2πRC)
 * 增益:G(f) = 1 / √(1 + (f/fc)²)
 * 相位:φ(f) = -arctan(f/fc)
 */

/**
 * @brief  设计RC低通滤波器
 * @param  fc: 截止频率(Hz)
 * @param  R: 电阻值(Ω),如果为0则自动选择
 * @retval 电容值(F)
 */
float design_rc_lowpass(float fc, float R) {
    // 如果R未指定,选择常用值
    if (R == 0) {
        R = 10000;  // 默认10kΩ
    }

    // C = 1 / (2π × fc × R)
    float C = 1.0 / (2 * M_PI * fc * R);

    printf("截止频率: %.1f Hz\n", fc);
    printf("电阻: %.1f Ω\n", R);
    printf("电容: %.2e F = %.2f nF\n", C, C * 1e9);

    return C;
}

// 使用示例
void rc_filter_example(void) {
    // 设计1kHz低通滤波器
    float C = design_rc_lowpass(1000, 10000);
    // 结果:约16nF,选择标准值15nF或18nF
}

2. LC谐振电路

串联谐振

/*
 * LC串联谐振电路
 * 
 * 输入 ── L ── C ── 输出
 * 
 * 谐振频率:f0 = 1 / (2π√(LC))
 * 品质因数:Q = (1/R) × √(L/C)
 * 带宽:BW = f0 / Q
 */

/**
 * @brief  计算LC谐振频率
 * @param  L: 电感值(H)
 * @param  C: 电容值(F)
 * @retval 谐振频率(Hz)
 */
float calculate_resonance_freq(float L, float C) {
    float f0 = 1.0 / (2 * M_PI * sqrt(L * C));

    printf("电感: %.2e H\n", L);
    printf("电容: %.2e F\n", C);
    printf("谐振频率: %.2f Hz = %.2f MHz\n", f0, f0 / 1e6);

    return f0;
}

// 使用示例
void resonance_example(void) {
    // 10μH电感,100pF电容
    float f0 = calculate_resonance_freq(10e-6, 100e-12);
    // 结果:约5.03 MHz
}

实用设计技巧

1. 元件并联

电阻并联

总电阻:1/R_total = 1/R1 + 1/R2 + ... + 1/Rn

两个电阻并联:R_total = (R1 × R2) / (R1 + R2)

示例:10kΩ ∥ 10kΩ = 5kΩ

电容并联

总电容:C_total = C1 + C2 + ... + Cn

示例:10μF + 0.1μF = 10.1μF

应用:大小电容并联,覆盖宽频率范围

电感串联

总电感:L_total = L1 + L2 + ... + Ln

示例:10μH + 10μH = 20μH

2. 元件串联

电阻串联

总电阻:R_total = R1 + R2 + ... + Rn

示例:1kΩ + 2kΩ = 3kΩ

应用:获得非标准阻值

电容串联

总电容:1/C_total = 1/C1 + 1/C2 + ... + 1/Cn

两个电容串联:C_total = (C1 × C2) / (C1 + C2)

示例:10μF串联10μF = 5μF

应用:提高耐压等级

3. 温度系数

温度对元件的影响

/*
 * 温度系数(TC)
 * 
 * 电阻:
 * - 金属膜:±50ppm/°C - ±100ppm/°C
 * - 碳膜:±200ppm/°C - ±500ppm/°C
 * - 精密电阻:±5ppm/°C - ±25ppm/°C
 * 
 * 电容:
 * - C0G/NP0:±30ppm/°C(最稳定)
 * - X7R:±15%(-55°C到+125°C)
 * - Y5V:+22%/-82%(温度范围大)
 * 
 * 计算公式:
 * R(T) = R(T0) × [1 + TC × (T - T0)]
 */

/**
 * @brief  计算温度变化后的阻值
 * @param  R0: 参考温度下的阻值(Ω)
 * @param  T0: 参考温度(°C)
 * @param  T: 目标温度(°C)
 * @param  TC: 温度系数(ppm/°C)
 * @retval 目标温度下的阻值(Ω)
 */
float calculate_temp_resistance(float R0, float T0, 
                                float T, float TC) {
    float delta_T = T - T0;
    float R = R0 * (1 + TC * 1e-6 * delta_T);

    printf("参考阻值: %.1f Ω @ %.0f°C\n", R0, T0);
    printf("温度系数: %.0f ppm/°C\n", TC);
    printf("目标温度: %.0f°C\n", T);
    printf("阻值变化: %.3f Ω (%.2f%%)\n", 
           R - R0, (R - R0) / R0 * 100);
    printf("目标阻值: %.1f Ω\n", R);

    return R;
}

常见问题与解决方案

1. 电阻相关问题

Q1: 电阻发热严重怎么办?

A: - 检查功率是否超标 - 增大电阻功率等级 - 使用多个电阻并联分担功率 - 改善散热条件

Q2: 如何选择上拉电阻阻值?

A: - 考虑功耗:阻值越大功耗越小 - 考虑速度:阻值越小上升时间越快 - 考虑驱动能力:确保能拉低电平 - 常用值:4.7kΩ - 10kΩ

2. 电容相关问题

Q1: 电解电容爆炸的原因?

A: - 极性接反 - 电压超过额定值 - 温度过高 - 质量问题

Q2: 去耦电容放多远合适?

A: - 0.1μF陶瓷电容:<5mm - 10μF电解电容:<20mm - 越近越好,减小寄生电感

3. 电感相关问题

Q1: 电感饱和会怎样?

A: - 电感量急剧下降 - 纹波电流增大 - 效率降低 - 可能损坏开关管

Q2: 如何选择续流二极管?

A: - 反向电压 > 输入电压 - 正向电流 > 电感电流 - 优先选择肖特基二极管 - 注意散热

元件测量方法

使用万用表测量

测量电阻

1. 选择电阻档(Ω)
2. 将表笔接触电阻两端
3. 读取显示值
4. 注意:在线测量可能不准确

测量电容

1. 选择电容档(F)
2. 确保电容已放电
3. 将表笔接触电容两端
4. 等待读数稳定
5. 注意:小容量电容可能测不准

测量电感

1. 选择电感档(H)
2. 将表笔接触电感两端
3. 读取显示值
4. 注意:需要专用LCR表测量准确

判断元件好坏

电阻: - 正常:阻值在标称范围内 - 开路:显示无穷大 - 短路:显示0Ω或很小

电容: - 正常:充电后显示容值 - 开路:无充电现象 - 短路:显示0Ω - 漏电:充电后缓慢放电

电感: - 正常:显示电感值,DCR正常 - 开路:显示无穷大 - 短路:显示0Ω或很小

总结

本文详细介绍了嵌入式电路中最基本的三大元件:电阻、电容和电感。

核心要点

  1. 电阻(Resistor)
  2. 限流、分压、上拉/下拉
  3. 关键参数:阻值、精度、功率
  4. 选型要点:功率降额、标准值、精度匹配

  5. 电容(Capacitor)

  6. 去耦、滤波、定时
  7. 关键参数:容值、电压、介质
  8. 选型要点:电压降额、介质选择、ESR考虑

  9. 电感(Inductor)

  10. DC-DC转换、EMI滤波、储能
  11. 关键参数:电感量、饱和电流、DCR
  12. 选型要点:电流余量、DCR优化、续流保护

设计原则

  1. 安全第一
  2. 功率和电压留有余量
  3. 注意极性和耐压
  4. 考虑温度影响

  5. 性能优化

  6. 合理选择参数
  7. 注意布局和布线
  8. 考虑寄生参数

  9. 成本控制

  10. 使用标准值
  11. 避免过度设计
  12. 批量采购优化

最佳实践

  1. 电阻使用
  2. LED限流:计算准确,功率充足
  3. 分压电路:考虑负载影响
  4. 上拉/下拉:平衡功耗和速度

  5. 电容使用

  6. 去耦电容:靠近IC,多种容值组合
  7. 滤波电容:容值充足,电压余量
  8. 电解电容:注意极性,定期更换

  9. 电感使用

  10. DC-DC:电流余量,低DCR
  11. EMI滤波:合适的电感量
  12. 续流保护:必须添加

延伸阅读

推荐进一步学习的内容:

  1. 进阶主题
  2. PCB设计入门:从原理图到PCB
  3. 电源电路设计:LDO与DC-DC选择
  4. 信号完整性分析基础

  5. 相关知识

  6. 数字电路基础:逻辑门与时序电路
  7. 晶振电路设计与调试
  8. EMC设计实战:降低电磁干扰

  9. 实践项目

  10. LED闪烁电路设计
  11. 简易电源设计

参考资料

  1. 《电子元器件应用手册》- 胡斌
  2. 《实用电子元器件与电路基础》- Paul Scherz
  3. 《The Art of Electronics》- Paul Horowitz
  4. 各元件厂商数据手册(Murata、TDK、Vishay等)

练习题

  1. 设计一个LED驱动电路,要求:
  2. 电源电压:12V
  3. LED正向压降:3V
  4. LED工作电流:20mA
  5. 计算限流电阻阻值和功率

  6. 设计一个5V到3.3V的分压电路,要求:

  7. 输入电压:5V
  8. 输出电压:3.3V
  9. 负载电流:<1mA
  10. 选择合适的电阻值

  11. 计算RC延时电路的时间常数:

  12. R = 10kΩ
  13. C = 100μF
  14. 计算充电到63.2%、95%、99%的时间

  15. 设计一个Buck降压电路的电感:

  16. 输入电压:12V
  17. 输出电压:5V
  18. 输出电流:1A
  19. 开关频率:500kHz
  20. 电流纹波:30%

实践任务

  1. 使用万用表测量手头的电阻、电容、电感
  2. 搭建一个简单的LED闪烁电路
  3. 观察RC充放电过程(使用示波器)
  4. 测试不同容值的去耦电容效果

下一步:建议学习 PCB设计入门:从原理图到PCB,了解如何将电路设计转化为实际的PCB板。


常见问题解答

Q: 为什么要使用标准阻值?

A: 标准阻值(E系列)是工业界统一的规范,使用标准值可以: - 降低采购成本(批量生产) - 提高供货稳定性 - 简化库存管理 - 便于替换和维修

Q: 电容的ESR是什么?为什么重要?

A: ESR(Equivalent Series Resistance)是等效串联电阻,表示电容的内部损耗。ESR越小: - 滤波效果越好 - 纹波电压越小 - 发热越少 - 寿命越长

高频应用和大电流应用应选择低ESR电容。

Q: 如何判断电感是否饱和?

A: 电感饱和的表现: - 电感量显著下降(>20%) - 纹波电流明显增大 - 效率降低 - 电感发热严重

可以通过示波器观察电流波形,如果出现尖峰或畸变,可能已经饱和。

Q: 贴片元件和插件元件如何选择?

A: 选择依据: - 贴片(SMD):体积小、适合自动化、高频特性好、适合批量生产 - 插件(THT):功率大、易于手工焊接、易于更换、适合原型开发

现代设计优先选择贴片元件,除非有特殊要求。