嵌入式电路基础:电阻、电容、电感¶
学习目标¶
完成本文学习后,你将能够:
- 理解电阻、电容、电感的基本特性和工作原理
- 掌握各类元件的关键参数和选型方法
- 能够进行基本的电路计算(分压、滤波、时间常数等)
- 了解常见应用场景和设计技巧
- 避免元件选型和使用中的常见错误
前置要求¶
在开始本文学习之前,你需要:
知识要求: - 了解基本的电学概念(电压、电流、功率) - 熟悉欧姆定律(V = I × R) - 了解串联和并联电路的基本概念 - 有一定的数学基础(简单的代数运算)
技能要求: - 能够阅读简单的电路图 - 了解基本的电路符号 - 熟悉常用的单位换算
推荐但非必需: - 有使用万用表的经验 - 了解基本的焊接技能 - 熟悉常见的电子元件外观
概述¶
电阻、电容和电感是电子电路中最基本的三大被动元件,它们就像建筑中的砖瓦一样,是构建复杂电路的基础。无论是简单的LED闪烁电路,还是复杂的微控制器系统,都离不开这三种基本元件。
为什么要学习基本元件¶
- 电路设计基础:所有电路都由基本元件组成
- 参数计算:需要根据需求选择合适的元件参数
- 故障排查:很多问题都与元件选型或损坏有关
- 成本优化:合理选型可以降低成本
- 性能提升:正确使用元件可以提升电路性能
三大元件的基本特性对比¶
| 元件 | 主要作用 | 对直流 | 对交流 | 储能形式 |
|---|---|---|---|---|
| 电阻 | 限流、分压 | 阻碍 | 阻碍 | 不储能(转化为热) |
| 电容 | 滤波、耦合 | 隔断 | 通过 | 电场能量 |
| 电感 | 滤波、储能 | 通过 | 阻碍 | 磁场能量 |
第一部分:电阻(Resistor)¶
什么是电阻¶
电阻是一种限制电流流动的元件,它将电能转化为热能。电阻的基本单位是欧姆(Ω),符号为R。
电阻的核心特性:
- 阻碍电流:
- 限制电路中的电流大小
- 遵循欧姆定律:V = I × R
-
对直流和交流都有阻碍作用
-
功率消耗:
- 将电能转化为热能
- 功率计算:P = I² × R = V² / R
-
需要考虑散热问题
-
分压作用:
- 串联电阻可以分压
- 输出电压与电阻值成正比
- 常用于电压调节
电阻的主要参数¶
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 棕-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;
}
电路图:
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. 上拉/下拉电阻¶
确保信号线在未驱动时有确定的电平状态。
上拉电阻:
下拉电阻:
上拉/下拉电阻选择:
/*
* 上拉/下拉电阻选择指南
*
* 阻值范围: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; // 推荐值
}
电阻选型指南¶
选型步骤:
- 确定阻值:
- 根据电路功能计算所需阻值
- 选择最接近的标准值
-
考虑精度要求
-
确定功率:
- 计算实际功率消耗
- 应用降额系数(0.5-0.7)
-
选择合适的功率等级
-
确定精度:
- 精密电路:±1%
- 一般电路:±5%
-
要求不高:±10%
-
确定封装:
- 贴片(SMD):0201, 0402, 0603, 0805, 1206
- 插件(THT):¼W, ½W, 1W
常见错误:
❌ 错误做法: - 功率选择不足,导致电阻过热 - 精度要求过高,增加成本 - 使用非标准值,采购困难 - 忽略温度系数影响
✅ 正确做法: - 功率留有余量(降额50%) - 根据实际需求选择精度 - 优先使用E24系列标准值 - 考虑工作温度范围
第二部分:电容(Capacitor)¶
什么是电容¶
电容是一种储存电荷的元件,由两个导体板和中间的绝缘介质组成。电容的基本单位是法拉(F),符号为C。
电容的核心特性:
- 储存电荷:
- 储存电场能量
- 电荷量 Q = C × V
-
能量 E = ½ × C × V²
-
隔直通交:
- 阻止直流电流通过
- 允许交流电流通过
-
频率越高,阻抗越小
-
充放电特性:
- 充电时电压逐渐上升
- 放电时电压逐渐下降
- 时间常数 τ = 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滤波电路:
滤波电容计算:
/**
* @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
}
电容选型指南¶
选型步骤:
- 确定容值:
- 根据应用场景选择合适的容值
- 去耦:0.1μF
- 滤波:10μF-1000μF
-
定时:根据RC计算
-
确定电压:
- 应用降额系数
- 陶瓷电容:工作电压 × 2
-
电解电容:工作电压 × 1.5
-
选择介质:
- 高频去耦:陶瓷电容
- 大容量滤波:电解电容
-
精密电路:薄膜电容或钽电容
-
确定封装:
- 贴片:0402, 0603, 0805, 1206
- 插件:根据容值和电压选择
常见错误:
❌ 错误做法: - 电解电容接反,导致爆炸 - 电压余量不足,击穿损坏 - 去耦电容距离IC太远,效果差 - 忽略ESR(等效串联电阻)影响
✅ 正确做法: - 注意电解电容极性 - 电压留有足够余量 - 去耦电容尽量靠近IC - 高频应用选择低ESR电容
第三部分:电感(Inductor)¶
什么是电感¶
电感是一种储存磁场能量的元件,由线圈绕制而成。电感的基本单位是亨利(H),符号为L。
电感的核心特性:
- 储存磁能:
- 储存磁场能量
- 能量 E = ½ × L × I²
-
电流变化时产生感应电动势
-
通直阻交:
- 允许直流电流通过
- 阻碍交流电流通过
-
频率越高,阻抗越大
-
电流连续性:
- 电流不能突变
- 断开时产生高压
- 需要续流保护
电感的主要参数¶
1. 电感量(Inductance)¶
电感量表示电感储存磁能的能力。
常用单位: - H(亨利):基本单位 - mH(毫亨):1mH = 0.001H = 1000μH - μH(微亨):1μH = 0.001mH = 1000nH - nH(纳亨):1nH = 0.001μH
常用范围:
2. 额定电流(Current Rating)¶
额定电流包括两个参数:
- 饱和电流(Isat):
- 电感量下降到标称值的70%-80%时的电流
- 超过此值,电感量显著下降
-
通常是选型的主要依据
-
温升电流(Irms):
- 使电感温升达到规定值(如40°C)的电流
- 与线圈电阻和散热有关
- 影响长期可靠性
电流选择原则:
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通常使用肖特基二极管(低压降)
电感选型指南¶
选型步骤:
- 确定电感量:
- 根据应用计算所需电感值
- DC-DC:根据纹波要求计算
-
滤波:根据截止频率计算
-
确定电流:
- 计算最大工作电流
- 选择Isat > 工作电流 / 0.7
-
选择Irms > 工作电流 / 0.8
-
考虑DCR:
- 大电流应用选择低DCR
- 计算功率损耗
-
评估温升影响
-
选择封装:
- 贴片:功率电感、屏蔽电感
- 插件:大功率应用
- 考虑散热和空间
常见错误:
❌ 错误做法: - 电流超过饱和电流,电感失效 - 忽略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Ω
电容并联:
电感串联:
2. 元件串联¶
电阻串联:
电容串联:
总电容: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: - 反向电压 > 输入电压 - 正向电流 > 电感电流 - 优先选择肖特基二极管 - 注意散热
元件测量方法¶
使用万用表测量¶
测量电阻:
测量电容:
测量电感:
判断元件好坏¶
电阻: - 正常:阻值在标称范围内 - 开路:显示无穷大 - 短路:显示0Ω或很小
电容: - 正常:充电后显示容值 - 开路:无充电现象 - 短路:显示0Ω - 漏电:充电后缓慢放电
电感: - 正常:显示电感值,DCR正常 - 开路:显示无穷大 - 短路:显示0Ω或很小
总结¶
本文详细介绍了嵌入式电路中最基本的三大元件:电阻、电容和电感。
核心要点¶
- 电阻(Resistor):
- 限流、分压、上拉/下拉
- 关键参数:阻值、精度、功率
-
选型要点:功率降额、标准值、精度匹配
-
电容(Capacitor):
- 去耦、滤波、定时
- 关键参数:容值、电压、介质
-
选型要点:电压降额、介质选择、ESR考虑
-
电感(Inductor):
- DC-DC转换、EMI滤波、储能
- 关键参数:电感量、饱和电流、DCR
- 选型要点:电流余量、DCR优化、续流保护
设计原则¶
- 安全第一:
- 功率和电压留有余量
- 注意极性和耐压
-
考虑温度影响
-
性能优化:
- 合理选择参数
- 注意布局和布线
-
考虑寄生参数
-
成本控制:
- 使用标准值
- 避免过度设计
- 批量采购优化
最佳实践¶
- 电阻使用:
- LED限流:计算准确,功率充足
- 分压电路:考虑负载影响
-
上拉/下拉:平衡功耗和速度
-
电容使用:
- 去耦电容:靠近IC,多种容值组合
- 滤波电容:容值充足,电压余量
-
电解电容:注意极性,定期更换
-
电感使用:
- DC-DC:电流余量,低DCR
- EMI滤波:合适的电感量
- 续流保护:必须添加
延伸阅读¶
推荐进一步学习的内容:
- 进阶主题:
- PCB设计入门:从原理图到PCB
- 电源电路设计:LDO与DC-DC选择
-
相关知识:
- 数字电路基础:逻辑门与时序电路
- 晶振电路设计与调试
-
实践项目:
- LED闪烁电路设计
- 简易电源设计
参考资料¶
- 《电子元器件应用手册》- 胡斌
- 《实用电子元器件与电路基础》- Paul Scherz
- 《The Art of Electronics》- Paul Horowitz
- 各元件厂商数据手册(Murata、TDK、Vishay等)
练习题:
- 设计一个LED驱动电路,要求:
- 电源电压:12V
- LED正向压降:3V
- LED工作电流:20mA
-
计算限流电阻阻值和功率
-
设计一个5V到3.3V的分压电路,要求:
- 输入电压:5V
- 输出电压:3.3V
- 负载电流:<1mA
-
选择合适的电阻值
-
计算RC延时电路的时间常数:
- R = 10kΩ
- C = 100μF
-
计算充电到63.2%、95%、99%的时间
-
设计一个Buck降压电路的电感:
- 输入电压:12V
- 输出电压:5V
- 输出电流:1A
- 开关频率:500kHz
- 电流纹波:30%
实践任务:
- 使用万用表测量手头的电阻、电容、电感
- 搭建一个简单的LED闪烁电路
- 观察RC充放电过程(使用示波器)
- 测试不同容值的去耦电容效果
下一步:建议学习 PCB设计入门:从原理图到PCB,了解如何将电路设计转化为实际的PCB板。
常见问题解答:
Q: 为什么要使用标准阻值?
A: 标准阻值(E系列)是工业界统一的规范,使用标准值可以: - 降低采购成本(批量生产) - 提高供货稳定性 - 简化库存管理 - 便于替换和维修
Q: 电容的ESR是什么?为什么重要?
A: ESR(Equivalent Series Resistance)是等效串联电阻,表示电容的内部损耗。ESR越小: - 滤波效果越好 - 纹波电压越小 - 发热越少 - 寿命越长
高频应用和大电流应用应选择低ESR电容。
Q: 如何判断电感是否饱和?
A: 电感饱和的表现: - 电感量显著下降(>20%) - 纹波电流明显增大 - 效率降低 - 电感发热严重
可以通过示波器观察电流波形,如果出现尖峰或畸变,可能已经饱和。
Q: 贴片元件和插件元件如何选择?
A: 选择依据: - 贴片(SMD):体积小、适合自动化、高频特性好、适合批量生产 - 插件(THT):功率大、易于手工焊接、易于更换、适合原型开发
现代设计优先选择贴片元件,除非有特殊要求。