Так быстро избавляюсь от вещей, которые я ранее делал, пытаясь отправлять сигналы контроллера SPI на большие расстояния, используя либо кабель 18 AWG, либо на основе всех рекомендаций, которые мы читали, используя двустороннюю передачу/прием MAX485 или RS232 с кабелем категории 5/6. .
Начальная фаза 1 нашей сборки заключается в том, чтобы остаться с контроллерами SPI для светодиодов, а затем перейти к программируемым, поэтому добавьте контроллеры на основе Pi или Arduino и удалите контроллеры SPI. Мы не хотим делать это для этой фазы, если мы можем помочь.
Я использую несколько различных контроллеров светодиодов SPI, таких как btf lighting sp108e и 602e (на фото). У нас также есть 608es для интеграции музыки (ввод триггера в контроллер SPI):
Которые имеют выходной сигнал номинально от 1,5 до 2 вольт:
Мы хотим использовать модули передачи/приема на обоих концах кабеля с прямым входом от SPI-контроллера на передачу, а приемный конец подключается к светодиодной ленте (WS2815).
Модули будут примерно такими:
Для преобразования TTL в 485, когда я подключаю свою схему, хотя мой выход на сторону светодиода для приема больше не является чистым, и я смотрю на выход 200 мВ с совершенно другой формой волны:
485 заявляет, что он может работать только с данными 3,3/5 В. Нужно ли мне смещать данные о напряжении SPI на один из них и как это лучше всего сделать?
Повлияет ли смещение напряжения на фазу данных? Будет ли это также решать проблему с линиями передачи A и B, поскольку прямо сейчас я не получаю инверсию A на линии B?
Нужен ли терминатор на стороне приемника этой цепи? Я читал, что на многих из этих схем вы делаете.
Я думал, что эта схема будет более прямолинейной с выходом TTL от контроллеров SPI, но что-то теряется во время передачи / приема - я подозреваю, что это триггер напряжения для схемы, но я действительно плохо понимаю эту схему. достаточно и ищет помощи.
ОБНОВЛЯТЬ:
Это текущая настройка, которая работает, но у меня есть несколько вопросов относительно настройки заземления RS485.
Передняя сторона 485 имеет одно из двух заземлений, привязанных к RXD, так как при подключении к фактическому заземлению это вызывало удвоение напряжения и увеличение яркости светодиода.
Согласно другой рекомендации, передача (TXD) на стороне приемника RS485 заземляется, что после этого позволяет управлять полосой WS2815.
Нагрузочный резистор вызывал проблемы с мерцанием светодиодов при отключении питания через контроллер, 120 Ом было хуже, чем изменение на 100 Ом, что уменьшило мерцание.
После удаления светодиодная лента больше не затекала. Я не могу найти фактическую спецификацию для этих конкретных RS485, однако они говорят, что у них есть короткое замыкание для набора A+/B- (120 Ом), особенно для передачи на большие расстояния, добавленное в контроллер.
Наконец, взглянув на схемы и рекомендуемую схему для WS2815, вторичные данные (BI) рекомендуется подключить к земле для первого запуска, а затем дополнительные подключения к данным от первичных линий.
Для настройки заземления это звучит ненормально, особенно для меня на передней стороне 485, хотя второе заземление все еще заземлено на блок питания для 485 5 В.
Это вызовет у меня проблемы в долгосрочной перспективе? На самом деле он отлично работает в этой конфигурации с прямым входом SP602E в линию данных в 485.
Использование модуля UART to 485, как в этом видео.
Похоже, ваше предположение верно, и напряжение от контроллера светодиода недостаточно велико, чтобы обеспечить пригодные переходы фронта на преобразователь TTL-RS485. В частности, ВЫСОКОЕ напряжение от контроллера ниже Vih любого драйвера линии на этом преобразователе. Вам нужно будет использовать что-то вроде SN74AVCH1T45, чтобы поднять уровни.
Что касается терминации, это зависит от того, встроен ли терминатор в используемую вами плату, но он должен соответствовать любому кабелю, который вы используете. Обычный старый сетевой кабель 100 Ом.
Я могу ошибаться, но, исходя из вашего вопроса, я подозреваю, что вы можете что-то путать. Вы упоминаете 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 Мбит/с.
Есть несколько причин, по которым он может не работать.
Давайте рассмотрим это один за другим:
В твоем случае
Если вы используете приемопередатчик RS-485, они обычно работают с 0–5 В или 0–3,3 В. Это означает, что выходные уровни несовместимы с вашим светодиодом. Вам понадобится переключатель уровня между трансивером и первым светодиодом. Например CD40109B В даташите SW2815 могут быть некоторые ошибки, я действительно думаю, что уровни связи не VDD, а VCC, поэтому, вероятно, вам не нужен сдвиг уровня. 2. Согласование шины от 100 Ом до 120 Ом между A+ и B- на стороне приемника (сторона, закрытая для светодиодов).
Тайминги для вашего приемопередатчика Если вы хотите восстановить форму волны, которая в данном случае имеет ширину импульса 220 нс ~ 380 нс, приемопередатчика на 1 Мбит может быть недостаточно. Например, трансивер SN65HVD1792 ( техническое описание ) показывает дифференциальное время нарастания/спада выходного сигнала драйвера до 300 нс, что очень близко к вашему пределу. Это может быть или не быть проблемой.
Вся система
Вот как должна выглядеть ваша система. РЕДАКТИРОВАТЬ:: Не то, чтобы мы знали, что излучатель - это SP601E, возможно, вам нужен преобразователь уровня, чтобы адаптировать уровень для приемопередатчика RS-485, рассуждая так же, как № 1, но наоборот.
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Джей
Только я
Только я
ЛГТЗ73
ЛГТЗ73
Сэм Гибсон
ЛГТЗ73
Тони Стюарт EE75
ЛГТЗ73
Тони Стюарт EE75
Рауль М.
ЛГТЗ73
ЛГТЗ73