Diferencias max485 y max13487

En mi aplicación, necesito transmitir datos entre dos arduinos, uno como maestro y otro como esclavo usando 485. Los arduinos están conectados a estos módulos, que tienen un Max485 :

ingrese la descripción de la imagen aquí

Esquemático:

ingrese la descripción de la imagen aquí

Con estos módulos todo funciona bien (38400 bps). A continuación, quiero usar Max13487 para no tener que preocuparme por las líneas de control de dirección. Según entendí, Max13487 es la versión de control de dirección automática de Max485, y sus huellas son compatibles. Tomé estos módulos, desoldé el Max485 y soldé el Max13487. RE y DE (ahora RE y SHDW) están atados y elevados.

Lo que sucede a continuación es que la comunicación no funciona. Puedo ver los datos que salen del controlador maestro, pero el receptor esclavo no los vuelve a convertir a 5V.

Los voltajes en las líneas de datos son diferentes para el 485 y el 13487:

                   Low   High
 - MAX 485:  -A    3.3V  2.3V  
 - MAX 485:  -B    1.3V  3.3V 
 - MAX13487: -A    2.3V  1.3V  
 - MAX13487: -B    2.3V  3.5V  

¿Qué me estoy perdiendo? Gracias.

• AutoDirection habilita al conductor automáticamente en la transmisión, eliminando un Opto u otros medios discretos de aislamiento : transmisión, no recepción. Ha inhabilitado su REtirando hacia arriba.
No es así. De la hoja de datos: RE, habilitación de salida del receptor. Conduzca RE bajo para habilitar el RO. Conduzca RE alto para permitir que el circuito de dirección automática controle el receptor. Además, hice otra prueba: esclavo siempre con MAX13487, maestro con MAX485, y la cosa está funcionando, por lo que el RE alto en el MAX13487 no parece impedir la recepción.
Sí. Echaba de menos esa mesa.
Estas resistencias de polarización de 20k (R5 y R6) me parecen sospechosas. Normalmente, debe garantizar Vab> 200 mV, por lo tanto, no más de 650 ohmios de resistencias de polarización para la resistencia de entrada del receptor estándar (12k) y Vcc = 5V. Pero este no es probablemente su principal problema, ya que en ese caso tendría recepciones defectuosas. Le aconsejo que conecte un módulo con MAX13487 al que tiene MAX485, y verifique si tiene alguna recepción.
He cambiado las resistencias de 20k por 560Ohm, resultado negativo. Conectados solo ambos módulos, resultados negativos. Lo único que funcionó para mí fue tener maestro con Max13487 y esclavo con Max485. Así, el esclavo tiene que controlar la línea RE, pero para mi aplicación está bien.

Respuestas (1)

Probablemente sea demasiado tarde para hacer algo bueno, pero usé con éxito estos chips hace una década, hablando solo entre ellos (como intentan hacer aquí). La única diferencia entre mi configuración y la tuya es que configuré la línea RE_ baja, en lugar de alta. Según mi lectura de la hoja de datos, esto hace que el receptor (pero no el transmisor) esté permanentemente habilitado, en lugar de contar con la máquina de estado interna para habilitarlo. Ese proyecto tuvo muchos otros problemas, pero me alegró descubrir que estos funcionaron a la primera, sin retoques.

Mirando hacia atrás en mis esquemas para ese proyecto, veo que no puse ninguna resistencia pull-up/pull-down en los módulos, y todavía funcionó. Sin embargo, estoy de acuerdo con su elección de las resistencias de 20k (estoy poniendo 10k en mi proyecto actual).