Control automático de RTS para convertidores de RS-232 a RS-485

2

Tengo mi prototipo RS-485 en funcionamiento. Ahora, lo he conectado a mi PC a través de RS-232 ya que quiero hacer que la PC sea la maestra. Sin embargo, cuando me conecto al circuito utilizando Hyperterminal, la línea RTS, conectada a RE y DE, siempre va alta. La PC puede enviar datos al circuito pero no recibirlos, ya que el RTS nunca baja. Cambiar el handshaking de none a hardware no ayudó.

Más tarde realicé modificaciones al circuito, de modo que, en el lado PIC, el pin que impulsa las altas RE y DE del SN75176 cuando transmite datos también impulsará las RE y DE del SN75176 en la parte baja de la PC para permitir la recepción. Esto, en efecto, convierte la línea de dos a tres. Está mal, pero lo estoy haciendo para ver cómo funcionará realmente si el pin RTS funciona correctamente.

¿Cómo puedo seguir haciendo que el pin RTS funcione correctamente? Sé que solo puedo crear una aplicación utilizando Visual Studio para conectarme a la línea y hacer que RTS se active manualmente, pero hacerlo es demasiado problemático y prefiero tener una solución de hardware si es posible.

    
pregunta Sodrohu

3 respuestas

1

Este hombre RS485 al convertidor RS232 - parece estar haciendo lo que está haciendo y logrando el éxito.

Parece que el Hyperterminal debería ser capaz de controlar adecuadamente RTS.

    
respondido por el Russell McMahon
0

Los convertidores FTDI USB a serie, como FT232R, FT2232R, FT2232H, etc., cuando se operan en un modo UART tienen un pin de dirección que sube cuando el chip está transmitiendo. He implementado una placa convertidora USB / RS-485 utilizando un IC FTDI, y funciona sin problemas. Es probable que no quiera escuchar eso, pero probablemente sea el método más fácil y confiable. En lo que respecta a RS-232 a RS-485, recuerdo haber leído sobre usando un monoestable para proporcionar la señal de dirección para el controlador IC RS-485.

    
respondido por el Thorn
0

En mi Orange Pi Zero terminé controlando el RTS a través de GPIO ... Uso python, por lo que definitivamente no es muy preciso, pero para una conexión UART - RS485 de 19200 a mi inversor ABB es lo suficientemente preciso.

Fragmento:

ser = serial.Serial('/dev/ttyS1', 19200)
gpio.output(led, 1)
data ="
ser = serial.Serial('/dev/ttyS1', 19200)
gpio.output(led, 1)
data ="%pre%1%pre%2%pre%3%pre%4"
ser.write(data)
print len(data)
sleep(len(data)*8.0/19200)
gpio.output(led,0)
sleep(0.1)
ser.close()
1%pre%2%pre%3%pre%4" ser.write(data) print len(data) sleep(len(data)*8.0/19200) gpio.output(led,0) sleep(0.1) ser.close()

Resultado:

    
respondido por el Riccardo Manfrin

Lea otras preguntas en las etiquetas