un pin del microcontrolador atascado permanentemente en 0

0

¿Es posible en general tener un pin de uC atascado en 0, incluso cuando la alimentación está apagada? Particularmente estoy interesado en stm32f3

    
pregunta judoka_acl

3 respuestas

2

Sí, es posible, incluso probable.

La mayoría de los pines tienen circuitos de protección contra sobretensiones para evitar que las pequeñas descargas capacitivas dañen el chip. A veces, los circuitos son más elaborados, pero a menudo hay simplemente diodos inversos a la alimentación y la conexión a tierra.

Esto significa que cuando la tensión de alimentación es 0, el diodo de protección de un pin conducirá si la tensión del pin supera la tensión de giro del diodo, alrededor de 600 mv. Dado que es un nivel lógico bajo para casi cualquier entrada digital, los pines de los microcontroladores sin alimentación en el mismo terreno se leerán como bajos.

En general, no es bueno permitir que fluya demasiada corriente a través de los diodos de protección. Si los diodos son lo suficientemente robustos, a veces puede encender o parcialmente encender el micro forzando un pin de E / S en alto. Sin embargo, espere que actúe escamoso. La corriente de alimentación no fluirá a través de todas las rutas previstas, y la tensión de alimentación será una caída de diodo por debajo de lo que esté sosteniendo el pin. Esto también aumenta toda la red eléctrica a la que está conectada la micro, lo que puede tener otras consecuencias inesperadas. Si la red eléctrica consume demasiada corriente, el diodo se apagará. Ahora el pin estará muy por encima de la tensión de alimentación del micro, lo que probablemente dañará algunas cosas más en el micro.

Otro problema es el bloqueo de SCR cuando la potencia real se aplica normalmente. Debido a la forma en que se construye el chip y al sesgo del sustrato, la corriente que fluye hacia un pin mientras aumenta la potencia puede causar una especie de efecto de enclavamiento de SCR. Esto consumirá mucho más de la corriente habitual del micro, lo que puede dañar el micro, la fuente de alimentación o ambos.

    
respondido por el Olin Lathrop
1

Sin más detalles tengo que hacer algunas conjeturas. Cuando la alimentación está encendida y está esperando un 1 lógico pero está midiendo un 0 lógico, aquí hay algunos errores típicos:

  • Olvidar configurar el pin como una salida.
  • Para la arquitectura ARM: Olvidar habilitar el pin para que funcione como GPIO.
  • Para la arquitectura ARM: Olvidar habilitar los relojes en el puerto.
  • Voltajes inadecuados en uno de los rieles de alimentación (algunos micros de lujo tienen múltiples rieles / regulador interno / etc. Asegúrese de leer los datos y verificar que todos los voltajes sean cuadrados con un medidor).
  • El pin o el microcontrolador entero se han dañado.
  • Asegúrese de que el código se esté ejecutando realmente (establezca un punto de interrupción en main y verifique con un depurador).

Cuando la alimentación está apagada: el voltaje (medido a la tierra de la parte) está flotando (impedancia muy alta), por lo que es probable que lea cero con un medidor. Este es el comportamiento esperado

    
respondido por el Houston Fortney
1

Si aparentemente está conectado a Vss con la alimentación apagada y es un GPIO, es probable que esté dañado y sufra un cortocircuito. Probablemente notará un aumento en el suministro de corriente si intenta conducirlo alto con la energía encendida.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas