Интерфейс RS485.

Поділитися
Вставка
  • Опубліковано 3 гру 2024

КОМЕНТАРІ • 42

  • @ruslan.zhumabai
    @ruslan.zhumabai 3 місяці тому

    Превосходство зашкаливает

  • @RomanMalov-ve3lu
    @RomanMalov-ve3lu Рік тому

    Большое спасибо, за качественный контент. Не могу не подметить, очень интересное решения с транзисторами перед микросхемой. Однако теперь , из за полного понимания принципа работы, очень сильно расстроился. Это всё хорошо работает, только в режиме (один-Мастер- остальные слейв). В маём случае, когда у меня много приборов которые должны производить передачу на события, это не куда не годится,слишком много костылей придётся вставлять. В тот момент когда на линию будут выходить сразу несколько приборов, будет каша с пакетами. Как то нужно думать, проверку занятости линии, если занята то, ждать очереди,или производить запросы, на разрешения передачи по иным линиям, ну или согласования выстраивать . В общем всё не просто выходит.

    • @sv-avtomatika
      @sv-avtomatika Рік тому

      Вам все-таки нужно воспользоваться режимом один мастер, остальные слевы, это не сложно, но придется разработать свой протокол поверх юарта. Советую воспользоваться библиотекой изи трансфер для построения своего протокола

    • @RomanMalov-ve3lu
      @RomanMalov-ve3lu Рік тому

      @@sv-avtomatika К сожалению, это наверно будет не приемлемо , есть процессы которые требуют немедленных реакций. А в режиме опроса, пока до него дойдёт очередь. столько газа утечёт. Ладно будем думать.

    • @remden
      @remden  Рік тому

      Работа с транзистором или от порта МК ни какой разницы нет, и нет проблем что с одним мастером, что каждый сам за себя, суть в том, чтобы небело одновременной передачи от разных устройств, так как произойдет коллизия данных. По этому и делается, что одно устройство (Мастер) опрашивает все подчиненные устройства. Соответственно у подчиненных устройств должен быть свой уникальный адрес, у кого адрес совпал тот и ответил, если устройство потерянно соответственно оно не отвечает, а в мастере надо реализовать таймер ответа, чтобы он не отправлял следующий запрос пока подчиненный не ответит. Вот приблизительная посылка [адрес][команда][кол-во байт][данные+n][контрольная сумма], ответ [Адрес][Команда][Кол-во байт][данные][Контрольная сумма]

  • @sv-avtomatika
    @sv-avtomatika Рік тому

    Сделал проэкт rs485, в котором 1 мастер и много слейвов, так без обьединения земель общение было с ошибками или вовсе не работало. Поэтому использую трехпроводную линию: канал А, канал В и земля

    • @remden
      @remden  Рік тому +1

      Возможно у вас не согласованно волновое сопротивление витой пары, и обязательно надо использовать витую пару (можно от сетевой кабель RJ-45 у него 120 Ом волновое сопротивление). Я на работе развел сеть длиной почти 1Км на скорости 9600 все отлично работает. Один нюанс резисторы для согласования волнового сопротивления ставятся только 2 штуки в начале и в конце линии, в промежутке их ставить необязательно, если от соединения - линия не далеко идет.

  • @ljm7866
    @ljm7866 Рік тому

    Сравнение с переменным током некорректное, его можно передавать на большие расстояния не поэтому. А в остальном познавательно, лайк.

  • @EugenioMederov
    @EugenioMederov Рік тому

    Спасибо!

  • @alekskapitonov2738
    @alekskapitonov2738 Рік тому

    Спасибо.

  • @ПавелИгнатьев-в4у

    Спасибо автору, всегда видео очень познавательные.

  • @МунирАМИ
    @МунирАМИ Рік тому

    Уважаемый автор. Вначале Вы сказали, что когда на re de низкий уровень то микросхема работает на передачу. А потом, после подключения транзистора, на этих выводах при передаче потенциал становится высоким.
    Разъясните пожалуйста эту информацию. Спасибо.

    • @remden
      @remden  Рік тому

      Здравствуйте, когда подключен NPN транзистор в режиме ключа (эмиттером на землю, а коллектор подтянут резистором к плюсу и к нему подключены выводы RE и DE ) - при подаче высокого уровня на базу - транзистор открывается и замыкает линии RE и DE к земле, при низком уровне - транзистор закрывается и через подтягивающий резистор на этих выводах устанавливается высокий уровень. Получается своего рода инвертор сигнала.

  • @vsosacordeev
    @vsosacordeev Рік тому

    Тоесть, инвертирования сигнала делает микросхема? Значит, если соединить два мк вместе, без микросхем, то они просто буду обьщатся по RS-232 ? Собственно если подгрузит протокол modbus, то он будет работать и по инерфейсу rs 232.

    • @remden
      @remden  Рік тому

      Да все верно МК модно подключать без дополнительных приблуд, и некоторые устройства у которых нет преобразователя для непосредственной работы с СОМ портм. С помощью RS485 можно в одну линию подключить несколько устройств в отличии от RS232

  • @meta11ist
    @meta11ist 11 місяців тому

    Поделитесь ссылкой на юсб 485 с гальванической развязкой на али?

    • @remden
      @remden  11 місяців тому

      У меня Болидовский преобразователь, а так на алике полно подобных, вы можете сами найти - RS485

  • @ПавелИгнатьев-в4у

    Интересно, а MAX485 будет работать с протоколом i2c? Понятно без ухищрений наверное не получится, вопрос только каких ухищрений?

    • @remden
      @remden  Рік тому

      В принципе можно поставить две микросхемы - на тактовый вход и линию данных, но зачем?

    • @ПавелИгнатьев-в4у
      @ПавелИгнатьев-в4у Рік тому

      @@remden Затем что у меня есть проблемка с i2c которую я пытаюсь решить.

    • @remden
      @remden  Рік тому +1

      @@ПавелИгнатьев-в4у А какая проблема? Постараюсь помочь

    • @ПавелИгнатьев-в4у
      @ПавелИгнатьев-в4у Рік тому

      @@remden В другом комментарии😁

  • @данилпарнек
    @данилпарнек Рік тому

    здравствуй) как искать неисправности 485 или как его проверить? занимаемся сигнализацией

    • @remden
      @remden  Рік тому +1

      Здравствуйте, самый простой способ - осциллографом, если таковой есть, если нет, то вольт метром тоже можно: в стоянии покоя между линиями должен быть ноль, а при передаче - около 3-5 вольт, в зависимости от какого напряжения питается трансивер.

    • @данилпарнек
      @данилпарнек Рік тому

      @@remden спасибо большое!

  • @drhdirutomich2458
    @drhdirutomich2458 Рік тому

    а как читать датчики по rs485 , например датчики уровня топлива?

    • @remden
      @remden  Рік тому

      Тут надо знать последовательность байт. Если есть возможность - на рабочем устройстве (подключенном ведущий ведомый) - посмотреть осциллографом или полиграфом - как идет запрос и ответ, при различном уровне или температуре (если нет документации с описанием). Как правило 1й байт - адрес устройства к которому идет обращение, 2й - команда (чтение/запись/регистр обращения), 3 - кол-во байт, 4 - может быть данными, их может быть несколько, 5 - контрольная сумма CRC16 или CRC8.

  • @vsosacordeev
    @vsosacordeev Рік тому

    В будующем, было бы интеренсно увидеть урок, как прикрутить флеш память, к мк!

    • @remden
      @remden  Рік тому

      Вполне возможно, хотя вы сами можете использовать SPI интерфейс для подключения, единственное под какие цели?

    • @vsosacordeev
      @vsosacordeev Рік тому

      @@remden Для памяти, как прошивка! плюс туда постоянно записывать статические значения. Что бы контроллер дольше работал! Я да же не предстовляю, как это возможно по spi

    • @remden
      @remden  Рік тому

      Запишу в будущем подобное видео. Для прошивки, а точнее загрузчик через USB, я планирую в скором времени выпустить видео (если минутка найдется). Для записи статики можно использовать собственную EEPROM память, а если не достаточно, то можно писать в Flash самого МК. На счет долговечности - МК рассчитан на 100 тысяч для Flash и 1М для EEPROM.

  • @rensiss
    @rensiss 11 місяців тому

    Насколько я понимаю- Цепляя Re, De на коллектор транзистора мы никогда не сможем передать 1. Только 0. Не очень информативный сигнал получается. В чем я ошибаюсь?

    • @remden
      @remden  11 місяців тому

      Почему? Единица там будет, когда транзистор закрыт, она - будет за счет подтягивающего резистора от плюса питания, который вторым выводом подключается к RE и DE.

  • @ПавелИгнатьев-в4у

    У меня есть устройство, которое использует интерфейс i2с, в домашних условиях прекрасно работает, но стоило мне его притащить на производство, оно перестало работать вообще. Не могу понять почему, ведь и там и там я использую экранированную витую пару одинаковой длины. Есть у кого мысли, почему это происходит.

    • @remden
      @remden  Рік тому +1

      Это возможно из-за помех, для I2C не обязательна витая пара, так как при синхронной передаче она бесполезна и сигнал на ней сильнее затухает. Единственно ее можно использовать когда одна скрутка идет на такт, а вторая на данные. Еще попробуйте понизить скорость передачи.

    • @ПавелИгнатьев-в4у
      @ПавелИгнатьев-в4у Рік тому

      @@remden А есть конвертеры i2c в rs485 и обратно?

    • @remden
      @remden  Рік тому +1

      @@ПавелИгнатьев-в4у Скорее всего нет, если только самостоятельно сделать преобразователь на МК или как я ранее говорил - для тактового вывода использовать один преобразователь интерфейса или нех инвертор и пускать сигнал по витой паре в противофазе, а для данных - второй преобразователь, но тут надо подумать как это реализовать, так как линию надо отпускать в третье состояние чтобы принимать, в том числе флаг АСК. Попробуйте подобрать номинал подтягивающих сопротивлений на линиях.

  • @Кост286
    @Кост286 Рік тому

    а кто скинет ломаную прогу virtual serial ports emulator ?

    • @remden
      @remden  Рік тому

      disk.yandex.ru/d/8ur-ppdJW3Ti5w Качайте быстрей, доступ сутки, чтобы не забанили

    • @Кост286
      @Кост286 Рік тому

      @@remden спасибо, но пишет ключ не подходит

    • @remden
      @remden  Рік тому

      @@Кост286 Она работает без ключа, он только на 32х битные системы

    • @Кост286
      @Кост286 Рік тому

      @@remden понятно. спасибо