For internal usage at my work, they built a USB to 1-wire translator
on top of a PIC.  They assigned it the USB HID class and give it the
a report descriptor for Vendor Usage 1 so that they wouldn't have to
install any drivers on Windows.  See below for the report descriptor in
PIC ASM format, it's just byte codes.

The thing worked great, including not needing to install drivers on
user's desktops, and now I'd like to use it on my Linux box.  However,
when I plug it in, this is what I get (on FC3, kernel 2.6.12-1.1372):


Aug 30 14:10:56 redwall kernel: usb 2-1: new low speed USB device using 
uhci_hcd and address 3
Aug 30 14:11:01 redwall kernel: usb 2-1: unable to read config index 1 
descriptor/start
Aug 30 14:11:01 redwall kernel: usb 2-1: can't read configurations, error -110
Aug 30 14:11:01 redwall kernel: usb 2-1: new low speed USB device using 
uhci_hcd and address 4
Aug 30 14:11:06 redwall kernel: usb 2-1: unable to read config index 1 
descriptor/start
Aug 30 14:11:06 redwall kernel: usb 2-1: can't read configurations, error -110
Aug 30 14:11:06 redwall kernel: usb 2-1: new low speed USB device using 
uhci_hcd and address 5
Aug 30 14:11:11 redwall kernel: usb 2-1: unable to read config index 1 
descriptor/start
Aug 30 14:11:11 redwall kernel: usb 2-1: can't read configurations, error -110
Aug 30 14:11:11 redwall kernel: usb 2-1: new low speed USB device using 
uhci_hcd and address 6
Aug 30 14:11:16 redwall kernel: usb 2-1: unable to read config index 1 
descriptor/start
Aug 30 14:11:16 redwall kernel: usb 2-1: can't read configurations, error -110
Aug 30 14:18:33 redwall kernel: usb 2-1: new low speed USB device using 
uhci_hcd and address 7


Since this is my first post to the list, could someone please let me
know the rules of list etiquette?

What information is needed to debug this problem?

What things can I try myself?

Do I need to write my own driver in Linux to support the device?

Thank you,
Colin Kuskie


; ******************************************************************
; This table is polled by the host immediately after USB Reset has been 
released.
; This table defines the maximum packet size EP0 can take.
; See section 9.6.1 of the Rev 1.0 USB specification.
; These fields are application DEPENDENT. Modify these to meet
; your specifications.
; the offset is passed in P0 and P1 (P0 is low order byte).
; ******************************************************************
Descriptions
        banksel EP0_start
        movf    EP0_start+1,w
        movwf   PCLATH
        movf    EP0_start,w
        movwf   PCL

DeviceDescriptor
StartDevDescr
        retlw   0x12            ; bLengthLength of this descriptor
        retlw   0x01            ; bDescType This is a DEVICE descriptor
        retlw   0x10            ; bcdUSBUSB revision 1.10 (low byte)
        retlw   0x01            ; high byte
        retlw   0x00            ; bDeviceClasszero means each interface 
operates independently
        retlw   0x00            ; bDeviceSubClass
        retlw   0x00            ; bDeviceProtocol
        retlw   0x08            ; bMaxPacketSize0 - inited in UsbInit()
        retlw   0xFA            ; idVendor - 0x04FA is Dallas Semiconductor 
Vendor ID
        retlw   0x04            ; vendor high order byte
        retlw   0x23            ; idProduct = 0x9123
        retlw   0x91            ; product high order byte
        retlw   0x01            ; bcdDevice - Use this as the rev indicator.
        retlw   0x00
        retlw   0x01            ; iManufacturer - String Descriptor Index for 
Manufacturer
        retlw   0x02            ; iProduct - String Descriptor Index for Product
        retlw   0x00            ; iSerialNumber - 3
        retlw   NUM_CONFIGURATIONS      ; bNumConfigurations

; ******************************************************************
; This table is retrieved by the host after the address has been set.
; This table defines the configurations available for the device.
; See section 9.6.2 of the Rev 1.0 USB specification (page 184).
; These fields are application DEPENDENT. 
; Modify these to meet your specifications.
; ******************************************************************
Config1
        retlw   0x09            ; bLength       Length of this descriptor
        retlw   0x02            ; bDescType     2=CONFIGURATION
        retlw   EndConfig1 - Config1    ;wTotalLength
        retlw   0x00
        retlw   0x01            ; bNumInterfaces        Number of interfaces
        retlw   0x01            ; bConfigValue  Configuration Value
        retlw   0x03            ; iConfig       String Index for this config = 
#03
        retlw   0x80            ; bmAttributes  attributes - bus powered, 
remote wakeup disabled
        retlw   0x32            ; MaxPower      100mA
Interface1
        retlw   0x09            ; length of descriptor
        retlw   INTERFACE;
        retlw   0x00            ; number of interface, 0 based array
        retlw   0x00            ; alternate setting (default = 0)
        retlw   0x02            ; number of endpoints used in this interface 
(excluding endpoint 0)
        retlw   0x03            ; interface class (0x03 = HID)
        retlw   0x00            ; interface subclass (0x00 = not a boot device)
        retlw   0x00            ; interface protocol (0x00 = none)
        retlw   0x00            ; index to string descriptor that describes 
this interface
HID_Descriptor
        retlw   (Endpoint1 - HID_Descriptor)     ; descriptor size
        retlw   0x21            ; descriptor type (HID)
        retlw   0x00            ; Low byte of HID class release number (1.00)
        retlw   0x01            ; High byte of HID class release number (1.00)
        retlw   0x00            ; Localized country code (none)
        retlw   0x01            ; # of HID class descriptor to follow (1)
        retlw   0x22            ; Report descriptor type (HID)
        retlw   low  (end_ReportDescriptor - ReportDescriptor)
        retlw   high (end_ReportDescriptor - ReportDescriptor)
Endpoint1
        retlw   0x07            ; length of descriptor
        retlw   ENDPOINT        ; Descriptor type
        retlw   0x81            ; Encoded Address: EP1, In
        retlw   0x03            ; Endpoint Attribute: Interrupt transfer
        retlw   0x08            ; max packet size (8 bytes) low order byte
        retlw   0x00            ; max packet size (8 bytes) high order byte
        retlw   0x0A            ; polling interval (10ms)
Endpoint2
        retlw   0x07            ; length of descriptor
        retlw   ENDPOINT        ; Descriptor type
        retlw   0x01            ; Encoded Address: EP1, OUT
        retlw   0x03            ; Endpoint Attribute: Interrupt transfer
        retlw   0x08            ; max packet size (8 bytes) low order byte
        retlw   0x00            ; max packet size (8 bytes) high order byte
        retlw   0x0A            ; polling interval (10ms)
EndConfig1

ReportDescriptorLen
        retlw   low  (end_ReportDescriptor-ReportDescriptor)
ReportDescriptor
        dt 0x06, 0xA0, 0xff     ; USAGE_PAGE (Vendor Defined Page 1)
        dt 0x09, 0x01           ; USAGE (Vendor Usage 1)
        dt 0xa1, 0x01           ; COLLECTION (Application)
; INPUT REPORT
        dt 0x09, 0x01           ;   USAGE (Vendor Usage 1)
        dt 0x15, 0x00           ;   LOGICAL_MINIMUM (0)
        dt 0x26, 0xff, 0x00     ;   LOGICAL_MAXIMUM (255)
        dt 0x75, 0x08           ;   REPORT_SIZE (8 bits)
        dt 0x95, 0x08           ;   REPORT_COUNT (8)
        dt 0x81, 0x02           ;   INPUT (Data,Var,Abs)
; OUTPUT REPORT
        dt 0x09, 0x02           ;   USAGE (Vendor Usage 2)
        dt 0x15, 0x00           ;   LOGICAL_MINIMUM (0)
        dt 0x26, 0xff, 0x00     ;   LOGICAL_MAXIMUM (255)
        dt 0x75, 0x08           ;   REPORT_SIZE (8 bits)
        dt 0x95, 0x08           ;   REPORT_COUNT (8)
        dt 0x91, 0x02           ;   OUTPUT (Data,Var,Abs)
        dt 0xc0                 ; END_COLLECTION
end_ReportDescriptor


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to