Заказчик
Общество с ограниченной ответственностью "ТестЭйр"
Проект
Проектирование, разработка и изготовление USB-HID ⟷ UART преобразователя.
Цели и задачи
Главным отличием данного устройства от типовых USB ⟷ UART преобразователей (FTDI FT232RL, Microchip MCP2200, Prolific PL2303 и т.д.) является то, как он определяется при подключении к ПК/планшету/телефону. В отличие от вышеперечисленных устройств, которые определяются как Virtual COM Port и требуют установки драйверов для своей работы, данный преобразователь определяется как USB HID устройство, которому, как известно, дополнительные драйверы не нужны. Отсюда и перечень задач:
- Проектирование/изготовление опытного образца, имеющего возможность работать как на +3,3 В, так и на +5 В уровнях напряжения со стороны UART;
- Разработка демонстрационного приложения для операционных систем Windows и Linux, позволяющего наглядно продемонстрировать двухсторонний обмен данными.
Решение
За основу устройства преобразователя был выбран микроконтроллер ST Microelectronics STM32F042F4 в корпусе SSOP20. Особенностью данного МК является отсутствие необходимости во внешнем кварцевом резонаторе, несмотря на работу/обмен данными через USB. Как следствие, на печатной плате помимо самого микроконтроллера размещается несколько чип-резисторов/конденсаторов и разъёмы, т.е. габаритные размеры платы получаются минимальными. В конечном итоге устройство должно переслать данные, полученные через UART, "наверх" посредством USB, и наоборот, данные от USB отправить на UART.
Поскольку при подключении Переходник определяется как Custom HID-устройство, основная сложность ложится на разработчика ПО верхнего уровня. Необходимо определить факт подключения непосредственно Переходника, открыть устройство и непрерывно опрашивать его. Для USB 2.0 full-speed (FS) HID устройств максимальный размер данных в рамках одного репорта - 8 байт. Соответственно при передаче больших массивов данных в любую из сторон необходимо учитывать этот факт и фрагментировать отправляемые/принимаемые данные.
Разработка топологий печатных плат приёмника и передатчика выполнялась с использованием свободного ПО KiCAD.
Разработка ПО для микроконтроллеров выполнялась с использованием:
- программатор/отладчик ST-LINK;
- среда разработки - Eclipse;
- компилятор/ассемблер/компоновщик - от Mentor Graphics/CodeSourcery;
- система контроля версий - Git;
- дополнительно используемые библиотеки:
- STM32F0 Standard peripheral library;
- STM32F0 USB Full speed device library
Разработка ПО для компьютера под управлением ОС семейства Linux выполнялась с использованием:
- среда разработки Qt Creator + инструментарий Qt5;
- библиотека libusb;
Результаты
Само по себе, устройство прошло предварительное тестирование. В дальнейшем предполагается подключать его к вычислительным устройствам с операционной системой Android на борту.