2015-06-01 93 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。 希望這有助於。