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

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 и плата.

Практический порядок работы

  1. Убедитесь, что на плате есть нужный USB-разъём и предусмотрена цепь питания.
  2. Возьмите за основу ближайший по назначению пример USB из SDK.
  3. Проверьте перечисление устройства в Windows, macOS и Linux.
  4. Проверьте приостановку и возобновление работы, а также поведение при повторном подключении кабеля.
  5. Зафиксируйте VID/PID, дескрипторы и требования к драйверам хоста.

Что проверить

  • Подключение кабеля до подачи питания и подключение/отключение во время работы устройства.
  • Сброс при подключённом кабеле.
  • Переход хоста в сон и выход из него.
  • Отключение кабеля во время передачи данных.
  • Перечисление устройства в Windows, macOS и Linux.
  • Работу составного устройства при включении нескольких классов.
  • Предупредите пользователей, что USB-кабели только для зарядки не поддерживают передачу данных.

Проверка дескрипторов

  • Определено, кому принадлежат VID/PID.
  • Строка с названием продукта окончательная либо версионируется.
  • Определено поведение серийного номера.
  • Значения класса/подкласса/протокола соответствуют предполагаемому драйверу хоста.
  • Состав интерфейсов остаётся стабильным при обновлении прошивки.

Примеры SDK

Официальный каталог примеров CherryUSB для SiFli-SDK отдельно группирует примеры для USB Device и USB Host. Начните с примера, соответствующего роли USB и нужному классу, а проверки дескрипторов, питания и совместимости с хостом примените в реализации продукта.

Таблица: примеры CherryUSB из SiFli-SDK для SF32LB58x
Роль 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-периферия классов видео и аудио

Последнее обновление: