Activar y desactivar el dispositivo serie conectado al Arduino HardwareSerial por software

0

Quiero usar el puerto serie de hardware (pin 0 RX y 1 TX) para conectar un MAX485 IC. Internamente, estos pines también están conectados al microcontrolador de conversión de USB a serie incorporado, que se utiliza para actualizar el ATMega328 con el código de arranque.

Sé que no puedo tener dos dispositivos seriales diferentes (USB y MAX485 en ese caso) al mismo tiempo sin interferir entre sí. Dado que quiero usar HardwareSerial y no una solución basada en SoftwareSerial, he agregado dos puentes en mi diseño que me permiten conectar y desconectar el MAX485 al pin RX 0 y al pin TX 1 si quiero cargar un nuevo boceto.

Tengo dos preguntas:

  • ¿Existe una forma elegante de reducir los dos puentes, TX y RX a solo uno que, cuando está en corto, conecta o desconecta ambos pines al mismo tiempo (máx. RX y TX al pin 0 y 1 en el Arduino)
  • ¿Es posible usar un software de transistores controlado por un pin arduino para tener el mismo efecto y dejarme elegir cuándo quiero que el max485 esté conectado y cuándo quiero usar el USB arduino para ttl?

La idea es que si la computadora reinicia el dispositivo para cargar un nuevo boceto, el dispositivo USB se activará, una vez que el dispositivo se haya iniciado como parte del proceso de inicio, se habilitará el dispositivo MAX y el USB incorporado. desactivado ya que MAX IC tendrá preferencia.

    
pregunta Marc

1 respuesta

0

No es necesario agregar circuitos activos adicionales para esto.

El MAX485 tiene un pin de Habilitar Recepción ( /RE ). Puede conectar esto a un GPIO con una resistencia de pull-up, de modo que se deshabilitará cuando ese pin no esté configurado durante la operación del cargador de arranque. Una vez que se inicie el programa de aplicación, puede configurar el pin de habilitación como salida y reducirlo para habilitar el lado de recepción del MAX485, que superará la potencia del resistor en serie en la ruta ATmega16u2.

Dado que un bus RS845 normalmente necesita habilitación de transmisión explícita, probablemente ya tenga la MAX485 transmisión habilitada (DE) conectada a un GPIO. Solo tenga en cuenta que, a diferencia de /RE , DE es activo alto, por lo tanto, para que esté deshabilitado de forma predeterminada, necesitará un resistor desplegable.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas