смею предположить , что разрядностью системы, адрес каждого устройства представлен в виде восьмибитового значения, а значит количество уникальных комбинаций равно 256,только ,опять таки лишь предполагаю, тут ошибка не 256 а 255 адресов, нулевой еще , скорее всего
Какой системы ? RS485 не имеет ограничений по адресации, потому что он вообще не имеет адресации. Это вам не модбас или что либо другое. Нет у него разрядности. Поскольку это низкоуровневый протокол, не нормирующий логику передачи данных. RS485 определяет как передавать, а не что передавать. Так что повесить на RS485, в теории, можно бесконечное множество узлов. И нужен, ОДИН, Карл, ТОЛЬКО ОДИН uart. А вот если мы возьмем на себя обязательство работать, например по ModBus, тогда клиентов может быть только 254, поскольку стандартом исключаются адреса 0 и 0xFF, один зарезервирован под мастера, второй - широковещательный.
Так что сначала вам обязательно нужно разобраться в выбранном, вами же, решении, понять, а потом вас самому станет все ясно. Начните сначала с понимания отличий между RS485 и модбас, хотя сравнить проводник с электричеством как то неэтично, что ли :)
И как дополнение. RS485 не обязывает объединять узлы по GND и питанию, часто это вредит. Если сделано все правильно, то достаточно подключить два провода A и В. Но из опыта, не модули, что вы используете в своем проекте , страшное дерьмо. И очень большое их количество не работают. Китайцы используют какие то странные MAX485. Скорее всего проблема в этом. Не хотите проблем берите такие https://aliexpress.ru/item/1005001346792286.html , тем более, что они автоматически переключают направление передачи. И у них есть все резисторы и диоды, которые обязывает ставить по даташиту производитель MAX485.
Вот у меня сейчас точно по этой картинке все и подключено ,с той лишь разницей что на нано к софтсериал портам подключил (d6,d7) а так все тоже самое, и ещё одно уточнение ,на меге у меня к 485 подключено в разъём re (режим передатчика) и установлено значение LOW,в принципе все правильно ?
Нет. Мега приёмник. Нарисуй полную схему. Поставь стрелочки куда бегут символы. От наны - 485 около наны должен быть передатчиком, к меге - 485 около меги должен быть приёмником.
brokly
все модули что заказывал я проверял для связи двух уно,так что не думаю что в них проблема,потому что как-то не верится что вот уно они соединяют а вот меги нет
а на счёт 255 ну только предположил, обосрался, признаю
Чуток подправлю brokly, для лучшего понимания ТС. RS485 не протокол, а интерфейс, т.е. физика. Он определяет уровни в кабелях и временные параметры. Т.е., МК с помощью UART и драйвера МАХ485 формирует этот интерфейс. А уже для связи между ус-вами используется протокол (modbus, например), а там уже номера и расписано кто, что и после чего должен говорить.
Интерфейс – совокупность аппаратных и программных средств, необходимых для взаимодействия с программой, устройством, функцией и т. д. Протокол — набор правил, соглашений, сигналов, сообщений и процедур, регламентирующий взаимодействие между сопрягаемыми объектами.
Не надо меня поправлять :) Тут не может быть однозначного мнения. Вот модбас, однозначно протокол. UARТ - однозначно интерфейс. А вот RS485 можно рассматривать и так и так.
У меня был случай со счётчиком э/э с Али - облегченный модуль 485, через который я читал данные со счётчика, жутко нагрелся и попер давать искаженные данные. Т.е. количество байт как в посылке, а внутрях пакета - треш. Но и так же было у товарища в такой же конфигурации - битый пакет часто прилетал. Пока он земли не соединил.
sadman41, занятно, потому что только вот сегодня заметил что один из модулей прям люто греется спустя время(где-то час я держал их включенными).
nik182, вот такая "схема" получается, как я все это понимаю, от нано на вывод RE 485 каждую секунду приходит HIGH,на вывод 485 от меги приходит LOW всегда (то есть модуль всегда в режиме приемника).
.......стабилитроны на 13 вольт....... - там не сабилитроны применяют, а супрессоры
На схеме нарисованы сабилитроны. Хочешь применяй супрессоры, из практики, стабиллитронов хватает за глаза. Китайский МАХ485, на самом деле очень нежный, чуть что не так выгорает.
ТС, ты сей час подключи две уны и расскажи нам продолжают они работать или нет.
Да. Если передаётся, то с модулями 485 тоже должно. Надо только в правильном направлении подать напряжение на ДЕ. Общая практика - они всегда стоят все как приёмники. На передачу переключать только на время передачи символа.
Не,все равно не работает, даже попробовал связать между собой софтсериал который сделал на меге и так с нано напрямую связять,все ок, но как только делаю через 485ые то вообще ничего не работает , но блин, как только вместо меги ставлю уно все сразу работает, вот это для меня вообще загадка
Остаётся последнее. Поставить мегу и уну параллельно. Это можно если соединить только Rx уны и Rx1 меги. Запустить два монитора и смотреть что будет. Земли должны быть соединены.
High на одну ногу - приём , на другую - передача ,как я понял ,но как было сказано выше,вроде как по умолчанию стоит в режиме приема,и в принципе так оно и есть
ну вот,появилась новая проблема, вчера все поработало и было все ок ,а сегодня снова взялся ничего не меняя и на передающей стороне ( нано ) max485 стал сильно греться, что за напасть,было ли у кого?
смею предположить , что разрядностью системы, адрес каждого устройства представлен в виде восьмибитового значения, а значит количество уникальных комбинаций равно 256,только ,опять таки лишь предполагаю, тут ошибка не 256 а 255 адресов, нулевой еще , скорее всего
Какой системы ? RS485 не имеет ограничений по адресации, потому что он вообще не имеет адресации. Это вам не модбас или что либо другое. Нет у него разрядности. Поскольку это низкоуровневый протокол, не нормирующий логику передачи данных. RS485 определяет как передавать, а не что передавать. Так что повесить на RS485, в теории, можно бесконечное множество узлов. И нужен, ОДИН, Карл, ТОЛЬКО ОДИН uart. А вот если мы возьмем на себя обязательство работать, например по ModBus, тогда клиентов может быть только 254, поскольку стандартом исключаются адреса 0 и 0xFF, один зарезервирован под мастера, второй - широковещательный.
Так что сначала вам обязательно нужно разобраться в выбранном, вами же, решении, понять, а потом вас самому станет все ясно. Начните сначала с понимания отличий между RS485 и модбас, хотя сравнить проводник с электричеством как то неэтично, что ли :)
И как дополнение. RS485 не обязывает объединять узлы по GND и питанию, часто это вредит. Если сделано все правильно, то достаточно подключить два провода A и В. Но из опыта, не модули, что вы используете в своем проекте , страшное дерьмо. И очень большое их количество не работают. Китайцы используют какие то странные MAX485. Скорее всего проблема в этом. Не хотите проблем берите такие https://aliexpress.ru/item/1005001346792286.html , тем более, что они автоматически переключают направление передачи. И у них есть все резисторы и диоды, которые обязывает ставить по даташиту производитель MAX485.
Вот у меня сейчас точно по этой картинке все и подключено ,с той лишь разницей что на нано к софтсериал портам подключил (d6,d7) а так все тоже самое, и ещё одно уточнение ,на меге у меня к 485 подключено в разъём re (режим передатчика) и установлено значение LOW,в принципе все правильно ?
Нет. Мега приёмник. Нарисуй полную схему. Поставь стрелочки куда бегут символы. От наны - 485 около наны должен быть передатчиком, к меге - 485 около меги должен быть приёмником.
brokly
все модули что заказывал я проверял для связи двух уно,так что не думаю что в них проблема,потому что как-то не верится что вот уно они соединяют а вот меги нет
а на счёт 255 ну только предположил, обосрался, признаю
Чуток подправлю brokly, для лучшего понимания ТС. RS485 не протокол, а интерфейс, т.е. физика. Он определяет уровни в кабелях и временные параметры. Т.е., МК с помощью UART и драйвера МАХ485 формирует этот интерфейс. А уже для связи между ус-вами используется протокол (modbus, например), а там уже номера и расписано кто, что и после чего должен говорить.
Интерфейс – совокупность аппаратных и программных средств, необходимых для взаимодействия с программой, устройством, функцией и т. д. Протокол — набор правил, соглашений, сигналов, сообщений и процедур, регламентирующий взаимодействие между сопрягаемыми объектами.
Не надо меня поправлять :) Тут не может быть однозначного мнения. Вот модбас, однозначно протокол. UARТ - однозначно интерфейс. А вот RS485 можно рассматривать и так и так.
У меня был случай со счётчиком э/э с Али - облегченный модуль 485, через который я читал данные со счётчика, жутко нагрелся и попер давать искаженные данные. Т.е. количество байт как в посылке, а внутрях пакета - треш. Но и так же было у товарища в такой же конфигурации - битый пакет часто прилетал. Пока он земли не соединил.
Вобщем, модуль очень своеобразный.
sadman41, занятно, потому что только вот сегодня заметил что один из модулей прям люто греется спустя время(где-то час я держал их включенными).
nik182, вот такая "схема" получается, как я все это понимаю, от нано на вывод RE 485 каждую секунду приходит HIGH,на вывод 485 от меги приходит LOW всегда (то есть модуль всегда в режиме приемника).
Нагрев это признак сверхтоков. Скорее всего, та что греется уже труп. Вот что бы они не вылетали нужно собирать вот так (стабилитроны на 13 вольт):
ок, тогда почему с уно вместо меги все работает?
Начинать надо без 485. Tx наны соединить с Rx1 меги и получить выход на мониторе РС. Потом 485 подключать.
.......стабилитроны на 13 вольт....... - там не сабилитроны применяют, а супрессоры
.......стабилитроны на 13 вольт....... - там не сабилитроны применяют, а супрессоры
На схеме нарисованы сабилитроны. Хочешь применяй супрессоры, из практики, стабиллитронов хватает за глаза. Китайский МАХ485, на самом деле очень нежный, чуть что не так выгорает.
ТС, ты сей час подключи две уны и расскажи нам продолжают они работать или нет.
Тс, на схеме #57 почему на передатчике пин DE не используется? Его нужно в HIGH при передаче.
касательно вопроса #63, я такую же схему соединения использовал при связи двух уно и нано - уно и все работало, попробую через DE
а по поводу #60, я так сделал,все ок все передается, теперь уже стоит пробовать с обоими 485 модулями пробовать?
Да. Если передаётся, то с модулями 485 тоже должно. Надо только в правильном направлении подать напряжение на ДЕ. Общая практика - они всегда стоят все как приёмники. На передачу переключать только на время передачи символа.
Не,все равно не работает, даже попробовал связать между собой софтсериал который сделал на меге и так с нано напрямую связять,все ок, но как только делаю через 485ые то вообще ничего не работает , но блин, как только вместо меги ставлю уно все сразу работает, вот это для меня вообще загадка
Остаётся последнее. Поставить мегу и уну параллельно. Это можно если соединить только Rx уны и Rx1 меги. Запустить два монитора и смотреть что будет. Земли должны быть соединены.
Чьи земли должны быть соединены?
ТС, смотрите внимательно направление передачи. У мах485, вообще то за это отвечают две ноги. А на схеме у вас одна....
High на одну ногу - приём , на другую - передача ,как я понял ,но как было сказано выше,вроде как по умолчанию стоит в режиме приема,и в принципе так оно и есть
ну едрён батон. Пины DE и RE инвертированы. Соедините уже их вместе и подавайте на оба HIGH для передачи и LOW для приёма
MaksVV
просто все это работало с нано-уно и уно-уно , но ок, попробую
я просто уже не знаю в чем проблема, мне кажется как будто я тут всех достал)
мне кажется как будто я тут всех достал)
не без этого, я уже вчера бросил заходить в вашу ветку :)
Господа(и возможно дамы),я конечно не профессор Франкенштейн , но готов вас всех заверить, оно живое, все заработало
Кароч для все кто такой же тупой как я пусть попробуют так же на RE и DE подавать сигнал
А всего то нужно было подключить так как нарисовано ВЕЗДЕ в интернете. А не по умолчанию, которого кстати, нет.
ну, из ошибок всегда извлекается больше опыта, в любом случае всем спасибо за помощь
ну вот,появилась новая проблема, вчера все поработало и было все ок ,а сегодня снова взялся ничего не меняя и на передающей стороне ( нано ) max485 стал сильно греться, что за напасть,было ли у кого?