arduino mega rs-485

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

hotfatboy пишет:

смею предположить , что разрядностью системы, адрес каждого устройства представлен в виде восьмибитового значения, а значит количество уникальных комбинаций равно 256,только ,опять таки лишь предполагаю, тут ошибка не 256 а 255 адресов, нулевой еще , скорее всего

Какой системы ? RS485 не имеет ограничений по адресации, потому что он вообще не имеет адресации. Это вам не модбас или что либо другое. Нет у него разрядности. Поскольку это низкоуровневый протокол, не нормирующий логику передачи данных. RS485 определяет как передавать, а не что передавать. Так что повесить на RS485, в теории, можно бесконечное множество узлов. И нужен, ОДИН, Карл, ТОЛЬКО ОДИН uart. А вот если мы возьмем на себя обязательство работать, например по ModBus, тогда клиентов может быть только 254, поскольку стандартом исключаются адреса 0 и 0xFF, один зарезервирован под мастера, второй - широковещательный.

Так что сначала вам обязательно нужно разобраться в выбранном, вами же, решении, понять, а потом вас самому станет все ясно. Начните сначала с понимания отличий между RS485 и модбас, хотя сравнить проводник с электричеством как то неэтично, что ли :)

И как дополнение. RS485 не обязывает объединять узлы по GND и питанию, часто это вредит. Если сделано все правильно, то достаточно подключить два провода A и В. Но из опыта, не модули, что вы используете в своем проекте , страшное дерьмо. И очень большое их количество не работают.  Китайцы используют какие то странные MAX485. Скорее всего проблема в этом. Не хотите проблем берите такие https://aliexpress.ru/item/1005001346792286.html , тем более, что они автоматически переключают направление передачи. И у них есть все резисторы и диоды, которые обязывает ставить по даташиту производитель MAX485.

nik182
Offline
Зарегистрирован: 04.05.2015

hotfatboy пишет:

Вот у меня сейчас точно по этой картинке все и подключено ,с той лишь разницей что на нано к софтсериал портам подключил (d6,d7) а так все тоже самое, и ещё одно уточнение ,на меге у меня к 485 подключено в разъём re (режим передатчика) и установлено значение LOW,в принципе все правильно ?

Нет. Мега приёмник. Нарисуй полную схему. Поставь стрелочки куда бегут символы. От наны - 485 около наны должен быть передатчиком, к меге - 485 около меги должен быть приёмником. 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

brokly
все модули что заказывал я проверял для связи двух уно,так что не думаю что в них проблема,потому что как-то не верится что вот уно они соединяют а вот меги нет

а на счёт 255 ну только предположил, обосрался, признаю

Green
Offline
Зарегистрирован: 01.10.2015

Чуток подправлю brokly, для лучшего понимания ТС. RS485 не протокол, а интерфейс, т.е. физика. Он определяет уровни в кабелях и временные параметры. Т.е., МК с помощью UART и драйвера МАХ485 формирует этот интерфейс. А уже для связи между ус-вами используется протокол (modbus, например), а там уже номера и расписано кто, что и после чего должен говорить.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Интерфейс – совокупность аппаратных и программных средств, необходимых для взаимодействия с программой, устройством, функцией и т. д. Протокол — набор правил, соглашений, сигналов, сообщений и процедур, регламентирующий взаимодействие между сопрягаемыми объектами.

Не надо меня поправлять :) Тут не может быть однозначного мнения. Вот модбас, однозначно протокол. UARТ - однозначно интерфейс.  А вот RS485 можно рассматривать и так и так.

sadman41
Offline
Зарегистрирован: 19.10.2016

У меня был случай со счётчиком э/э с Али - облегченный модуль 485, через который я читал данные со счётчика, жутко нагрелся и попер давать искаженные данные. Т.е. количество байт как в посылке, а внутрях пакета - треш. Но и так же было у товарища в такой же конфигурации - битый пакет часто прилетал. Пока он земли не соединил.

Вобщем, модуль очень своеобразный.

hotfatboy
Offline
Зарегистрирован: 13.10.2021

sadman41, занятно, потому что только вот сегодня заметил что один из модулей прям люто греется спустя время(где-то час я держал их включенными).

nik182, вот такая "схема" получается, как я все это понимаю, от нано на вывод RE 485 каждую секунду приходит HIGH,на вывод 485 от меги приходит LOW всегда (то есть модуль всегда в режиме приемника).

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Нагрев это признак сверхтоков. Скорее всего, та что греется уже труп. Вот что бы они не вылетали нужно собирать вот так (стабилитроны на 13 вольт):

Лот: 3830949. Фото: 1. Набор для сборки преобразователя... Микроконтроллеры

hotfatboy
Offline
Зарегистрирован: 13.10.2021

ок, тогда почему с уно вместо меги все работает?

 

nik182
Offline
Зарегистрирован: 04.05.2015

Начинать надо без 485. Tx наны соединить с Rx1 меги и получить выход на мониторе РС. Потом 485 подключать.

SAB
Offline
Зарегистрирован: 27.12.2016

.......стабилитроны на 13 вольт....... - там не сабилитроны применяют, а супрессоры

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

SAB пишет:

.......стабилитроны на 13 вольт....... - там не сабилитроны применяют, а супрессоры

На схеме нарисованы сабилитроны. Хочешь применяй супрессоры,  из практики, стабиллитронов хватает за глаза. Китайский  МАХ485, на самом деле очень нежный, чуть что не так выгорает.

ТС, ты сей час подключи две уны и расскажи нам продолжают они работать или нет.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Тс, на схеме #57 почему на передатчике пин DE не используется? Его нужно в HIGH при передаче. 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

касательно вопроса #63, я такую же схему соединения использовал при связи двух уно и нано - уно и все работало, попробую через DE

 

а по поводу #60, я так сделал,все ок все передается, теперь уже стоит пробовать с обоими 485 модулями пробовать?

nik182
Offline
Зарегистрирован: 04.05.2015

Да. Если передаётся, то с модулями 485 тоже должно. Надо только в правильном направлении подать напряжение на ДЕ. Общая практика - они всегда стоят все как приёмники. На передачу переключать только на время передачи символа.

hotfatboy
Offline
Зарегистрирован: 13.10.2021

Не,все равно не работает, даже попробовал связать между собой софтсериал который сделал на меге и так с нано напрямую связять,все ок, но как только делаю через 485ые то вообще ничего не работает , но блин, как только вместо меги ставлю уно все сразу работает, вот это для меня вообще загадка

nik182
Offline
Зарегистрирован: 04.05.2015

Остаётся последнее. Поставить мегу и уну параллельно. Это можно если соединить только Rx уны и Rx1 меги. Запустить два монитора и смотреть что будет. Земли должны быть соединены. 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

Чьи земли должны быть соединены?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ТС, смотрите внимательно направление передачи. У мах485, вообще то за это отвечают две ноги. А на схеме у вас одна.... 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

High на одну ногу - приём , на другую - передача ,как я понял ,но как было сказано выше,вроде как по умолчанию стоит в режиме приема,и в принципе так оно и есть 

MaksVV
Offline
Зарегистрирован: 06.08.2015

ну едрён батон. Пины DE и RE инвертированы. Соедините уже их вместе и подавайте на оба HIGH для передачи и LOW для приёма

hotfatboy
Offline
Зарегистрирован: 13.10.2021

MaksVV

просто все это работало с нано-уно и уно-уно , но ок, попробую

я просто уже не знаю в чем проблема, мне кажется как будто я тут всех достал)

b707
Offline
Зарегистрирован: 26.05.2017

hotfatboy пишет:

мне кажется как будто я тут всех достал)

не без этого, я уже вчера бросил заходить в вашу ветку :)

hotfatboy
Offline
Зарегистрирован: 13.10.2021

Господа(и возможно дамы),я конечно не профессор Франкенштейн , но готов вас всех заверить, оно живое, все заработало

hotfatboy
Offline
Зарегистрирован: 13.10.2021

Кароч для все кто такой же тупой как я пусть попробуют так же на RE и DE подавать сигнал 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А всего то нужно было подключить так как нарисовано ВЕЗДЕ в интернете. А не по умолчанию, которого кстати, нет. 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

ну, из ошибок всегда извлекается больше опыта, в любом случае всем спасибо за помощь 

hotfatboy
Offline
Зарегистрирован: 13.10.2021

ну вот,появилась новая проблема, вчера все поработало и было все ок ,а сегодня снова взялся ничего не меняя и на передающей стороне ( нано ) max485 стал сильно греться, что за напасть,было ли у кого?