Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/22/06 06:39
Modified:
  08/22/06 06:57

Read: times


 
#122753 - OK, the guidance
Responding to: ???'s previous message
OK,
First of all, forget the "Mini Host" example of the Cypress EZ811 dev kit, even though it looks like so simple. It is only a demonstration, an imitation. The functions required for the real application are lethally cut off, to make it simple. "Emb_Host" example is better as the start point.

The first thing you must do is to confirm the protocol that is equipped in the USB interface of the phone. Usually, modem is supported by CDC ACM, but the phone may use another protocol on a custom device driver.

a) Read out the descriptors of the phone
Connect the phone to a PC, and read out the descriptors.
From the descriptor, you can tell which protocol the phone equips.

UVCView from MS http://www.microsoft.com/whdc/device/stream/vidcap/UVCview.mspx

"Advanced USB Port Monitor" from AGG software - 15 days eval
http://www.usb-port-monitor.com/
This port monitor can also retrieve HID report descriptor, usually associated to modem devices.

If you have Linux PC, 'lsusb' also shows the descriptors, like this.
Sony Ericsson W800i
http://www.abclinuxu.cz/blog/tomms_software/2006/7/23/141739?varianta=print

When you find "Abstract Control Management Functional Descriptor" in the descriptors, it is supported by CDC ACM.
    bLength:            0x04
    bDescriptorType:    0x24   (CS_INTERFACE)
    bDescriptorSubtype: 0x02   (Abstract Control Management)
    bmCapabilities:     0x06   (Supports Send_Break, Set_Line_Coding, 
                                Set_Control_Line_State, Get_Line_Coding, 
                                and the notification Serial_State)


b) Observe the USB bus traffic
From the USB bus traffic, extract the enumeration process and class-specific request.
When you want to know how the host sets the baudrate of the modem, change the baudrate on the PC application and catch the corresponding class-specific request on the USB bus. Usually, it is SET_LINE_CODING.
You must make these traffic using SL811.

This software USB sniffer can catch the enumeration process.
"SourceUSB" from SourceQuest - 1-month eval
http://www.sourcequest.com/template.jsp?PAGE_ID=index


Now you realize what you must make. Then the next step is to design your application.
To make better design, you must realize more in detail. You must read these references. But don't read through it, it is useless. Rather, focus on what you are making (CDC ACM), and extract corresponding part from these references.

You'll have many questions, more definite than your first post, from above observations. Find the answer from these references.
For example,
- Which standard request must be issued on the enumeration?
- What is the class-specific request?

[References]
"Class Definitions for Communication Devices 1.1" from USB.org
http://www.usb.org/developers/devclass_docs/usbcdc11.pdf

[General reference]
"USB in a NutShell", control/interrupt/bulk trnasfer
http://www.beyondlogic.org/usbnutshell/usb4.htm

"USB Complete, 3rd.Ed" by J.Axelson
http://www.lvr.com/usbc.htm

"USB 2.0 Specification" from USB.org
http://www.usb.org/developers/docs/


Before starting the embedded host programming, I recommend you to examine the device side implementation for exercise. It'll show you the protocol more clearly from the other end.

I posted a CDC implementation for device to SiLabs forum.
"USB CDC (Communication Device Class) implementation for 'F32x and 'F34x"
http://www.cygnal.org/ubb/Forum9/HTML/000945.html


And now, you can realize the SL811 datasheet more in detail. It is short, but has enough information to make your target.

But Cypress parts are too 'intelligent' to study on USB.

Tsuneo

List of 12 messages in thread
TopicAuthorDate
USB Host + 8051 question            01/01/70 00:00      
   USB Design By Example            01/01/70 00:00      
   CDC ACM            01/01/70 00:00      
      USB Hub            01/01/70 00:00      
         127 devices regardless of hubs            01/01/70 00:00      
            89c5131            01/01/70 00:00      
               there is no '51 USB Host            01/01/70 00:00      
               No!            01/01/70 00:00      
   CDC ACM,            01/01/70 00:00      
      OK, the guidance            01/01/70 00:00      
         Hardware USB bus monitor            01/01/70 00:00      
            CATC            01/01/70 00:00      

Back to Subject List