Последовательная связь между Teensy и Teensy через USB-разъем
У меня есть 2 платы Arduino Teensy 3.2, и я пытаюсь реализовать последовательную связь между ними. Я успешно сделал это, соединив RX1 1-го Teensy с TX1 2-го Teensy и TX1 1-го с RX1 2-го.
Однако мне было интересно, могу ли я отправлять последовательные сообщения между Teensys, т.е. делать то же самое, подключив 2 Teensys через USB-порт? Или этот USB-порт зарезервирован для подключения Teensy к компьютеру?
@bakalolo, 👍0
Обсуждение2 ответа
Лучший ответ:
Примечание. Изображенный вами 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
Teensy 3.5, 3.6, 4.0 и 4.1 имеют второй USB-интерфейс, настроенный как USB-хост. Вы можете использовать этот интерфейс в режиме CDC (см. ответ @st2000) и при необходимости подключить его к обычному разъему USB-устройства любого другого Teensy. Но обратите внимание, что T3.2 может передавать до 3 Мбод через свой последовательный UARTS. Таким образом, я не вижу причин использовать USB для связи между платами.
- Как определить, какая скорость передачи данных установлена для виртуального COM-порта?
- Максимальная последовательная скорость CH340
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Внешнее питание 5 В и последовательный порт USB
- Можно ли использовать Serial.print(сообщение), когда USB-кабель не подключен к хост-компьютеру?
- Как установить последовательные драйверы FTDI на Mac?
- SerialUSB на Arduino Due
На https://github.com/felis/UHS30 есть альфа-версия программного обеспечения для настройки режима USB-хоста, так что это возможно, но вам лучше делать то, что вы делаете., @Dave X
Но почему? Uart хорош и прост, RS485 более надежен. USB сложен и не очень выгоден., @Paul
Я подумал, что вы могли бы повторно использовать контакты D+ и D-, например, для последовательного подключения программного обеспечения к ним. Но похоже, что вы не можете использовать эти контакты как GPIO., @Gerben