#USB #STM32
USB -- универсальный последовательный интерфейс известный всем и каждому. Он -- синоним совместимости с персональным компьютером, хотя бы на непрофессиональном, обывательском уровне. А значит, пока ваше устройство не будет оснащено этим разъемом, оно не будет восприниматься окружающими как Готовое.
Впрочем, у него есть неоспоримые преимущества перед UART: стабильность, стандартизация, самодостаточность.
Недостатки: средняя сложность программной имплементации, средний размер, отсутствие надежной фиксации разъема.
Сам протокол USB разрабатывается и отслеживается специальным комитетом.
Протокол задействует для передачи сразу два канала данных, используя дифференциальный сигнал.
В данной статье рассматривается протокол стандарта 2.0. Он совместим с другими стандартами, однако можно назвать его если не устаревшим, то утрачивающим актуальность. На момент написания самым актуальным протоколом можно назвать 3.1, а самым прогрессивным USB4, который должен обеспечить скорость до 40 ГБит/с
Рекомендации от STM
С полным руководством от STM можно ознакомится здесь.
Схема подключения USB как устройства достаточно проста. Однако в рекомендациях указано обеспечить защиту соединения, чтобы ненароком что-нибудь не сжечь.
Сами две линии связи подключаются напрямую без особых изысков. VBUS можно использовать для определения подключения устройства к компьютеру или другому источнику данных, если требуется инициализировать устройство по событию: подключился к ПК.
Схема подключения USB как хоста гораздо сложнее. Зато это дает возможность подключать к Вашему устройству флешки как память или устройство ввода, много замечательных фишек (читай HID и т.п.). В основном, рекомендации касаются согласования напряжения и защиты по питанию. Самое опасное время для USB протокола -- время подключения и отключения.
Ниже представлено аппаратное решение
Итоговое подключение
Представленное здесь подключение не отличается сложностью и, в некотором смысле, дублирует схемотехнику набора Discovery.
Состав:
- Разъем USB выбранного Вами типа
- MF-MSMF050 -- предназначен для защиты от перегрузки от тока или перегрева
- BAT60JFILM -- барьерный диод Шотки
- ESDA6V1BC6 -- установлено для защиты от переходного напряжения, специально для систем с симметричным сигналом
Простейшее подключение аппаратных возможностей через STM32CubeMX:
- Выбрать настройки подключения USB_OTG_FS/USB_OTG_HS
- Выбрать в настройках вспомогательного программного обеспечения USB_DEVICE
По всем рекомендациям защиту ESD лучше расположить близко к USB разъему. Расположение других компонентов может быть различным, в зависимости от вашего желания, плотности элементов на плате, да и габаритов самой платы.
Заключение
Разработка USB модуля для использования в собственных проектах дело относительно легкое. Оно полностью оправдывает затраченные на него усилия.
В дальнейших статьях будет описано программное подключение протокола USB для использования в проектах на STM32.