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 :
Esquemático:
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.
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).
Eugenio Sh.
RE
tirando hacia arriba.gotramaval
Eugenio Sh.
Andrejs Gasilovs
gotramaval