3.8. 电平转换¶
摄像头上的 GPIO 引脚在输出高电平时驱动约 3.3 V。另一侧的设备可能工作在 5 V(较老的微控制器、许多传感器板)或 1.8 V(较新的传感器、某些芯片间总线)。将两者直接相连有时是安全的,有时却会造成损坏;电平转换(level shifting)就是可靠地弥合这一差距的电路。
3.8.1. 为何直接跨电压驱动会损坏引脚¶
每个芯片的 I/O 焊盘都内置了一对保护二极管:一个从引脚连到地,一个从引脚连到芯片的供电轨。它们的作用是吸收静电放电(ESD)——一种由静电产生的短暂高压脉冲,会在搬动电路板时击中引脚。一个走过地毯的人可能携带数千伏的静电;触碰错误的引脚会在纳秒内把电荷转移到芯片上。上方的保护二极管会正向导通,在脉冲到达芯片内部晶体管之前将其安全地分流到供电轨。
当一个 5 V 信号持续施加到不耐 5 V 的 3.3 V 引脚上时,上方保护二极管会一直导通。这些二极管的尺寸是为短暂的 ESD 脉冲设计的,而非稳态电流;供电轨开始升高到 3.3 V 以上,二极管发热,最终引脚或片上稳压器损坏。
耐 5 V 的引脚使用不同的输入级——上方二极管接到更高的电源轨,或干脆没有——因此施加 5 V 无害。某块板子的引脚是否耐 5 V 因板而异;请查阅 OpenMV Cam 快速参考。
另一个方向也有自身的问题。一个 3.3 V 的 GPIO 输出高电平时在导线上产生约 3.3 V。一个需要 0.7 × Vcc 才能识别高电平的 5 V 接收器,其阈值在 3.5 V;3.3 V 可能被读为低电平或模棱两可。即便没有损坏,信号也无法可靠工作。
电平转换器同时解决了两个方向的问题。
3.8.2. 作为开关的 N-MOSFET¶
下面的电路使用单个 N 沟道 MOSFET。它有三个引脚——栅极、漏极和源极——其行为相当于一个由电压控制的开关。
控制输入是栅极与源极之间的电压,记作 Vgs(栅源电压):
Vgs = (gate voltage) - (source voltage)
MOSFET 关心的是这个差值,而非任一引脚上的绝对电压。它的行为由 Vgs 决定:
当
Vgs高于 MOSFET 的阈值电压(对于小信号逻辑电平器件,通常约为 1 V)时,晶体管导通,电流自由地从漏极流向源极。当
Vgs处于或低于 0 时,晶体管关断,几乎没有电流从漏极流向源极。
漏源通路是被开关的电流通路;Vgs 打开或关闭这个开关。
N-MOSFET 在漏极和源极之间还有一个体二极管,当漏极被拉低到比源极低约 0.6 V 以上时它会导通。该二极管是制造工艺的副产物;下面的双向转换器有意利用了它。
3.8.2.1. 接线规则¶
N-MOSFET 不是一个对称的三端器件。体二极管由源极(阳极)指向漏极(阴极),而 Vgs 是控制沟道的量。由此引出两条规则,每个 N-MOSFET 开关电路都必须遵守:
源极接较低电压;漏极接较高电压。漏极接到较高电源轨时,体二极管反向偏置,不起作用。把它们交换过来,体二极管就会一直正向偏置:电流会从此时更高的源极经体二极管流向此时更低的漏极,无论栅极在做什么。MOSFET 不再是开关——它持续漏电,信号无法被关断,器件往往过热并损坏。
栅极连到源极所在的电压轨。让栅极保持在源极静止时所处的电压轨上,可使空闲时
Vgs = 0,远低于阈值;MOSFET 保持牢牢关断,直到有东西要么把栅极驱动到源极以上(下面的单向电路),要么把源极拉到栅极以下(双向电路)。若让栅极悬空在别处,关断状态就不再确定——噪声、漏电流或杂散电容都可能使Vgs漂移到阈值以上,从而随机地使 MOSFET 导通。
违反任一规则都会把电平转换器变成一条漏电、不可靠的通路。下面两个转换器电路都遵循这些规则:源极在较低侧,漏极在较高侧,栅极连接或由源极所在的电源轨驱动。
3.8.3. 单向 3.3 V → 5 V¶
最简单的电平转换器把单方向信号从摄像头的 GPIO 推送到 5 V 输入。单个 N-MOSFET 加两个电阻即可完成这项工作。
一个 N-MOSFET 将 3.3 V 信号电平转换(并反相)为 5 V 输出。¶
当 GPIO 输出高电平(栅极上 3.3 V)时,Vgs 高于阈值,MOSFET 导通;漏极被拉低到约 0 V。当 GPIO 输出低电平(栅极上 0 V)时,MOSFET 关断,10 kΩ 上拉电阻把漏极拉到 5 V。
输出是输入的反相。软件可以把信号翻转回来(写入 0 表示“5 V 输出高电平”),或者级联两级以两倍的元件数量得到非反相信号。
3.8.4. 用单个 N-MOSFET 实现双向转换¶
对于一条必须能从任一侧驱动的线——一条任一端都可以把线拉低的共享总线——标准电路是每条线一个 N-MOSFET,两侧各有一个上拉到各自电源。
单个 N-MOSFET 桥接一条 3.3 V 线和一条 5 V 线;每一侧都有各自的上拉。¶
栅极连到 3.3 V 电源,因此 MOSFET 的行为取决于哪一侧在驱动:
两侧都空闲。源极经左侧上拉位于 3.3 V;栅极在 3.3 V;
Vgs = 0;MOSFET 关断。5 V 侧经右侧上拉浮到 5 V。两侧都读到高电平。3.3 V 侧拉低。源极降到 0 V;
Vgs升到阈值以上;MOSFET 导通并从源极向漏极导通电流。5 V 侧经晶体管被拉低。5 V 侧拉低。漏极降到 0 V;MOSFET 的体二极管(漏极到源极)变为正向偏置并导通;源极(3.3 V 侧)被拉低到约 0.6 V。此时
Vgs超过阈值,MOSFET 完全导通,使两侧都变为低电平。
BSS138 是这种方案的标准 N-MOSFET;具有类似栅极阈值电压的小信号逻辑电平 N-MOSFET 在这里的行为都相同。