USB и CherryUSB¶
Для устройств SF32 и плат с поддерживаемым USB-оборудованием документация и примеры SiFli-SDK показывают интеграцию с CherryUSB. Проверьте, какие роли и классы USB поддерживает конкретное сочетание микросхемы, платы и версии SDK, и рассматривайте USB как полноценный программный стек, а не только как аппаратную функцию.
Работа с USB затрагивает прошивку, дескрипторы, операционные системы хоста, питание и средства производства. Если устройство один раз определилось на ноутбуке разработчика, это ещё не означает, что работа завершена.
Сценарии использования¶
- Последовательный порт USB CDC.
- HID-устройства.
- Накопители MSC.
- USB-аудио: микрофон или динамик.
- MTP.
- Поддержка USB Host для периферии классов CDC, HID, MSC, UVC и UAC, если это поддерживают SDK и плата.
Практический порядок работы¶
- Убедитесь, что на плате есть нужный USB-разъём и предусмотрена цепь питания.
- Возьмите за основу ближайший по назначению пример USB из SDK.
- Проверьте перечисление устройства в Windows, macOS и Linux.
- Проверьте приостановку и возобновление работы, а также поведение при повторном подключении кабеля.
- Зафиксируйте VID/PID, дескрипторы и требования к драйверам хоста.
Что проверить¶
- Подключение кабеля до подачи питания и подключение/отключение во время работы устройства.
- Сброс при подключённом кабеле.
- Переход хоста в сон и выход из него.
- Отключение кабеля во время передачи данных.
- Перечисление устройства в Windows, macOS и Linux.
- Работу составного устройства при включении нескольких классов.
- Предупредите пользователей, что USB-кабели только для зарядки не поддерживают передачу данных.
Проверка дескрипторов¶
- Определено, кому принадлежат VID/PID.
- Строка с названием продукта окончательная либо версионируется.
- Определено поведение серийного номера.
- Значения класса/подкласса/протокола соответствуют предполагаемому драйверу хоста.
- Состав интерфейсов остаётся стабильным при обновлении прошивки.
Примеры SDK¶
Официальный каталог примеров CherryUSB для SiFli-SDK отдельно группирует примеры для USB Device и USB Host. Начните с примера, соответствующего роли USB и нужному классу, а проверки дескрипторов, питания и совместимости с хостом примените в реализации продукта.
| Роль USB | Пример | Назначение |
|---|---|---|
| Устройство | USB-микрофон | Микрофон USB Audio Class 1 |
| Устройство | USB-микрофон и динамик | Двустороннее аудио USB Audio Class 1 |
| Устройство | CDC ACM | USB-устройство связи |
| Устройство | CDC ACM UART | Мост USB-UART |
| Устройство | CDC + HID + MSC | Составное USB-устройство |
| Устройство | Мышь HID | Указывающее устройство USB HID |
| Устройство | MSC с NOR Flash | Запоминающее устройство на базе NOR Flash |
| Устройство | MSC с RAM-диском | Запоминающее устройство на базе RAM |
| Устройство | MSC с двумя RAM-дисками | Два логических накопителя на базе RAM |
| Устройство | MSC с SD/eMMC | Запоминающее устройство на базе карты SD или eMMC |
| Устройство | MTP с DFS и RAM-диском | Устройство Media Transfer Protocol |
| Хост | Хост CDC ACM | Связь с периферийным устройством CDC ACM |
| Хост | Хост HID | Подключение HID-устройства и чтение его данных |
| Хост | Хост MSC | Подключение USB-накопителя |
| Хост | Хост UVC + UAC | USB-периферия классов видео и аудио |
Последнее обновление: