Thanks for answer,

--- Andrew Lunn <[EMAIL PROTECTED]> 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

Reply via email to