uart problema TTL

1

Mi configuración

Tengo un Arduino Mega conectado con mi PCB y ambas placas intercambian datos utilizando UART TTL @ 57600 baudios.

Ambos tienen sus propias fuentes de alimentación separadas (5 voltios cada una; Mega se alimenta a través de mi computadora portátil USB y la PCB tiene su propia fuente de alimentación aislada). He conectado ambos sus terrenos junto con los pines Tx / Rx.

Debido a los requisitos de la aplicación, el Mega a menudo reinicia la PCB apagando su suministro principal (que se alimenta a través del relé) y luego lo vuelve a encender después de unos 5 segundos (asegurándose de que toda la carga se haya drenado). / p>

Observations

Me he dado cuenta de que cuando el Mega interrumpe el suministro de la PCB, el circuito aún permanece encendido (a alrededor de 2 voltios). Sospecho que esto se debe a que el pin Tx de mi Mega suministra suficiente corriente, lo que mantiene mi tablero con vida.

El problema

Ahora esta configuración funciona bien casi el 70% del tiempo. Pero hay ocasiones en las que después del encendido, la PCB ya no puede comunicarse a través de UART (no recibo nada en el puerto UART de mi Mega), tal vez porque el microcontrolador no se reinicia correctamente, y de alguna manera se confunde con su silicona. Pero no estoy seguro, esto es solo una suposición.

De todos modos, en tales casos, tengo que restablecer manualmente las fuentes de alimentación de mis circuitos, después de lo cual funcionan sin problemas.

¿Cómo puedo prevenir esto? He intentado aplicar resistencias limitantes de corriente de 10 K, pero aumenta el retraso de propagación y arruina la comunicación (sospecho que esto se debe a que estoy usando una alta velocidad de transmisión). No he experimentado con pull-ups / pull-downs hasta ahora, pero ejecutaré las pruebas y publicaré una actualización mañana.

He intentado encontrar una solución, pero no estoy seguro de dónde encontrar exactamente una solución. Esto no es exactamente un problema de bucle de tierra. ¿O es?

Por favor, sugiera.

    

2 respuestas

3

Si el problema se debe a la alimentación a través del pin Tx (que es definitivamente posible), puede resolverlo desactivando ese pin antes de apagarlo. Solo configúralo como una entrada (digital o analógica).

    
respondido por el CL.
1

Puede usar optoacopladores para el aislamiento de líneas de señal. En ese caso, no es necesario que comparta argumentos entre AMega y el PCB personalizado y no habrá un problema de alimentación parasitaria.

    
respondido por el nvd

Lea otras preguntas en las etiquetas