电路基础
1.电磁感应
X. 常见应用电路分析
X.1. ADC直接对地采集电路
Vin
|
|
[R1]
├──── [Rpotect] ─────> to MCU ADC Pin
|
[R2]
|
GND
这是一个常见的分压电路(由R1和R2组成),后面接了一个负载(MCU的ADC引脚),两者之间接了一个保护电阻(Rprotect)
单看分压电路部分,R2两端的电压就是:V2 = Vin * (R2 / (R1 + R2))
输入到单片机的电压:Vmcu ≈ V2
Q: 为什么会这样呢?明明这个电路的MCU于R2相当于并联关系,为什么MCU的电压约等于V2?
因为在配置IO口采集时,将IO口配置成ADC模式,这是一个输入模式,还有类似的“输出模式”、“高阻态”、“浮空”等GPIO状态。在输入模式下,内部连接着一些测量电路、CMOS之类的,这些电路会让引脚对外表现出一个非常高的输入阻抗。
通常可以建模为一个很大的电阻Radc,例如1MΩ到100MΩ量级。
Vin ----[Radc]----> GND
此时,R2和Radc实际上是并联关系。整个电路变成了R1和(R2 // Radc)组成的新分压器。
如果Radc远大于R2(例如 R2=10kΩ, Radc=1MΩ),那么并联后的等效电阻 (R2 // R_adc) ≈ R2 (此处并联总电阻计算)。因此,ADC测到的电压仍然非常接近理想值 V2。
加入保护电阻Rprotect后,因为(R2 // Radc)的阻值远大于 Rprotect(这是设计时的要求),所以这个新的分压比非常接近1,即 Vadc ≈ V2。
保护电阻在这里的作用,通常是限流(防静电之类的)和滤波,单片机ADC引脚本身通常带有输入电容,这样和保护电阻共同构成了一个RC低通滤波器。这可以帮助滤除高频噪声,让ADC采样结果更稳定。
X.2. 开漏,推挽,高阻态(浮空)
GPIO的三种输出状态:开漏输出,推挽输出,高阻态(浮空)。
开漏输出
VCC
|
[R] 上拉电阻(外部)
|
OUT ---------| N-MOSFET
|
GND
开漏输出仅使用了一个N-MOSFET实现。
当N-MOSFET导通时,OUT直接接地;当N-MOSFET断开时,输出引脚悬空,处于高阻态。此时外接的上拉电阻将OUT拉高。
开漏可以实现多个GPIO同时控制一个输入,I2C通信就是利用这一特性。
推挽输出
VCC
|
P-MOSFET --
| |
OUT -------| |-- IN
| |
N-MOSFET --
|
GND
推挽输出由一个P-MOSFET和一个N-MOSFET组成,这种互补对称结构的MOSFET构成的集成电路技术成为CMOS。它结合了N型和P型MOSFET,利用它们的互补特性来实现逻辑功能。
P-MOSFET连接到VCC,N-MOSFET连接到GND,OUT是它们的中点。当P-MOSFET导通时,OUT被拉高;当N-MOSFET导通时,OUT被拉低。
两个管子互补工作,不会同时导通,因此输出可以有较强的驱动能力。
在CMOS逻辑中,反相器就是推挽电路,两者是一回事。
这里MOSFET可以替换成三极管同样实现推挽效果,且成本较低,但不适合高频电路。
强推挽与弱推挽:在使用华大芯片中,发现可以配置GPIO高低驱动能力,推挽就推挽为什么输出能力会有所不同?发现这里是由硬件差异实现的,通过调整不同的上管尺寸,用小尺寸P-MOS或者上拉电阻来实现,这样减少提供的电流。因为MOS管不是理想开关时一个可变电阻,导通电阻决定输出大小。配置弱驱动能力往往是在考虑功耗、电磁干扰的场景。
高阻态(浮空)
高阻态是指GPIO既不主动输出高电平也不输出低电平,而是呈现高阻抗状态。此时引脚悬空,容易受到噪声干扰,通常需要通过上拉或下拉电阻来确定引脚状态。
常见问题&解决办法
为什么MCU引脚悬空会导致干扰
背景:配置MCU引脚为AD采集时,我们经常要做下拉处理。如果引脚处于悬空状态,极易收到干扰采集到异常值。
简单来说,就是因为MCU的ADC引脚内部是高阻抗的。根据欧姆定律 (V = I * R),因为阻抗很高,这就导致了如果当存在一个微弱的噪声电流(I)流过一个高阻抗 (R) 的路径时,就会产生一个客观的干扰电压,从而影响了单片机的数据采集。
所以,通常通过一个上拉/下拉电阻提供一个低阻抗的确定路径,来“压倒”和“淹没”这些干扰的影响,将引脚钳位在一个已知的、稳定的状态。