找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4832

积分

0

好友

627

主题
发表于 2 小时前 | 查看: 3| 回复: 0

在嵌入式系统中,任何复杂电路都能还原为三种无源器件的组合。掌握电阻、电容、电感的特性,是看懂原理图、设计可靠电路的第一步。

嵌入式电路板元件特写

学习目标

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

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

前置要求

在开始之前,你需要具备以下基础。

知识要求

  • 了解电压、电流、功率等基本电学概念
  • 熟悉欧姆定律 V = I × R
  • 了解串联和并联电路的基本概念
  • 有一定的代数运算能力

技能要求

  • 能够阅读简单的电路图
  • 了解基本的电路符号
  • 熟悉常用单位换算

推荐但非必需

  • 有使用万用表的经验
  • 了解基本的焊接技能
  • 熟悉常见电子元件的外观

概述

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

为什么要学习基本元件

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

三大元件的基本特性对比

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

第一部分:电阻(Resistor)

什么是电阻

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

电阻的核心特性

  1. 阻碍电流

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

    • 将电能转化为热能
    • 功率计算:P = I² × R = V² / R
    • 需要考虑散热问题
  3. 分压作用

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

电阻的主要参数

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. 确定功率

    • 计算实际功率消耗
    • 应用降额系数(0.5-0.7)
    • 选择合适的功率等级
  3. 确定精度

    • 精密电路:±1%
    • 一般电路:±5%
    • 要求不高:±10%
  4. 确定封装

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

常见错误

  • ❌ 错误做法:
    • 功率选择不足,导致电阻过热
    • 精度要求过高,增加成本
    • 使用非标准值,采购困难
    • 忽略温度系数影响
  • ✅ 正确做法:
    • 功率留有余量(降额50%)
    • 根据实际需求选择精度
    • 优先使用E24系列标准值
    • 考虑工作温度范围

第二部分:电容(Capacitor)

什么是电容

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

电容的核心特性

  1. 储存电荷

    • 储存电场能量
    • 电荷量 Q = C × V
    • 能量 E = ½ × C × V²
  2. 隔直通交

    • 阻止直流电流通过
    • 允许交流电流通过
    • 频率越高,阻抗越小
  3. 充放电特性

    • 充电时电压逐渐上升
    • 放电时电压逐渐下降
    • 时间常数 τ = 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. 确定容值

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

    • 应用降额系数
    • 陶瓷电容:工作电压 × 2
    • 电解电容:工作电压 × 1.5
  3. 选择介质

    • 高频去耦:陶瓷电容
    • 大容量滤波:电解电容
    • 精密电路:薄膜电容或钽电容
  4. 确定封装

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

常见错误

  • ❌ 错误做法:
    • 电解电容接反,导致爆炸
    • 电压余量不足,击穿损坏
    • 去耦电容距离 IC 太远,效果差
    • 忽略 ESR(等效串联电阻)影响
  • ✅ 正确做法:
    • 注意电解电容极性
    • 电压留有足够余量
    • 去耦电容尽量靠近 IC
    • 高频应用选择低 ESR 电容

第三部分:电感(Inductor)

什么是电感

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

电感的核心特性

  1. 储存磁能

    • 储存磁场能量
    • 能量 E = ½ × L × I²
    • 电流变化时产生感应电动势
  2. 通直阻交

    • 允许直流电流通过
    • 阻碍交流电流通过
    • 频率越高,阻抗越大
  3. 电流连续性

    • 电流不能突变
    • 断开时产生高压
    • 需要续流保护

电感的主要参数

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)

    • 电感量下降到标称值的70%-80%时的电流
    • 超过此值,电感量显著下降
    • 通常是选型的主要依据
  2. 温升电流(Irms)

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

电流选择原则:

工作电流 ≤ 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. 确定电感量

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

    • 计算最大工作电流
    • 选择 Isat > 工作电流 / 0.7
    • 选择 Irms > 工作电流 / 0.8
  3. 考虑DCR

    • 大电流应用选择低 DCR
    • 计算功率损耗
    • 评估温升影响
  4. 选择封装

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

常见错误

  • ❌ 错误做法:
    • 电流超过饱和电流,电感失效
    • 忽略 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. 电容(Capacitor)

    • 去耦、滤波、定时
    • 关键参数:容值、电压、介质
    • 选型要点:电压降额、介质选择、ESR考虑
  3. 电感(Inductor)

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

设计原则

  1. 安全第一

    • 功率和电压留有余量
    • 注意极性和耐压
    • 考虑温度影响
  2. 性能优化

    • 合理选择参数
    • 注意布局和布线
    • 考虑寄生参数
  3. 成本控制

    • 使用标准值
    • 避免过度设计
    • 批量采购优化

最佳实践

  1. 电阻使用

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

    • 去耦电容:靠近IC,多种容值组合
    • 滤波电容:容值充足,电压余量
    • 电解电容:注意极性,定期更换
  3. 电感使用

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

无论是设计一个简单的 LED 驱动,还是复杂的开关电源,扎实的元件基础知识永远是可靠电路设计的起点。在 云栈社区 ,我们坚信理论要落地,代码要跑通,电路要亲手调——这正是嵌入式工程师成长的最佳路径。




上一篇:Browser-Use:让AI长出手和眼,自动替你搞定那些重复网页操作
下一篇:锁相环(PLL)原理详解:从简易结构到传递函数分析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-26 05:25 , Processed in 0.742852 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表