NXP LPC GPIO Fallos en cada encendido. ¿Cómo resolver?

4

He estado usando microcontroladores NXP LPC durante algún tiempo. Un problema al que me he enfrentado en varios proyectos es que cada vez que la MCU recibe alimentación y se configura un GPIO a un nivel lógico BAJO, se produce un error en el pin GPIO.

La traza a continuación se capturó en uno de los GPIO de un LPC1548 y muestra que la falla tiene 1.84V y dura 1.26ms.

Incluso teniendo en cuenta que esta falla tiene una baja amplitud y es rápida, cualquier cosa conectada al GPIO puede tener un comportamiento no deseado en el encendido de la placa.

Hace algún tiempo, no conocía este comportamiento, conecté el GPIO a una puerta MOSFET que controlaba un TRIAC (para el control del motor de CA). Debido a este problema de falla, cada vez que se encendía el sistema, el motor se sacudía / sacudía rápidamente. En este problema particular, tuve que cambiar el MOSFET de canal N a canal P e invertir la lógica GPIO para que no vuelva a fallar. Problema solucionado.

De todos modos, estoy teniendo este problema nuevamente en un proyecto que no puedo seguir cambiando o agregando componentes al tablero (para restricciones de espacio y costos).

¿Alguien sabe cómo puedo eliminar esta falla?

    
pregunta RHaguiuda

2 respuestas

3

El estado de inicio de un gpio generalmente se define como entrada, potencialmente con un impulso débil. En general, siempre debe diseñar circuitos para que no funcionen mal si el pin de control es hi-z. Esto podría ser una resistencia de bajada externa, o podría estar controlando la entrada de habilitación de lo que se conecta el pin. Parece que su pin está aumentando con el voltaje del circuito. Es una buena práctica mantener todos los ics en reinicio hasta que la potencia sea estable. Hay chips diseñados específicamente para esto, vea mcp130 por ejemplo.

Si publicas un esquema, podemos serte de mucha ayuda

    
respondido por el Loganf
0

Es posible que el estado inicial de los pines GPIO sea alto y que su parte del código tarde un poco en inicializarlo. Tuve un problema similar en otro chip ARM.

Esto es lo que haría:

  • Compruebe si otros pines GPIO sufren lo mismo.
  • mueva su código (en ensamblaje) para configurar el pin IO en salida y bajo, camino arriba en la lista de instrucciones / direcciones. Así que una de las primeras cosas que hace el chip es arreglar ese pin.
  • si tiene un pin de E / S de repuesto y puede agregar lógica, coloque una compuerta XOR para que solo el valor 0,1 active la salida.
respondido por el MandoMando

Lea otras preguntas en las etiquetas