3.8. Adaptación de niveles¶
Un pin GPIO de la cámara entrega unos 3,3 V cuando está en alto. Un dispositivo del otro lado puede funcionar a 5 V (microcontroladores antiguos, muchas placas de sensores) o a 1,8 V (sensores más nuevos, algunos buses entre chips). Conectar ambos directamente a veces es seguro y a veces destructivo; la adaptación de niveles es el circuito que salva esa diferencia de forma fiable.
3.8.1. Por qué el ataque directo entre voltajes puede dañar un pin¶
El terminal de E/S de cada chip tiene un par de diodos de protección integrados: uno desde el pin a tierra y otro desde el pin al riel de alimentación del chip. Están ahí para absorber las descargas electrostáticas (ESD), un pico breve de alto voltaje provocado por la electricidad estática que puede alcanzar un pin al manipular la placa. Una persona que ha caminado sobre una alfombra puede acumular varios kilovoltios de estática; tocar el pin equivocado transfiere esa carga al chip en nanosegundos. El diodo de protección superior se polariza en directa y desvía el pulso de forma segura hacia el riel de alimentación antes de que llegue a los transistores del interior del chip.
Cuando se aplica una señal de 5 V de forma continua a un pin de 3,3 V que no tolera 5 V, el diodo de protección superior conduce indefinidamente. Los diodos están dimensionados para pulsos breves de ESD, no para corriente en régimen permanente; el riel de alimentación empieza a subir por encima de 3,3 V, el diodo se calienta y falla, o bien el pin o bien el regulador de voltaje del chip.
Los pines tolerantes a 5 V usan una etapa de entrada diferente – el diodo superior va a un riel más alto o no existe – de modo que aplicar 5 V es inofensivo. Que los pines de una placa sean tolerantes a 5 V depende de cada placa; consulta la referencia rápida de la OpenMV Cam.
La otra dirección tiene su propio problema. Un GPIO de 3,3 V en alto produce ~3,3 V en el cable. Un receptor de 5 V que necesita 0.7 × Vcc para reconocer un alto tiene su umbral en 3,5 V; 3,3 V puede leerse como bajo o como ambiguo. Aunque no haya daños, la señal no funciona de forma fiable.
Un adaptador de niveles resuelve ambas direcciones.
3.8.2. El N-MOSFET como interruptor¶
Los circuitos siguientes usan un único MOSFET de canal N. Tiene tres pines – puerta, drenador y fuente – y se comporta como un interruptor controlado eléctricamente.
La entrada de control es el voltaje entre la puerta y la fuente, escrito Vgs (voltaje puerta-fuente):
Vgs = (gate voltage) - (source voltage)
Al MOSFET le importa esta diferencia, no el voltaje absoluto de ninguno de los pines por separado. Su comportamiento se deriva de Vgs:
Cuando
Vgsestá por encima del voltaje de umbral del MOSFET (normalmente alrededor de 1 V en un componente de pequeña señal de nivel lógico), el transistor se enciende y la corriente fluye libremente del drenador a la fuente.Cuando
Vgses igual o inferior a 0, el transistor se apaga y casi no fluye corriente del drenador a la fuente.
El camino drenador-fuente es el camino de corriente conmutado; Vgs abre o cierra ese interruptor.
Un N-MOSFET también tiene un diodo de cuerpo entre el drenador y la fuente que conduce cuando el drenador se lleva por debajo de la fuente en más de ~0,6 V. El diodo es un efecto secundario de la fabricación; el adaptador bidireccional de más abajo lo aprovecha a propósito.
3.8.2.1. Reglas de cableado¶
Un N-MOSFET no es un dispositivo simétrico de tres terminales. El diodo de cuerpo apunta de la fuente (ánodo) al drenador (cátodo), y Vgs es lo que controla el canal. De ahí se derivan dos reglas que deben cumplirse en todo circuito conmutador con N-MOSFET:
La fuente va al voltaje más bajo; el drenador va al más alto. Con el drenador en el riel más alto, el diodo de cuerpo queda polarizado en inversa y no hace nada. Invierte ambos y el diodo de cuerpo queda polarizado en directa todo el tiempo: la corriente fluye desde la fuente ahora más alta, a través del diodo de cuerpo, hacia el drenador ahora más bajo, independientemente de lo que haga la puerta. El MOSFET deja de ser un interruptor – fuga continuamente, la señal no se puede apagar y el dispositivo suele sobrecalentarse y fallar.
La puerta se conecta al riel de voltaje de la fuente. Mantener la puerta en el riel sobre el que descansa la fuente en reposo hace que
Vgs = 0en reposo, muy por debajo del umbral; el MOSFET permanece firmemente apagado hasta que algo lleva la puerta por encima de la fuente (el circuito unidireccional de más abajo) o lleva la fuente por debajo de la puerta (el circuito bidireccional). Deja la puerta flotando en otro punto y el estado de apagado deja de estar definido – el ruido, las fugas o la capacidad parásita pueden hacer queVgsderive por encima del umbral y enciendan el MOSFET de forma aleatoria.
Invertir cualquiera de las dos reglas convierte el adaptador de niveles en un camino con fugas y poco fiable. Ambos circuitos adaptadores de más abajo siguen estas reglas: fuente en el lado más bajo, drenador en el más alto, puerta conectada o accionada desde el riel de la fuente.
3.8.3. Unidireccional 3,3 V → 5 V¶
El adaptador de niveles más sencillo lleva una señal unidireccional desde el GPIO de la cámara a una entrada de 5 V. Un único N-MOSFET más dos resistencias hacen el trabajo.
Un N-MOSFET adapta el nivel (e invierte) de una señal de 3,3 V a una salida de 5 V.¶
Cuando el GPIO está en alto (3,3 V en la puerta), Vgs está por encima del umbral y el MOSFET se enciende; el drenador se lleva a ~0 V. Cuando el GPIO está en bajo (0 V en la puerta), el MOSFET está apagado y la resistencia de pull-up de 10 kΩ lleva el drenador a 5 V.
La salida es la inversa de la entrada. El software puede volver a invertir la señal (escribir 0 para una «salida de 5 V en alto»), o se pueden encadenar dos etapas para obtener una señal no invertida con el doble de componentes.
3.8.4. Bidireccional con un único N-MOSFET¶
Para una línea que debe poder accionarse desde cualquiera de los dos lados – un bus compartido en el que cualquier extremo puede llevar la línea a bajo – el circuito estándar es un único N-MOSFET por línea, con una resistencia de pull-up a la alimentación de cada lado.
Un único N-MOSFET une una línea de 3,3 V y una de 5 V; cada lado tiene su propio pull-up.¶
La puerta está conectada a la alimentación de 3,3 V, así que el comportamiento del MOSFET depende de qué lado esté accionando:
Ambos lados en reposo. La fuente está a 3,3 V mediante el pull-up izquierdo; la puerta está a 3,3 V;
Vgs = 0; el MOSFET está apagado. El lado de 5 V flota a 5 V mediante el pull-up derecho. Ambos lados leen alto.El lado de 3,3 V lleva a bajo. La fuente cae a 0 V;
Vgssube por encima del umbral; el MOSFET se enciende y conduce de fuente a drenador. El lado de 5 V se lleva a bajo a través del transistor.El lado de 5 V lleva a bajo. El drenador cae a 0 V; el diodo de cuerpo del MOSFET (de drenador a fuente) queda polarizado en directa y conduce; la fuente (lado de 3,3 V) se lleva hasta unos 0,6 V. Entonces
Vgssupera el umbral y el MOSFET se enciende del todo, llevando ambos lados a bajo.
El BSS138 es el N-MOSFET estándar para este patrón; los N-MOSFET de pequeña señal de nivel lógico con voltajes de umbral de puerta similares se comportan todos igual aquí.