This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: USB-CDC eCos configuration


Thanks for answer,

--- Andrew Lunn <andrew@lunn.ch> wrote:

> On Mon, Aug 27, 2007 at 12:20:20AM -0700, wavecom
> wavecom wrote:
> > Hi All,
> > 
> > I'm working on USB-CDC eCos based device.
> 
> I presume you are writing your own USB-CDC driver? I
> don't think one
> exists for eCos yet.

Yes, it is USB-CDC driver, I was trying to find
already developed, but I couldn?t find any.

> 
> > I've met some problems with initializing the
> device: Windows
> > recognizes the device as another COM port, but
> when I'm trying to
> > open the port by the hyperterminal, I have message
> "Could not open
> > COM port". What would be the cause of such
> behavior, below result of
> > lsusb -vvv command on Linux (I can also send my
> c-code of USB
> > initialization if necessary).
> 
> Do you have a trace of the USB messages sent
> backwards and forwards
> when the device is opened? Does your driver handle
> all these messages?

I didn?t try to sniff connection, today I?m going to
install SnoopyPro and log trace of the connection. Can
you recommend me similar software for Linux?

> 
> 
> > Second question is, how to set
> > Functional Descriptors like CDC Header, CDC ACM,
> CDC Union, CDC Call
> > Management? Are these parameters necessary for
> proper operating the
> > USB-CDC device?
> 
> What does the standard say? Is there a standard? Is
> this part of HID?
> 
> What does Linux make of this device? Maybe you can
> get better
> diagnostics from Linux than from M$. At least with
> Linux you have the
> source code so you can find out why Linux does not
> like your
> driver....

I don?t know if the standard of USB-CDC already
exists. I suppose that parameters are important for
driver because only difference between fully
functional driver and my driver are extra Functional
Descriptors:
"      CDC Header:
        bcdCDC               1.10
      CDC ACM:
        bmCapabilities       0x00
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          1"

That is simple USB implementation on AT91 (without
OS). Parameters are specified in structure like below
(that?s a part of example given by Atmel):

	/* ACM Functional Descriptor */
	0x04, // bFunctionLength
	0x24, // bDescriptor Type: CS_INTERFACE
	0x02, // bDescriptor Subtype: ACM Func Desc
	0x00, // bmCapabilities

	/* Union Functional Descriptor */
	0x05, // bFunctionLength
	0x24, // bDescriptorType: CS_INTERFACE
	0x06, // bDescriptor Subtype: Union Func Desc
	0x00, // bMasterInterface: Communication Class
Interface
	0x01, // bSlaveInterface0: Data Class Interface

	/* Call Management Functional Descriptor */
	0x05, // bFunctionLength
	0x24, // bDescriptor Type: CS_INTERFACE
	0x01, // bDescriptor Subtype: Call Management Func
Desc
	0x00, // bmCapabilities: D1 + D0
	0x01, // bDataInterface: Data Class Interface 1

That may notify driver about communication interface
and so on.

I?d better move my driver debugging to Linux, MS
doesn?t support any method of port debug. 
> 
>         Andrew
> 


Pete


       
____________________________________________________________________________________
Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase.
http://farechase.yahoo.com/

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]