2015-06-01 41 views
0

背景:我正在评估用Cortex芯片代替FTDI + FPGA + RAM,我正在玩LPC1768 dev卡。作为HID通过python与LPC1768通信

指示灯闪烁? [X]通过虚拟通讯端口 通讯[X]

现在我在看的libusb通过通信(无论是CDC或HID ...评估)

,我开始试图通过这个例子:https://developer.mbed.org/cookbook/USBHID-bindings- &的程序编译并运行USBHID_TestCase

问题出在python方面(使用linux example & libUSB)。

的第一个问题是PY脚本有:

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台设备,这个卡自曝(好),这是由一个简单的Python匹配的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是大容量存储 - >从例子中的Python脚本竟被不工作。我一直试图通过dev [0] [3,0]进行通信,并通过指定端点为dev [0] [3,0] [0]我可以写入但从dev [0] [3,0] [ 1]总是返回0,即使mbed代码旨在提供随机数据。

任何想法的?

回答

1

USB测试用例代码使用lpc1768 ic上的usb控制器,而不是mbed板的接口芯片。该代码使用mbed板上的引脚31和32。 希望这有助于。