ADM2587 usando la entrada uart

1

Tengo un diseño con el ADM2587 en modo half duplex:

SiquierorecibiralgosobreRS485,extraigoREyDE.Estoestáprobadoyfuncionabien.Lomismoconelenvío:REyDEalto,envíodetrabajos,todosestáncontentos.

Ahora,avecesquierotrabajardirectamenteconelUARTenlaplaca(laslíneasRXyTXsealimentandelADM2587).Aquíesdondelascosasseponendifíciles.ParausarelUART,tengoquehacerlocontrario:pararecibirtengoquejalarREyDEalto,paraenviarREyDEbajo.Sihagoalgomás,elADMparecetirardesuslíneasRXyTX,ymimicrocontroladornopuedecomunicarsecorrectamente.

¿HagoalgomaloADMrealmentenopuedecoexistirconalgunaotracomunicaciónserieensuslíneasdeentrada?Enmimundoidealdesueños,tendríaREconstantementebajo(habilitandoelreceptor)yDEnormalmentebajoparamantenermicomunicacióndeuartenlapizarra.Solosideseoenviaralgo,habilitaréDEyenviarédatosatravésdeRS485.

Peroestoresultaencaosycaos.RS485noesestable(muchoserroresdebitenlacomunicacióndebidoanivelesdevoltajeincorrectos)yUARTnofuncionaenabsoluto(puedoverlosdatosrecibidosenlaslíneas,peroelvoltajeBAJOsolovaa3V,nocompletamentehaciaabajoa0V).

Imagenacontinuación:SeñaldeRXenelpindelmicrocontrolador,RELOW,DELOW

¿Algunaidea?¿CómoseimplementaríaunADM25XX"recibir solo", donde el chip no contiene las líneas?

    
pregunta jwsc

1 respuesta

1
  

En mi mundo ideal de sueños, tendría RE constantemente bajo (habilitando el receptor) y DE normalmente bajo para mantener mi comunicación de uart en la pizarra. Solo si deseo enviar algo, habilitaré DE y enviaré datos a través de RS485.

Es perfectamente aceptable tener RE constantemente bajo (atado al suelo) y activar DE solo cuando se desea enviar algo. En este caso, la salida del receptor ADM2587 (RO) estará constantemente encendida y seguirá constantemente las líneas A y B. Su pin MCU Rx recibirá todo lo que se transmite en el bus, incluidos sus propios mensajes (eco).

Algunas veces puede ser muy útil, pero entiendo que no es lo que realmente quieres: quieres conectar tu línea MCU Rx en paralelo a alguna otra línea MCU Tx. En este caso, tendrá 2 controladores (ADM2587 RO y otro pin MCU Tx) conectados a su pin MCU Rx, lo cual no es bueno.

Esto es lo que estás viendo en la imagen. Tiene un conflicto: un controlador (suponga que otra MCU) está intentando enviar un bit (tire del voltaje a nivel BAJO), pero al mismo tiempo otro controlador (pin ADM2587 RO) no está enviando nada, eso significa que está intentando preservar el nivel de salida ALTO.

El principal problema aquí es que debe asegurarse de que solo 1 sea el controlador a la vez. Para lograr su objetivo, debe desactivar el controlador y el receptor de ADM2587 en momentos en que desee realizar una comunicación UART paralela con otra MCU. Por otra parte, debe desactivar otro controlador MCU (poner el pin Tx en estado Z) cuando desee recibir datos de ADM2587.

Puede funcionar, pero es necesario tener un control total de la situación, de lo contrario las colisiones son muy posibles.

    
respondido por el GAttuso

Lea otras preguntas en las etiquetas