Конфигурация схемы SPI для использования в приемопередатчике 485 для передачи данных на большие расстояния (более 50 метров)

Так быстро избавляюсь от вещей, которые я ранее делал, пытаясь отправлять сигналы контроллера SPI на большие расстояния, используя либо кабель 18 AWG, либо на основе всех рекомендаций, которые мы читали, используя двустороннюю передачу/прием MAX485 или RS232 с кабелем категории 5/6. .

Начальная фаза 1 нашей сборки заключается в том, чтобы остаться с контроллерами SPI для светодиодов, а затем перейти к программируемым, поэтому добавьте контроллеры на основе Pi или Arduino и удалите контроллеры SPI. Мы не хотим делать это для этой фазы, если мы можем помочь.

Я использую несколько различных контроллеров светодиодов SPI, таких как btf lighting sp108e и 602e (на фото). У нас также есть 608es для интеграции музыки (ввод триггера в контроллер SPI):

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

Которые имеют выходной сигнал номинально от 1,5 до 2 вольт:

выход SPI-контроллеров

Мы хотим использовать модули передачи/приема на обоих концах кабеля с прямым входом от SPI-контроллера на передачу, а приемный конец подключается к светодиодной ленте (WS2815).

Модули будут примерно такими:

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

Для преобразования TTL в 485, когда я подключаю свою схему, хотя мой выход на сторону светодиода для приема больше не является чистым, и я смотрю на выход 200 мВ с совершенно другой формой волны:

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

  1. 485 заявляет, что он может работать только с данными 3,3/5 В. Нужно ли мне смещать данные о напряжении SPI на один из них и как это лучше всего сделать?

  2. Повлияет ли смещение напряжения на фазу данных? Будет ли это также решать проблему с линиями передачи A и B, поскольку прямо сейчас я не получаю инверсию A на линии B?

  3. Нужен ли терминатор на стороне приемника этой цепи? Я читал, что на многих из этих схем вы делаете.

Я думал, что эта схема будет более прямолинейной с выходом TTL от контроллеров SPI, но что-то теряется во время передачи / приема - я подозреваю, что это триггер напряжения для схемы, но я действительно плохо понимаю эту схему. достаточно и ищет помощи.

ОБНОВЛЯТЬ:

действующая схема рабочей установки

Это текущая настройка, которая работает, но у меня есть несколько вопросов относительно настройки заземления RS485.

Передняя сторона 485 имеет одно из двух заземлений, привязанных к RXD, так как при подключении к фактическому заземлению это вызывало удвоение напряжения и увеличение яркости светодиода.

Согласно другой рекомендации, передача (TXD) на стороне приемника RS485 заземляется, что после этого позволяет управлять полосой WS2815.

Нагрузочный резистор вызывал проблемы с мерцанием светодиодов при отключении питания через контроллер, 120 Ом было хуже, чем изменение на 100 Ом, что уменьшило мерцание.

После удаления светодиодная лента больше не затекала. Я не могу найти фактическую спецификацию для этих конкретных RS485, однако они говорят, что у них есть короткое замыкание для набора A+/B- (120 Ом), особенно для передачи на большие расстояния, добавленное в контроллер.

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

Для настройки заземления это звучит ненормально, особенно для меня на передней стороне 485, хотя второе заземление все еще заземлено на блок питания для 485 5 В.

Это вызовет у меня проблемы в долгосрочной перспективе? На самом деле он отлично работает в этой конфигурации с прямым входом SP602E в линию данных в 485.

Использование модуля UART to 485, как в этом видео.

Добро пожаловать на сайт. Можешь кинуть ссылки на даташиты, схему подключения и т.д.?
Не могли бы вы объяснить, что означает SPI в вашем случае, потому что я подозреваю, что большинство людей здесь не разделяют ваше определение SPI. Вы имеете в виду сигнал последовательных данных, который подключается к светодиодам WS1215? Вы хотите передать эти данные на расстояние более 50 метров с помощью приемопередатчиков RS-485?
Для протокола LED также требуется скорость передачи данных не менее 800 кбит/с. Какой набор микросхем использует приемопередатчик RS-485, может ли он работать со скоростью 800 кбит/с или более надежно? Что также означает, что RS-232 здесь почти наверняка не может быть и речи. Ваши фотографии настолько малы, что практически бесполезны для того, чтобы рассмотреть какие-либо детали.
Я пытаюсь получить данные о чипсете, так как в спецификациях заказа их нет. Буквально мы заказываем у нескольких производителей, поскольку это зависит от того, кто их производит?
Платы имеют набор микросхем MAX485 и 74HC04, спецификации MAX485 указывают на максимальную скорость 2,5 Мбит / с, поэтому я не думаю, что поток данных будет проблемой при прохождении через модули?
@ LGTZ73 - Привет, я закрыл ваш 1-й вопрос как дубликат вашего 2-го вопроса , так как 1-й вопрос явно был заменен и на него не было ответов. Похоже, вместо того, чтобы отредактировать 1-й вопрос, чтобы добавить детали, вы задали 2-й вопрос. Вот это уже 3-й вопрос - та же тема. Вы все еще ждете ответов на свой 2-й вопрос, или этот 3-й вопрос теперь заменил 2-й вопрос? Примечание. Пожалуйста, не задавайте больше новых вопросов по этому поводу, не объяснив, что это будет новый вопрос, а не обновление существующего. Спасибо.
Я отредактировал свой второй вопрос, чтобы сосредоточиться на драйверах светодиодов, этот вопрос посвящен проблемам передачи данных 485, которые у меня возникают.
Боюсь сказать, глядя на вашу блок-схему, я ожидаю, что у вас будут те же проблемы с компоновкой и согласованием импеданса с кабелем, а также невнимание к таким деталям, как усиление, смещение и CMRR.
Прямо сейчас я протягиваю его примерно через 150-футовый кабель Cat6 и 100-футовый силовой кабель, оба скрученные, поэтому в худшей конфигурации для них, с довольно ужасными соединениями типа «крокодил» для некоторых «тестовых» установок, частичным макетом и неполным установка или пайка. Вот что не имеет смысла для этого....
Ваша схема недостаточна, и вам нужна реальная схема, показывающая питание, заземляющие соединения экрана кабеля только на стороне драйвера, также см. мой ответ здесь electronics.stackexchange.com/questions/583693/…
Контакт rs485 rx замкнут на GND. Не хорошо. Также во втором rs485 драйвер приходится отключать, чтобы он не пытался передавать. В противном случае обе стороны попытаются передать одновременно, и это не сработает.
С автоматическим полудуплексом вам все равно нужно отключить передачу? Нужно ли мне перемыкать фактические контакты IC, поскольку нет RE и DE, а только для DI и RO, но только один контакт для передачи и один контакт для приема на модуле? Модуль: TTL в RS485 Модуль 485 в последовательный уровень UART Аппаратное обеспечение взаимного преобразования Автоматический модуль управления потоком Источник питания 3,3 В 5,0 В Передача на большие расстояния amazon.com/dp/B07KD24YDL/…
Буду ли я использовать подтягивающий резистор на TXD на дальнем конце 485, чтобы отключить обратную передачу данных, чтобы он не пытался передавать, то же самое для RXD на переднем конце 485? Казалось, что их будет проще настроить, но на самом деле это не так, а работает с более низкими входными сигналами.

Ответы (3)

Похоже, ваше предположение верно, и напряжение от контроллера светодиода недостаточно велико, чтобы обеспечить пригодные переходы фронта на преобразователь TTL-RS485. В частности, ВЫСОКОЕ напряжение от контроллера ниже Vih любого драйвера линии на этом преобразователе. Вам нужно будет использовать что-то вроде SN74AVCH1T45, чтобы поднять уровни.

Что касается терминации, это зависит от того, встроен ли терминатор в используемую вами плату, но он должен соответствовать любому кабелю, который вы используете. Обычный старый сетевой кабель 100 Ом.

Из описания у него 120 Ом, что должно соответствовать категории 6? У нас есть SP901E, который был усилителем для светодиодного входа, который, как мы думали, должен был выводить 5 В TTL, но на самом деле он не работал, как предполагалось ( superlightingled.com/… )
120 Ом не подходят для кабеля категории 6; cat5 и cat6 оба 100 Ом. При низких скоростях передачи данных и коротких пробегах вы обычно можете избежать несоответствия, но я не оптимистично настроен в отношении вашего конкретного приложения. Вы можете попробовать, конечно, кабель Ethernet дешев, и вы всегда можете повторно использовать его для патч-кабеля.
У нас есть кабели cat5e, cat 6 и cat7, которые мы можем использовать, но также изначально использовали 18awg для линий питания и данных 1 и данных 2. Предпочитаю не использовать кат7, так как мы фактически используем его в доме, но определенно можем поменять на 100 Ом кат6. В описании платы сказано, что у нее есть 120 Ом (R0), закороченный для длинных кабелей, и оставить его таким для длинных? Нужно ли мне изменить это на изображенной доске?

Я могу ошибаться, но, исходя из вашего вопроса, я подозреваю, что вы можете что-то путать. Вы упоминаете RS232, но затем вы также упоминаете 485, которые представляют собой разные протоколы передачи сигналов «дальнего действия».

В общем, то, что вы пытаетесь сделать, может работать - кодировать сигналы на одном конце, передавать их по длинному проводу и реконструировать их на другом конце. Но не хватает нескольких вещей.

Вы не указываете детали своего "SPI"; обычно протокол SPI имеет 4 провода: Out/In/Clock/Enable. Out/Clock/Enable идут в одном направлении, а In идут в другом; однако вы упоминаете управляющие светодиоды, которые обычно используют протокол, подобный SPI, только с OUT и Clock, возможно, также с линией включения. Единственная причина, по которой я указываю на это, заключается в том, что если вам нужна строка «In» (также называемая строкой MISO), вам нужно будет закодировать ее в обратном порядке. То, что вы показываете на осциллографе, может быть одним из этих сигналов - дифференциальный сигнал может выглядеть таким зашумленным, но идея состоит в том, что информация передается как разница между 1-м и 2-м проводом, и поскольку оба провода затронуты более или менее то же самое, разница невосприимчива к шуму.

Зная это, вы поставили чип приемника на дальний конец? Вы не можете взять сигнал RS485/RS422 и просто подать его на свое устройство (на самом деле вы могли бы, но давайте пока опустим это). Вам нужен согласующий приемник, который будет принимать двухпроводной дифференциальный сигнал и преобразовывать его обратно в один сигнал, который вы подаете в свою схему. То же самое, если вы используете RS232 - это протокол с одним проводом, но уровни напряжения колеблются выше / ниже, чтобы сделать их более устойчивыми к шуму, но вам все равно нужен приемник на дальнем конце.

И, конечно же, если вам нужна обратная линия, вам понадобится чип энкодера на дальнем конце и чип приемника на другом конце.

Наконец, и это применимо, если вы используете RS485 или RS232, вам необходимо убедиться, что микросхемы передатчика и приемника могут работать на частоте, достаточно высокой для вашего протокола. В RS485/422 нередко встречаются чипы, которые могут работать только со скоростью 250 Кбит/с, по сравнению с другими, которые могут работать со скоростью 10 Мбит/с.

В этом случае «SPI» означает сокращение от «Протокол для адресуемых светодиодов RGB, таких как WS2815». И хотя приемопередатчики RS-232 со скоростью до 1 Мбит/с действительно существуют, они обеспечивают расстояние около 5 футов, поэтому о RS-232 здесь практически не может быть и речи.

Есть несколько причин, по которым он может не работать.

  1. Уровни напряжения.
  2. Прекращение.
  3. Тайминги для вашего трансивера
  4. Вся система.

Давайте рассмотрим это один за другим:

  1. Уровни напряжения. Светодиод WS2815 с техническим описанием представляет собой интеллектуальный светодиод на 12 В. Цифровой вход считает
    В я ЧАС "=" 0,7 В Д Д
    и
    В я л "=" 0,3 В Д Д
    .

В твоем случае

В Д Д "=" 12 В
В я ЧАС "=" 8.4 В
В я л "=" 3,6 В
Уровни напряжения WS2815

Если вы используете приемопередатчик RS-485, они обычно работают с 0–5 В или 0–3,3 В. Это означает, что выходные уровни несовместимы с вашим светодиодом. Вам понадобится переключатель уровня между трансивером и первым светодиодом. Например CD40109B В даташите SW2815 могут быть некоторые ошибки, я действительно думаю, что уровни связи не VDD, а VCC, поэтому, вероятно, вам не нужен сдвиг уровня. введите описание изображения здесь2. Согласование шины от 100 Ом до 120 Ом между A+ и B- на стороне приемника (сторона, закрытая для светодиодов).

  1. Тайминги для вашего приемопередатчика Если вы хотите восстановить форму волны, которая в данном случае имеет ширину импульса 220 нс ~ 380 нс, приемопередатчика на 1 Мбит может быть недостаточно. Тайминги WS2815Например, трансивер SN65HVD1792 ( техническое описание ) показывает дифференциальное время нарастания/спада выходного сигнала драйвера до 300 нс, что очень близко к вашему пределу. Это может быть или не быть проблемой.

  2. Вся система

Вот как должна выглядеть ваша система. РЕДАКТИРОВАТЬ:: Не то, чтобы мы знали, что излучатель - это SP601E, возможно, вам нужен преобразователь уровня, чтобы адаптировать уровень для приемопередатчика RS-485, рассуждая так же, как № 1, но наоборот.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Таким образом, для ввода мне все равно понадобится преобразователь уровней для системы, которую я мог бы протестировать с помощью моего Arduino, пока я не получу их, как для передней, так и для задней стороны, чтобы уменьшить ввод данных на ws2815 в пределах Vih и Vil? Могу ли я использовать одинаковые переключатели уровня для передней и задней части?
Любые другие мысли о преобразователях уровней, как те, которые вы упомянули ti.com/lit/gpn/cd40109b , похоже, отсутствуют в наличии во многих местах. Другие переключатели уровня, которые я нахожу, предназначены в основном только для преобразования от 3,3 до 5 В.
Сначала выход SP601, если сигнал 0 ~ 5 В, тогда преобразователь уровня не требуется. Если сигнал 0~12В, вам это нужно, так как вход трансивера принимает максимум 5В. * Для преобразователя первого уровня (если он вам нужен) вы можете попробовать просто делитель напряжения. * Для преобразователя второго уровня я думаю, что даташит на светодиод ошибочен и, вероятно, он вам не нужен.
Собираюсь попробовать использовать либо другой комплект, либо 485s, либо другой приемник. У меня есть настройка ниже, все выглядит лучше, пока декодер / приемник, затем выходная сторона для светодиодной линии составляет 0,03 вольта.
ОБНОВЛЕНИЕ: поменялся местами с новым набором модулей RS-485, и похоже, что все на самом деле работает правильно (даже) с прямым подключением от sp602e, которое мы подключили - без применения подключений напряжения, основываясь на всей вашей помощи. Единственная проблема, с которой я столкнулся, похоже, это помехи контура заземления, и они появляются, если у меня есть заземление (голое) для подключенного передатчика, и я получаю некоторые сигналы не в фазе (или вижу ложное светодиодное освещение и некоторые проблемы с интеллектуальным контроль). Нужно ли добавлять резистор на землю?
Вы подавали питание на трансивер rs-485? Вы должны сделать 4 измерения. 1 . Выход SP602 2 . Выход RS-485 A+ и B- 3 то же, что и 2, но сбоку приемника. 4 сигнал Rx, поступающий на WS2815
С помощью осциллографа я ожидаю увидеть высокий или низкий уровень напряжения.
Выход SP602: 1,65 В, на выходе A 2,64, B 2,08, на приемной стороне A 2,62, B ​​2,08, выход на данные светодиода 2,21 вольт. При всех подключенных землях - при первом rs-485 земля отключена от шлейфа, напряжения все двоятся но светодиод ближе к тому что программы и цвета - еще есть паразитный светодиод и при выключении светодиодная лента горит постоянно - как будто команда выключения не получена.
Обратите внимание, что новые модули рассчитаны только на 5 вольт, не могут определить набор микросхем, поскольку они были очищены от них, поэтому светодиод питается от блока питания светодиода и отдельного 2A 2-проводного 5 вольт для модулей RS-485.