Фон: Я оцениваю замену FTDI + FPGA + RAM чипом Cortex, и я играю с графической картой LPC1768., связавшись с LPC1768 как HID через python
мигающий светодиод? [Х] связь через порт виртуального порта связи [х]
Теперь я смотрю на связь через libUSB (или CDC или HID ... оценки)
Я начал пробовать этот пример: https://developer.mbed.org/cookbook/USBHID-bindings- & Программа USBHID_TestCase компилируется и запускается.
Проблема находится на стороне python (с использованием примера Linux & libUSB).
1-й вопрос был сценарий ого имеет:
mbed_vendor_id = 0x1234
mbed_product_id = 0x0006
равного образ mbed USBDevice: USBHID имеет:
USBHID(uint8_t output_report_length = 64, uint8_t input_report_length = 64, uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0006, uint16_t product_release = 0x0001, bool connect = true);
т.е. тот же продукт и поставщик ID. Однако ... lsusb перечисляет набор микросхем NXP в другом месте.
Bus 003 Device 008: ID 0d28:0204 NXP LPC1768
выдающие: lsusb -vvv -d 0x0d28: 0204 Я вижу 4 устройств, эта карта обнажает (хорошо), и это совпадающее с помощью простого питона TestCase
import usb
mbed_vendor_id = 0x0d28
mbed_product_id = 0x0204
dev = usb.core.find(idVendor=mbed_vendor_id,idProduct=mbed_product_id)
проверки какого DEV теперь населен:
dev[0]
<CONFIGURATION 1: 500 mA>
dev[0][(0,0)]
<INTERFACE 0: Mass Storage>
[0] <ENDPOINT 0x82: Bulk IN>
[1] <ENDPOINT 0x2: Bulk OUT>
[2] <ENDPOINT 0x0: Control OUT>
dev[0][(1,0)]
<INTERFACE 1: CDC Communication>
[0] <ENDPOINT 0x83: Interrupt IN>
[1] <ENDPOINT 0x0: Control OUT>
dev[0][(2,0)]
<INTERFACE 2: CDC Data>
[0] <ENDPOINT 0x4: Bulk OUT>
[1] <ENDPOINT 0x84: Bulk IN>
[2] <ENDPOINT 0x0: Control OUT>
dev[0][(3,0)]
<INTERFACE 3: Human Interface Device>
[0] <ENDPOINT 0x81: Interrupt IN>
[1] <ENDPOINT 0x1: Interrupt OUT>
[2] <ENDPOINT 0x0: Control OUT>
так 0 является запоминающее -> питон скрипт из примера woul не работаем. Я пытаюсь общаться через dev [0] [3,0] и указывая конечную точку как dev [0] [3,0] [0] Я могу писать, но читать с dev [0] [3,0] [ 1] всегда возвращают 0, даже если mbed-код предназначен для предоставления случайных данных.
Любые идеи?