Estado GPIO de MCU (AVR) sin tensión de alimentación

0

En general: qué estado tienen los GPIO de una MCU (un AVR en mi caso) cuando no hay voltaje de alimentación y la MCU está "apagada". Tengo razón en que los pines están flotando, ya que no hay ninguna "referencia" para el nivel lógico.

En especial: Tengo un interruptor bilateral (BS) que cambia un voltaje variable (proporcionado por un DAC) para un dispositivo analógico (AD). Tanto la BS como el DAC están controlados por una MCU. Como la salida de la BS estará flotando cuando la MCU no establezca su entrada alta, necesito un despliegue en la salida para definir el estado bajo. He adjuntado un circuito simplificado que ilustra el escenario.

SilaMCUseestáejecutando,todoestáclaro:laBSproporcionaráunaseñalanalógicaalADsiemprequegpio1estéalto.

Perosi(porunarazón)lafuentedealimentaciónde3.3Vnoestáallí,todavíanecesitotenerunvoltajedefinidoenelpinAindeAD.Entonces,simisuposición,dequelosgpiosdeunaMCUinactivaestánflotando,escorrecta,lossiguientescircuitosdebencumplirmisrequisitos:

  • MCU activo: gpio2 está configurado como salida baja - > el pulldown fuerte (1k y amp; 10k en paralelo es igual a 0k9) supera los 100k, lo que lleva a un divisor de voltaje insignificante. Ain es empujado a bajo voltaje (no a tierra exactamente, pero cerca de él - 0.2V)

  • MCU inactivo: gpio2 está flotando - > un desplegable más débil (10k) y no divisor de voltaje despreciable (100: 10) que conduce a un voltaje definido de 0.9 * 24V = 2.2V.

Estoy bastante seguro de que el circuito como tal tiene sentido, pero si funciona o no depende completamente del comportamiento de gpios cuando no hay tensión de alimentación para la MCU. ¿Puede esto dañar la MCU? (Supongo que no, siempre que R1 sea lo suficientemente alto)

    
pregunta Sim Son

3 respuestas

3

La forma más sencilla de imaginar los pines MCU sin alimentación es la siguiente:

Básicamente,diríaquelaentradaestáflotando,perosiaplicaalgúnvoltajeaesepin,entoncesfluiráatravésdeldiododeprotecciónsuperiorycomenzaráaalimentarelcircuitodeformaparasitaria.

Loquesucederáensucircuito,esqueunavezqueelvoltajeaumentamásalládelumbraldeldiodo(0.6v),lacorrientecomenzaráafluiratravésdeese1k,yelvoltajenoserámuchomásaltoqueeso.Sinhacerloscálculos,diríaque...0.8v

Noestoysegurodecuálesexactamenteelpropósitodeldesplegablegpio2,peropuedesconectarlodeestaforma:

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Drew
3

No, las entradas no están flotando, y sí, aplicarles un voltaje cuando la alimentación está apagada puede causar daños. Esto es cierto para casi cualquier IC moderno, donde la hoja de datos no dice explícitamente lo contrario.

En el caso de, digamos, un ATmega328p, podemos verlo en la sección "Clasificación absoluta máxima"

  

Voltaje en cualquier Pin excepto RESET   Con respecto al suelo. -0.5V a VCC + 0.5V

Estos límites se deben generalmente a la presencia de diodos de protección ESD que desvían las corrientes de los pines de E / S a los rieles de suministro. Cuando el riel de suministro está potencialmente en tierra, el rango de entrada permitido es solo menor que una caída de diodo más alta o más baja. La aplicación de un voltaje más alto (al menos sin una gran resistencia en serie) causaría la conducción del diodo de protección y podría proporcionar fácilmente la corriente suficiente para dañarlo. Además, intentaría aumentar la red de suministro de toda la junta. Incluso si esto no causara daños, puede llevar a varios circuitos a un estado desde el cual el reinicio de la alimentación no funcionará correctamente (por ejemplo, aunque no es un problema que el AVR parece tener, he visto otros sistemas que no lo hacen). arranque si las líneas de datos de un adaptador USB-TTL se conectaron antes de que se encendiera el sistema, incluso si ese adaptador se conectó a través de una resistencia sustancial de la serie)

Si necesita un nivel definido, ese nivel debe ser rectificado mediante una resistencia desplegable. Aún mejor, también apaga lo que esté conectado a la MCU.

Recuerde también que incluso si el pin no está flotando cuando la alimentación está apagada, estará flotando entre el reinicio y cuando esté configurado como salida. Especialmente si está involucrado algo como un gestor de arranque en serie, que potencialmente podría ser un período sustancial de tiempo.

    
respondido por el Chris Stratton
1

Un problema típico con MCU sin alimentación, mientras que su GPIO tiene algún camino hacia un riel de voltaje (como 2.2V desde 100k: divisor de 10 k a través de R3) es que el riel de MCU se "filtrará" a través de diodos de protección ESD (típicamente construido en almohadillas GPIO). El riel de voltaje Vcc se cargará hasta el voltaje de entrada menos el voltaje de diodo de 0.5 bridas de banda, menos algunas fugas a través de otras resistencias, difíciles de predecir. Como Vcc se cargará, es poco probable que se excedan las "calificaciones máximas absolutas".

Parte del problema es que los reguladores LDO habituales no tienen nada para mantener su salida en cero cuando Vin no está allí. Para mantener baja la salida LDO, hay modelos especiales con "descarga de salida", o es necesario agregar resistencias de sangrado explícitas en los rieles Vcc.

No analicé la ruta exacta en tu diseño, pero espero que esta respuesta te dé una idea de dónde buscar.

ADDENDUM1: hay un ejemplo clásico en el que un IC CMOS sin alimentación (como el contador CD4017) funcionaría y contaría estados si solo se aplicara un reloj, digamos un reloj de 5 V. El riel Vdd cargará hasta un nivel de 4 - 4.3 V a través del diodo ESD superior, y el contador se activará alegremente.

ADDENDUM2:confrecuenciaseproducenefectossimilaressiseconectaunaMCUsinalimentaciónaunainterfazconalimentación(porejemplo,extensionesdeI2CoUSB).LosrielesMCUpuedencargarseparcialmente,hastaciertonivelintermedio(1-2V).Cuandosevuelveaencender,esposiblequeloscircuitosinternosdelICnorecibanunreiniciointernoválidoyquenofuncionencorrectamente.EstaeslarazónprincipalporlaquelosdispositivosUSBautoalimentadostienenprohibido"volver a conducir" cuando el host se encuentra en estado sin energía.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas