usb

Работа с USB в Python

Соорудил на своей stm32f4discovery собственное usb устройство. Все довольно просто, одна BULK конечная точка. Плата принимает данные и переключает светодиоды, которых в наличии четыре.
Собственно о программе контроллера как-то в другой раз, а сейчас о том, как с данным дивайсом работать с ПК.

Делаем чтобы USB COM порт был доступен простому пользователю Linux

По умолчанию udev в Linux системах настроен так, что не дает обычному пользователю системы пользоваться COM портами. Под это правило попадает и USB-COM переходник на ft232.

Установка libusbx в Windows

Для работы с устройствами usb удобно пользоваться библиотеками libusb или её форком libusbx.
О том как установить их и пойдет речь в этой заметке.

Скачайте библиотеку libusbx. Распаковав архив вы увидите такое:

Переходник usb-com ft232rl создание и использование

Учитывая последние тенденции в развитии техники рассчитывать, что в вашем новом компьютере будет com порт не приходиться, про ноутбуки я вообще молчу.

За сим появилась возможность создания переходника usb-com. И тут интернет предлагает кучу решений. Решений конечно же больше "разводных". Разводных в том смысле, что народ предлагает различные варианты разводки данного дивайса.

Схема же как правило одна и таже:

Схема usb-com преобразователя

Обмениваемся данными с USB девайсом при помощи libusb

LibUsb - библиотека для языка C, которая позволяет обмениваться данными с устройствами по протоколу usb.

У меня есть устройсво на базе STM32F407VGT6 микроконтроллера.
Давайте рассмотрим механизм посылки и принятия данных.

Прежде всего стоит отметить, что данные можно слать разными способами. Мы рассмотрим асинхронную передачу прерывания ( interrapt transfer )
Этот тип передачи позволяет передавать небольшие объёмы данных без получения подтверждения о получении. Тобеш послали и забыли))

При работе с libusb следует помнить, что его нужно инициализировать: