Перейти к содержанию
    

USB3.1 кабель не по назначению (питание + SPI)

Добрый день,

заметил, что часто в моих подделках мне надо передавать данные и питание с одного модуля на другой в синхроном виде на примерно метр-два и в хорошо заэкранированном кабеле. Конкретно надо 2-3А на 15-20В передавать и дуплексный SPI на скорости около 8-16МГц и хотя бы еще один сигнальный пин (то есть суммарно 5 сигнальных проводов). Обычный многожильный шлейф даже с промежуточными земельными жилами такую скорость на такое расстояние уже еле-еле тянет, а для питания приходится еще дополнительно пару проводов прокладывать. Число соединений в аппаратуре у меня большое, около 15 точка-точка соединений.

Правильно ли я понимаю, что если на плате развести USB-C коннектор и в него соединить обычный кабель для данных USB-C 3.1 стандарта, то по VBUS / GND я могу проложить питание до 20В/5А, а на любые 4 провода из D+/D-/TR*/RX* проложить свои 5 сигнальных пина (4 SPI + еще один сигнальный)? Если да, то на какие из них правильнее?

Да, я знаю, что в некоторых дешевых USB кабелях есть только D+/D-, но вот вопрос, как отличить дешевый от не дешевого, и какие еще три кроме D+/D- еще задействовать на сигнальные и стоит ли какие-то провода вместе соединять (TX1 c RX1 например) или какие-то из них дополнительно использовать для питания?

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

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у usb всего 3 пары и пускать в одной витой паре разные ttl сигналы идея так себе.

воткните ёмкость пару сотен пФ с клоков на miso и посмотрите что он там напринимает.

 

у HDMI 4 пары под spi, остальное можно под питание запараллелить.

есть mini / micro, проводов готовых хватает, вроде не особо дороже нормальных USB кабелей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, iiv сказал:

Правильно ли я понимаю, что если на плате развести USB-C коннектор и в него соединить обычный кабель для данных USB-C 3.1 стандарта, то по VBUS / GND я могу проложить питание до 20В/5А, а на любые 4 провода из D+/D-/TR*/RX* проложить свои 5 сигнальных пина (4 SPI + еще один сигнальный)?

Нет, не правильно. Одним коннектором не обойтись. Нужно ещё:

1) или реализовать у себя в контроллере протокол USB Power Delivery 2.0 или выше (и через него общаться и запрашивать от источника нужные токи/напряжения) и согласовать МК с цепью USB-CC;

2) или поставить внешний чип, реализующий такой протокол через USB-CC.

Без этого сможете получать только +5V с USB.

Кроме того: USB-хост должен поддерживать выдачу высоких напряжений через USB PD. А с этим сейчас сложно: В настоящее время это умеют только зарядники с USB PD. А в ПК/буках как правило стоит драйвер PD, умеющий выдавать только +5V. Хотя платы расширения USB с PD с высокими напряжениями для ПК уже вроде начали появляться. И возможно что и буки скоро появятся. А может в некоторых материнках/буках вообще нужно только обновить прошивку для появления поддержки выдачи высоких напряжений (это было бы круто!).

 

Вообще я же совсем недавно здесь создавал тему про USB PD:  

Там всё есть про мои недавние эксперименты с USB PD. Почитайте.

 

PS: И зачем тащить SPI через USB? К тому же - так далеко. SPI - интерфейс не предусмотренный для длинных линий. Лучше на большие расстояние передавать через тот же USB. Который гораздо более для этого подходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, _pv said:

у usb всего 3 пары

то есть внутри провода штеккер по разному соединяется? Ведь в самом штеккере 5 пар, tx1+/tx1-, tx2+/tx2-, rx1+/rx1-, rx2+/rx2-, d+/d-

8 hours ago, _pv said:

воткните ёмкость пару сотен пФ с клоков на miso и посмотрите что он там напринимает.

да, у меня те же подозрения возникали.

А если каждую витую пару объединить и по каждой из них свою ногу SPI посылать?

1 hour ago, jcxz said:

1) или реализовать у себя в контроллере протокол USB Power Delivery 2.0 или выше (и через него общаться и запрашивать от источника нужные токи/напряжения) и согласовать МК с цепью USB-CC;

у меня на обоих сторонах мое железо. Я как раз планировал забить на PD и только использовать сами провода, чтобы не мудрить со штекерами. Просто физически у меня много единиц модулей и я хочу между ними реализовать что-то на подобие Parallel Virtual Machine и иметь гарантированную латентность для передачи коротких (старт/стоп) сообщений.

Причем одновременно попользовать питание этого USB, так как на одном-двух модулях у меня приходит внешнее питание, сами модули не прожорливые, но такая конструкция бы позволила бы и данные передавать и питание.

 

То есть у меня конечная цель такова:

есть 10-20 модулей, физически расположенных на 50-200см расстоянии друг от друга и я не могу проложить провода от одного ко всем. Модули не прожорливые (5 ватт примерно потребление), внутри каждого есть DC-DC. На один-два, а может три модуля приходит внешнее питание примерно 15-20В. Мне надо:

1. перераздать питание по всем модулям,

2. соединить все модули так, что всреднем каждый модуль был соединен с 2-4 другими и данные по каждому соединению идут дуплексно и синхронно с гарантированной латентностью управляющего сигнала (одного пина да/нет) около 100нс, и средней скоростью передачи точка-точка около 10МБит/с.

Так как модули сидят не на одной плате, а на устройстве и межу ними есть только определенные маршруты расположения проводов, и окружение имеет много помех от электромоторов, а вес соединения очень важен, пытаюсь найти разумное решение. Много раз использовал обычные USB для передачи одного аналогового сигнала на разумные расстояния во всяких CNC, вот и предположил, что и для этой задачи можно воспользоваться USB проводами, чтобы не конфекционировать провода со штеккерами под эту задачу.

Как я говорил, размер, вес и стоимость - играют роль.

1 hour ago, jcxz said:

PS: И зачем тащить SPI через USB? К тому же - так далеко. SPI - интерфейс не предусмотренный для длинных линий. Лучше на большие расстояние передавать через тот же USB. Который гораздо более для этого подходит.

то, что USB гораздо лучше подходит для длинных (метровых) соединений - полностью с Вами соглашусь, но вот организовать по 4 соединения от каждого модуля на несколько их соседей по USB - та еще задача. Я даже МК не нашел, который бы поддержал бы 4 USB порта одновременно, а ставить USB - хабы в моем случае не вариант - у меня нет главного МК, все просто в сети. Причем какой-то из них может отвалиться, но работать все должно и дальше.

Конечно чисто теоретически можно у каждого модуля внутри поставить 4 esp32, от каждого вытащить во внешний мир свой USB по D+/D-, а эти 4 штуки esp32 между собой и с самим модулем чем-то типа октал-spi соединить, но вроде это перебор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

43 minutes ago, iiv said:

то есть внутри провода штеккер по разному соединяется? Ведь в самом штеккере 5 пар, tx1+/tx1-, tx2+/tx2-, rx1+/rx1-, rx2+/rx2-, d+/d-

у USB3.1 там ещё и d+/d- вроде задублированы да и питание (иногда соединены с своими зеркальными отражениями внутри коннектора), для того чтобы usbC можно было вверх ногами воткнуть. В самом проводе 3 сигнальных пары: rx, tx и d+- от предыдущего usb.

с USB3.2 (которые там со всякими thunderboltами совместимые) пар уже пять, по две в каждую сторону.

43 minutes ago, iiv said:

А если каждую витую пару объединить и по каждой из них свою ногу SPI посылать?

их наверное не вместе объединять надо, а лучше с землёй вторым проводом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, _pv сказал:

у USB3.1 там ещё и d+/d- вроде задублированы да и питание (иногда соединены с своими зеркальными отражениями внутри коннектора), для того чтобы usbC можно было вверх ногами воткнуть. В самом проводе 3 сигнальных пары: rx, tx и d+- от предыдущего usb.

Это вроде как опционально. Каждый кабель не обязан (но может) поддерживать 2-стороннее втыкание. А значит и не все цепи могут быть спарены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, jcxz said:

Это вроде как опционально. Каждый кабель не обязан (но может) поддерживать 2-стороннее втыкание. А значит и не все цепи могут быть спарены.

а реально существуют кабеля или девайсы с usbC, которые работают только в одном положении, а в перевёрнутом - нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, _pv сказал:

а реально существуют кабеля или девайсы с usbC, которые работают только в одном положении, а в перевёрнутом - нет?

Понятия не имею. Но думаю (учитывая экономность китайцев) - должны быть.

Про опциональность я читал где-то в документации USB PD. Когда разбирался с PD.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть такая интересная микросхема  LTC6820 , преобразует SPI для передачи по одной витой паре. Использовали, претензий не было.

Но она 1 МБит только. Может, есть подобные более шустрые микросхемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, iiv сказал:

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

дрон? там от моторов не только ЭМ помехи, но и вибрация, ПМСМ USB разъемы чисто механически не очень подходят

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое всем, что советуете.

 

Похоже будет надежнее в каждый мой юнит поставить по 4 штуки самых дешевых esp32-c3 (это которые однопроцессорные с USB), в виде микросхем. По идее если от каждого к каждому прокинуть 4 пина и еще 4 пина прокинуть на головной модуль, то любая конфигурация будет реализуема, а все остальное разрулить софтвером и подбуферизовывая такие передачи внутренней памятью. При цене меньше бакса за микросхему это по идее дешевле любого twisted pair конвертера и полностью совместимо.

 

забить на все эти премудрости с питанием и просто пустить по самому проводу 20V, не показывая этим esp32-c3 что там так много напряжения. Тогда как бы я не воткнул провода, у меня один бы становился хостом, а один - слейвом, но коммуникация шла бы по родному для USB протоколу. По крайней мере все передачи данных до 12МБит/с будут работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, iiv сказал:

При цене меньше бакса за микросхему это по идее дешевле любого twisted pair конвертера и полностью совместимо.

Я бы все-таки посчитал еще стоимость разработки, а не только "микросхему за меньше бакса".

То же самое и про производство, обычно еще одна программируемая микросхема вносит вклад в стоимость производства и тестирования. Да и надежности не добавляет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, vervs said:

дрон? там от моторов не только ЭМ помехи, но и вибрация, ПМСМ USB разъемы чисто механически не очень подходят

да, соединяю между собой свои блоки компьютер вижиона. А что кроме USB то еще можно попользовать? Делать длиннючие гибкие платы и на них гонять сигналы - не реально, они шумов наловят, надо что-то экранированное. Да и питание надо как-то протаскивать, звездой не удобно получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...