línea USART flotante causa reinicio de uC

0

Estoy trabajando en un proyecto con el microcontrolador Atmel SAMD20 (de todas formas, mi pregunta es en un aspecto general, por lo que creo que esto no debería afectar la respuesta)

Utilizo un USART para conectar mi placa al puerto serie para fines de depuración, las líneas TX y RX se conectan directamente a CP2102 RX y TX respectivamente y envío información de depuración a través del puerto serie durante toda la ejecución del programa.

Cuando la etapa de desarrollo ha terminado y el producto está en uso, estos pines ya no se usan y se dejan flotando.

Todo estuvo bien hasta que detecté que hacer ruido (simplemente tocando AMBAS líneas con mis manos) provocaba un reinicio del hardware en la unidad de control y el programa dejaba de funcionar. Sospecho que el uC está interpretando ese ruido como una señal y causando infinitas interrupciones de USART.

¿Qué puedo hacer para ignorar la señal en estos pines cuando el CP2102 no está conectado?

Lo que he intentado:

  • Configuración de un tirón hacia abajo en el pin RX. No funcionó.

Lo que definitivamente PUEDO HACER:

  • Tenga dos tableros diferentes, uno para desarrollo y otro sin esos pines cuando el producto esté terminado.

Qué podría hacer:

  • Tiene dos firmwares diferentes. Una para el desarrollo y otra para la producción que elimina todo el código relacionado con ese USART, evita su inicialización y el envío de información a través de él. Pero, ¿es esta la mejor solución?

¿Hay algún cambio de hardware o software que pueda hacer para evitar este problema utilizando solo un firmware?

¡Muchas gracias!

    
pregunta cventu

1 respuesta

3
  

Configuración de un tirón hacia abajo en el pin RX. No funcionó.

Mala idea, que sería detectada como una ruptura. Use una resistencia pullup para RX, ya que las señales UART están inactivas.

  

Todo estuvo bien hasta que detecté que hacer ruido (simplemente tocando AMBAS líneas con mis manos) provocó un reinicio del hardware en la unidad de control y el programa dejó de funcionar.

Tocar líneas de señal con las manos descubiertas puede causar ESD, y no, se supone que la MCU no funciona correctamente en ese caso.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas