¿Cuál es la configuración de pin común al reiniciar el microcontrolador?

5

Ahora he revisado dos hojas de datos y manuales de usuario en busca de dos microcontroladores diferentes (LPC2387 y STM32F4xx), y no he encontrado (probablemente faltó) ningún lugar donde se describiera el estado inicial de los pines GPIO en el encendido o después del reinicio.

Mi pregunta no es específica para estas MCU, pero en general, ¿es más común que los pines GPIO se inicialicen como entrada flotante (alto-z) al reiniciarse? ¿Existe una convención estándar, o diferentes MCU hacen cosas diferentes, y uno necesita leer la hoja de datos / manual para cada MCU con el que se trabaja?

    
pregunta Mark

4 respuestas

6

Realmente no creo que la información falte en las hojas de datos. Nunca lo he visto NO allí, aunque nunca he usado los microcontroladores en particular que mencionas.

En general, al menos para los micros que he usado, las líneas de E / S se activan para ser lo más benignas para el circuito externo que sea posible. Esto significa ir a alta impedancia en la medida de lo posible. Además, los pines que pueden ser entradas analógicas generalmente se configuran de esa manera en el encendido. Esto se debe a que las entradas digitales a menudo no están destinadas a mantenerse a tensiones intermedias durante un tiempo prolongado. Algunos podrían consumir más energía en ese caso, u oscilar, o hacer otras cosas molestas y posiblemente fuera de especificaciones.

Sin embargo, la respuesta definitiva está en la hoja de datos de cualquier micro que estés usando.

    
respondido por el Olin Lathrop
6

De la nota de la aplicación por ST ( AN3430 ):

  

Después de un reinicio, todos los pines STM32F2 están configurados como entradas, excepto algunos pines JTAG, como PA15 JTDI con pull-up, PA14 JTCK con pull-down y PA13 JTMS con pull-up.

Tiene sentido tener un estado de alta Z después del restablecimiento porque es el estado predeterminado más seguro. En el caso de los micros de la serie STM32F2, también tiene el menor consumo de energía.

    
respondido por el Armandas
6

Para el LPC2387, la información está definitivamente allí, y espero que esto también sea cierto para el STM. Si no puede encontrar la información en la hoja de datos, eche un vistazo a la serie manual del usuario ; Esto contiene toda la información compartida por todos los miembros de una familia de controladores, en el caso del NXP que es el LPC23xx. La información que necesita está en la página 172: todos los registros de E / S están configurados para ingresar.

Esto es común a la mayoría de los controladores. La razón es que conducir una salida alta o baja en el reinicio puede tener efectos no deseados, dependiendo de lo que esté conectado a los pines.

    
respondido por el stevenvh
3

El comportamiento más común es que los microcontroladores ajusten todos los pines configurables a una variedad de flotadores de alto Z, lo que permite que los circuitos externos que se encuentran en el estado de los pines usen de forma segura los pull-ups o pull-downs sin consumo de corriente estática . Algunos controladores configurarán algunos o todos los pines para un pull-up débil; algunos los pondrán a punto débil. Nunca he usado un microcontrolador con una función de retenedor de pines (pull-up débil cuando un pin está alto; pull-down débil cuando está bajo) pero no me sorprendería en absoluto que los micros que tienen tales funciones lo habiliten de forma predeterminada .

Probablemente sea importante tener en cuenta que muchos microcontroladores tienen algunos pines que pueden configurarse como entradas analógicas, lo que deshabilita los buffers de entrada en ellos. Esta función puede guardar 10uA-100uA a la corriente dibujada por la parte para cada pin que se encuentra en la mitad del riel. Algunas partes habilitan de forma predeterminada sus buffers de entrada, mientras que otras partes los desactivan. Las piezas que habilitan los búferes de forma predeterminada pueden generar un exceso de corriente hasta que el código se haya ejecutado lo suficiente para deshabilitarlos. Las piezas que los deshabilitan de forma predeterminada pueden causar problemas con el software que no sabe que deben estar habilitados antes de su uso.

    
respondido por el supercat

Lea otras preguntas en las etiquetas