2011-08-22 28 views
1

我使用LPC1768作爲連接到運行Linux的PXA168的CDC設備。在LPC方面,我有司機。我還啓用了usb-serial和cdc-acm驅動器的PXA linux驅動程序。當我啓動板,我得到以下: -作爲具有PXA168的CDC設備的LPC17xx

[ 2.539060] usb 1-1.3: new full speed USB device using pxau2h-ehci and address 4 
[ 2.581029] usb 1-1.3: New USB device found, idVendor=1fc9, idProduct=2002 
[ 2.587908] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
[ 2.595241] usb 1-1.3: Product: NXP LPC17xx VCOM 
[ 2.599996] usb 1-1.3: Manufacturer: NXP SEMICOND 
[ 2.604786] usb 1-1.3: SerialNumber: DEMO00000000 

# cat /proc/bus/usb/devices 

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 
B: Alloc= 0/800 us (0%), #Int= 1, #Iso= 0 
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 
P: Vendor=1d6b ProdID=0002 Rev= 2.06 
S: Manufacturer=Linux 2.6.34 ehci_hcd 
S: Product=Marvell PXA SOC EHCI Host Controller 
S: SerialNumber=pxau2h-ehci 
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA 
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms 

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4 
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 
P: Vendor=05e3 ProdID=0608 Rev=77.64 
S: Product=USB2.0 Hub 
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA 
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms 

T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 
D: Ver= 2.00 Cls=00(>ifc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 
P: Vendor=1908 ProdID=0221 Rev= 1.02 
S: Manufacturer=Generic 
S: Product=USB2.0 Device 
S: SerialNumber=20090909180003 
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA 
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage 
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms 
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms 

**T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 
D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 
P: Vendor=1fc9 ProdID=2002 Rev= 1.00 
S: Manufacturer=NXP SEMICOND 
S: Product=NXP LPC17xx VCOM 
S: SerialNumber=DEMO00000000 
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA 
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=(none) 
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=2ms 
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data) Sub=00 Prot=00 Driver=(none) 
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms 
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms** 

現在我的LPC不檢測任何驅動程序。這個LPC在用於連接具有Windows的PC的情況下工作良好,但如果我連接到Linux PC,則不會運行。

任何人都可以幫助我瞭解驅動程序的Linux和哪些接口將用於訪問虛擬串行端口。

回答

2
**T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 
D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 
P: Vendor=1fc9 ProdID=2002 Rev= 1.00 
S: Manufacturer=NXP SEMICOND 
S: Product=NXP LPC17xx VCOM 
S: SerialNumber=DEMO00000000 
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA 
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=(none) 

您選擇了協議「0」(零)。我在Linux中沒有成功。在描述符中將協議字段設置爲「1」:cdc_acm模塊將識別設備併爲您提供一個/ dev/ttyACM *設備作爲串行端口。

代碼從usbdesc.c剪斷:

USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType */ 
    USB_CDC_CIF_NUM,     /* bInterfaceNumber: Number of Interface */ 
    0x00,        /* bAlternateSetting: Alternate setting */ 
    0x01,        /* bNumEndpoints: One endpoint used */ 
    CDC_COMMUNICATION_INTERFACE_CLASS, /* bInterfaceClass: Communication Interface Class */ 
    CDC_ABSTRACT_CONTROL_MODEL,  /* bInterfaceSubClass: Abstract Control Model */ 
    0x01,        /* bInterfaceProtocol: changed to "01" AT-Command */ 
+0

感謝TJ。它爲我工作。 – 0x07FC