ATmega32 comunicándose mediante el protocolo RS-485 Modbus [cerrado]

Estoy tratando de leer valores de un medidor (WDM303FDWA1) a través de un ATmega32. La comunicación con el medidor debe realizarse con el protocolo RS-485 Modbus.

Quisiera saber que IC tengo que usar para conectar el ATmega32 y el medidor, y ejemplos de codigos para el protocolo Modbus RS-485.

Estoy tratando de comunicarme a través de un solo medidor y su ID de servidor es 1, la tasa de baudios podría ser cualquier cosa (el valor predeterminado es 9600).

Respuestas (1)

El WDM303FDWA1 usa RS485 como conexión de interfaz de línea y esto significa que necesita conectar el Atmega a un chip RS485 como un MAX485. Aquí hay un enlace a las ofertas de Maxim en ese dispositivo y aquí está el chip: -

ingrese la descripción de la imagen aquí

  • RO recibe datos del 485 y se conecta a su Atmega
  • RE (barra) es una habilitación de lectura impulsada desde su Atmega: define la dirección de datos junto con DE
  • DE: ate esto a RE (arriba) y tendrá un pin que controla la dirección de los datos en la línea 485.
  • DI: se conecta a la línea de salida de datos designada para su Atmega.
  • A y B son las conexiones de la línea 485

Si miras en la página 8 de este documento, se detallan todos los códigos que necesitas enviar para hablar con el dispositivo. Parece que primero debe enviar la "contraseña" seguida de un código de función, luego la dirección específica de los datos que desea leer. El archivo pdf tiene esos datos.

En cuanto al formato de lo que regresa, no puedo ayudarlo con eso: el documento no entra en demasiados detalles al respecto, pero parece tener entre 1 palabra y 3 palabras.

Tampoco te puedo ayudar con muestras de códigos modbus para usar en el Atmega.

De todos modos, las muestras serían solo un uso normal de UART. Ya hay muchos ejemplos de eso.