Связь ATmega32 с использованием протокола RS-485 Modbus [закрыта]

Я пытаюсь считать значения со счетчика (WDM303FDWA1) через ATmega32. Связь со счетчиком должна осуществляться по протоколу RS-485 Modbus.

Я хотел бы знать, какую микросхему мне нужно использовать для подключения ATmega32 и счетчика, а также примеры кодов для протокола Modbus RS-485.

Я пытаюсь связаться только через один счетчик, и его идентификатор сервера равен 1, скорость передачи может быть любой (по умолчанию 9600).

Ответы (1)

WDM303FDWA1 использует RS485 в качестве линейного интерфейса, а это означает, что вам необходимо подключить Atmega к микросхеме RS485, такой как MAX485. Вот ссылка на предложения Максима по этому устройству и вот чип: -

введите описание изображения здесь

  • RO получает данные от 485 и подключается к вашему Atmega.
  • RE (bar) разрешается чтение, управляемое вашим Atmega - определяет направление данных вместе с DE.
  • DE — привяжите его к RE (выше), и у вас будет один контакт, который управляет направлением данных на линии 485.
  • DI - подключается к линии вывода данных, предназначенной для вашего Atmega.
  • A и B - это 485 линейных соединений.

Если вы посмотрите на страницу 8 этого документа, там подробно описаны все коды, которые вам нужно отправить, чтобы поговорить с устройством. Похоже, что вы должны сначала отправить «пароль», за которым следует код функции, а затем конкретный адрес данных, которые вы хотите прочитать. В pdf-файле есть эти данные.

Что касается формата того, что возвращается, я не могу помочь вам с этим - документ не слишком подробно описывает это, но, похоже, он содержит от 1 до 3 слов.

Я также не могу помочь вам с образцами кодов Modbus для использования в Atmega.

Все образцы в любом случае будут обычным использованием UART. Тому уже много примеров.