Последовательная связь между Teensy и Teensy через USB-разъем

У меня есть 2 платы Arduino Teensy 3.2, и я пытаюсь реализовать последовательную связь между ними. Я успешно сделал это, соединив RX1 1-го Teensy с TX1 2-го Teensy и TX1 1-го с RX1 2-го.

Однако мне было интересно, могу ли я отправлять последовательные сообщения между Teensys, т.е. делать то же самое, подключив 2 Teensys через USB-порт? Или этот USB-порт зарезервирован для подключения Teensy к компьютеру?

, 👍0

Обсуждение

На https://github.com/felis/UHS30 есть альфа-версия программного обеспечения для настройки режима USB-хоста, так что это возможно, но вам лучше делать то, что вы делаете., @Dave X

Но почему? Uart хорош и прост, RS485 более надежен. USB сложен и не очень выгоден., @Paul

Я подумал, что вы могли бы повторно использовать контакты D+ и D-, например, для последовательного подключения программного обеспечения к ним. Но похоже, что вы не можете использовать эти контакты как GPIO., @Gerben


2 ответа


Лучший ответ:

0

Примечание. Изображенный вами Teensy представляет собой Arduino на базе ARM (NXP MK20DX256), который сильно отличается от хорошо зарекомендовавших себя устаревших Arduino. В некоторых кодах ARM Arduino были (и, возможно, все еще есть) «ошибки». Таким образом, контакты Teensy, используемые не по назначению, могут не работать, как аналогичные контакты на устаревших платформах Arduino.

Чтобы 2 USB могли общаться друг с другом, один из них должен быть USB-хостом, а другой – USB-устройство. Может быть несколько USB-устройств, поэтому протокол USB усложняется для обработки этой функции. Может быть много типов USB-устройств, каждое из которых имеет собственный базовый протокол, поэтому протокол USB усложняется для обработки этой дополнительной функции. USB-устройство с последовательным портом использует протокол CDC или класса коммуникационного устройства.

Итак, чтобы две платы Teensy могли взаимодействовать друг с другом по протоколу USB CDC, одну из плат Teensy необходимо превратить из USB-устройства в USB-хост. Что не тривиально. Большинство разработчиков обратятся к OEM процессора. Поскольку большинство OEM-производителей процессоров предлагают бесплатное программное обеспечение для таких целей, чтобы стимулировать продажи своего оборудования.

,

Как насчет подключения USB 1 тинси к UART второго? Я знаю, что есть адаптеры usb-uart, но насколько я понимаю, они для ПК?, @bakalolo

Существует ооочень много накладных расходов USB (из-за всех функций, которые поддерживает USB), поэтому вам понадобится довольно сложное программное обеспечение для UART «другого подростка». Не говоря уже о том, что вам нужно какое-то оборудование для преобразования уровней USB в уровни TTL. Подробнее см. в проекте [V-USB](https://www.obdev.at/products/vusb/index.html)., @st2000


0

Teensy 3.5, 3.6, 4.0 и 4.1 имеют второй USB-интерфейс, настроенный как USB-хост. Вы можете использовать этот интерфейс в режиме CDC (см. ответ @st2000) и при необходимости подключить его к обычному разъему USB-устройства любого другого Teensy. Но обратите внимание, что T3.2 может передавать до 3 Мбод через свой последовательный UARTS. Таким образом, я не вижу причин использовать USB для связи между платами.

,