Friday, July 8, 2011

How many USB devices did Allen implement?

Embedded Host -
The author did the embedded host development with below devices.
1.MSDC device
2.Camera device
3.SIDC device
4.WIFI device
5.HID device

USB Device -
The author implemented below usb devices.
1.HID device
2.Camera device
3.MSDC device
4.Vendor device
5.SIDC device
6.Printer device

If anyone has a any question about implementation, please send the message to me. It's my pleasure to help you.

USB host IF compliance test tips

Please refer Embedded High-speed Host Electrical Test Procedure and USB-IF Embedded Host Compliance Plan  first.

Tip 1: In Drop test, it related with hardware power layout. Please MUST support the 500mA loads. (VBUS connects 10 ohm to GND.)

Tip2: In Signal quality Test, please check with 0, 1.8, 3, 5M cables. If it's fail, please check the hardware circuit first.

Tip3: In Interoperability Test, the silence message is needed. And messages of hub and NOT support device MUST be different.



Embedded Host
Test Item
Full Speed Test
Drop test
Droop test
SRP test
Interoperability
Full Speed Downstream Signal Quality Test
High Speed Test
High Speed Signal Quality
(EL_2
EL_3EL_6EL_7)
Host Controller Packet Parameters
(EL_21
EL_22 EL_23EL_25EL_55).
Host CHIRP Timing
(EL_33
EL_34EL_35)
Host Suspend/Resume Timing
(EL_39
EL_41)
Device Test J/KSE0_NAK
(EL_8
EL_9)

USB device IF compliance test tips


The USB device IF compliance test includes two parts.

A.Legacy USB Compliance Tests

Tip 1.The developer MUST pass the Chapter 9 and MSC test with high-speed and full-peed modes. And download the test tool  (USB20CV Release 1.3.5). 

Two modes -
*High speed hub -> test device.  
*High speed hub -> Full speed hub -> test device. 

Tip 2.Interoperability Test - 
The developer MUST check the stability for power on/off, hibernate, and suspend modes. Of course it couldn't affect other operation devices.


Description
Frameworks Test
Chapter 9
MSC Test
Power Current Test
Operating Power
Un-configuration Power
Configuration Power
Suspend Mode Power
Interoperability Test
OSWindows XP
Signal Quality Test
Full Speed UP Stream Signal Quality
Inrush Current Test
Back Voltage Test
--


2.High Speed USB Compliance Tests

  
Please refer it first. Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure 

Tip 1: Device High Speed Signal Quality
Target: Check 100 times of eye diagram tests with each 0M, 1.8M, 3M, and 5M cables. It's very important for the compatibility.
If it's fail, try to check the hardware circuit first.
-> Does any resistor or capacitor in D+ or D-?
-> Does it follow layout guide? (45 ohm for each path)
Solution - 
1.Does the chip have voltage up function?
2.Check the result with Tektronix and Agilient Oscilloscopes?
The result of Tektronix Oscilloscopes always has sharp railing edge.


Description
A4.4 Device High Speed Signal Quality
     (EL_2, EL_4, EL_5, EL_6, EL_7)
A4.5 Device Packet Parameters
     (EL_21, EL_22, EL_25)
A4.6 Device CHIRP Timing
     (EL_28, EL_29, EL_31)
A4.7 Device Suspend/Resume/Rest timing
     (EL_27, EL_28, EL_38, EL_39, EL_40)
A4.8 Device Test J/K, SE0_NAK
     (EL_8, EL_9)
A4.9 Device Receiver Sensitivity
     (EL_16, EL_17, EL_18)
 

USB knowledge resource

For understanding the USB and MSDC driver, it's better to have below useful SPEC and books.

Book:
Lakeview Research Usb Mass Storagesigning And Programmingvices And Embedded Hosts Sep 2006
Lakeview Research - Usb Complete - Everything You Need To Develop Custom Usb Peripherals 3rd

SPEC:
usbmassbulk_10.pdf
usbmass-ufi10.pdf
Universal Serial Bus Specification 2.0

USB host development history

For developing USB host MSDC drivers, unless you used well-known driver, like Linux driver, you MUST do a lot of compliance tests.

Two part:

A.USB IF embedded host compliance test

B.Device test
1.Pen driver test (MSDC /SFF-8020i, MMC-2(ATAPI)/UFI classes)
Ex: Different kind of pen drivers / hard-disk
2.Camera test (MSDC/SIDC/PTP classes)
3.Hub test
4.Card reader test
5.Not support device test

Note:
For every storage device, it should at least do below tests.
1.Pass the plugging test at least three times.
2.Pass the power on test (Insert device -> system power on-> R/W test )
3.Pass the R/W test (100MB).

USB tools you MUST have

From the experience, the developer must have below tools. It would help to debug and clear the issue.

1.USB analysis tool (Ex: CATC)
  It's a public tool for analysis the protocol.
2.The USB catching log software in Windows PC. (Ex: Bus hound)
  It's a necessary tool in debugging with USB device driver.
3.The oscilloscope
  It's a basic tool check the voltage and signal.
4.The power supply + special socket
  It's for USB host driver. Sometimes the pen driver took much power than the VBUS supplying. So it needs to another power supplying for preventing unknown situation.
Special Socket

USB device development history

For any USB MSDC device driver, it should pass below different kind of tests.
Especially you're doing ODM case and need to do the public certification (Ex: USB IF Compliance test, etc).

A. Basic test
1. Read / Write/Format tests
2. Plug test
3. Card plug test
4. Suspend/ Resume/ Hibernate/ Restart test

B. USB IF test
1.   Chapter 9 test (full-speed/high speed)
2.   MSC test (full-speed/high speed)
3. USB signal tests

C. Apple MAC PC test
1. Read / Write/Format tests
2. Plug test
3. Card plug test
4. Suspend/ Resume/ Hibernate/ Restart test

D. Burning test
1.   Burning tool – NAND/ Card burning 
2.   Burning tool – SCSI command burning
3.   Many files copy testing.
4.  Data sync Test

E. WHQL test

Note:The author did those jobs with ARM chip and Linux OS.  It took two months.