Completed Project Project: ITUSB1 USB Test Switch

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,423
Hi,

Some (many) years passed since the last time I've posted a project. This is a test instrument that allows you to switch the USB power (Vbus) and data between a given host and device. Both power and data lines can be operated separately. Furthermore, the instrument offers galvanic isolation between the control PC and the host/device to be tested. It also allows you to measure the current consumption of the device under test (DUT).

ITUSB1-1.png

ITUSB1-2.png

Operation parameters:
– V d. min. = 4,5V
– V d. nom. = 5V
– V d. max. = 5,25V
– V USBT d. min. = 2,84V
– V USBT d. nom. = 5V
– V USBT d. max. = 5,5V
– I USBT d. max. = 500mA

Electrical characteristics:
– I d. = 59,95mA
– P = 299,8mW

USB test bus characteristics:
– USB power line resistance (R USBT): 460mΩ
– Voltage drop at nominal load (ΔV USBT d., I USBT d. = 500mA): 230mV
– Short-circuit current (I USBT d. SC): 1A
– Data lines differential impedance: 89,9Ω

Current measurement characteristics:
– Range: 1,02A
– Stepping: 250µA
– Accuracy: ±(2,41% + 1,75mA)
– ADC resolution: 12bit

I will not detail too much about the inner workings of the circuit, as I've wrote a more detailed explanation in my blog (google "Bloguetrónica ITUSB1"). Basically, the whole circuit is controlled via the CP2130, that controls both the LM3525M-H (power switch) and the TS3USB221 (data switch), and reads from the LTC2312CTS8-12 ADC. The ADC itself is integrated into the circuit used to measure Vbus current. The circuit is also comprised of a current sensing resistor, on which the voltage drop is read through a INA180 amplifier. Both the control and SPI communication goes through a couple of isolators, namely the ADuM1200 and the AdUM1410.

ITUSB1-3.png

ITUSB1-4.png

List os components:
C1/2/4-6/16-24/29 – 100nF 10V MLCC (0805);
C3/13 – 1µF 10V MLCC (0805);
C7 – NOJA475M006 niobium capacitor (NOJA475M006RWJ or equiv.);
C8 – NOJA475M010 niobium capacitor (NOJA475M010RWJ or equiv.);
C9 – NOJA106M010 niobium capacitor (NOJA106M010RWJ or equiv.);
C10/11 – 330pF 1KV MLCC (1206);
C12/15/25-28 – 2,2µF 10V MLCC (0805);
C14 – 10nF 10V MLCC (0805);
D1 – WP1503CB/ID LED;
D2 – WP1503CB/YD LED;
D3 – TVS SMCJ5.0A diode;
IC1/8 – PolyZen ZEN056V075A48LS protection device;
IC2/9/14 – TPD2E2U06 (TPD2E2U06DRL) TVS;
IC3 – CP2130 USB to SPI bridge (CP2130-F01-GM);
IC4 – RFM-0505S isolated DC-DC converter;
IC5 – LP2985-33 voltage regulator (LP2985-33DBV);
IC6 – ADuM1200 digital isolator (ADuM1200ARZ);
IC7 – ADuM1310 digital isolator (ADuM1310ARWZ);
IC10 – LM3525M-H power switch;
IC11 – INA180A1 current sense amplifier (INA180A1IDBV);
IC12 – LTC2312CTS8-12 ADC;
IC13 – TS3USB221 USB data switch (TS3USB221ARSE);
J1 – Molex 67068-9001 USB connector;
J2 – Molex 67068-8001 USB connector;
J3 – Molex 67643-2911 USB connector;
L1 – XFL3012-223ME power inductor (XFL3012-223MEB ou XFL3012-223MEC);
Q1 – FDN327N power MOSFET;
Q2 – BSS138 MOSFET;
R1/5 – 1MΩ±5% 1/8W thick film resistor (0805);
R2/6/7 – 4,7KΩ±5% 1/8W thick film resistor (0805);
R3/4 – 82Ω±5% 1/8W thick film resistor (0805);
R8 – 100mΩ±1% thick film resistor (1210);
R9 – 100Ω±5% 1/8W thick film resistor (0805);
R10/11 – 49,9Ω±1% 1/8W thick film resistor (0805).

I would strongly recommend OSH Park for the PCB fabrication, since the layout was done to fit the stackup that this service. The USB lines are impedance controlled and require similar materials and specs. As for the enclosure, I recommend the Hammond 1457C801.

Attached is the schematic and layout in PDF. The Eagle generated files are in a separate .zip file. Note that you will need to configure the firmware. That can be done either via the CP21xx Customization Utility from Silicon Labs or via the configuration program. I will provide both files in a future post (but they are available through the post on my blog - as I wrote before, you will have to google).
 

Attachments

Last edited:

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,423
I forgot to mention about a necessary step to configure the CP2130. You can use this in two ways:
– Under Windows, via the CP21xx Customization Utility from Silicon Labs;
– Under Linux, using the configuration program (recommended).

Windows approach:
– Download CP2130_SDK_Windows_XP_Vista.exe from Silicon Labs;
– Install CP21xx Customization Utility and the drivers for the CP2130;
– Connect your unconfigured ITUSB1 device to the computer;
– Open the Customization Utility, and click "Refresh" if necessary;
– Select your unconfigured device under "Device Selection";
– Select "Load Configuration" from the "File" menu (Ctrl + O);
– Open "Config.txt" to lead the configuration;
– Change the "Serial" field inside "Set IDs", in "Device Configuration", to a random value at your choice (by rule, you should maintain the prefix "IU1-00" and only alter the last six digits to numbers and capital letters);
– Click "Program Device".

Linux approach:
– Download and decompress "itusb1-r0-conf-1.0.tar.gz.zip" (the tar.gz was zipped directly to preserve its integrity and distribution here, in the AAC forums);
– Decompress the tarball inside it to a folder of your choice;
– Follow the instructions in "README.txt" (note you will need "apt" or "apt-get");
– Run in terminal "itusb1-r0-conf" followed by the current serial number your unconfigured device has (you can get it by using the "lsusb -v" command, or by using USBView as root;
– Now the program will configure the device, with a random serial number.

Note that configuring the CP2130 interface of your device is necessary. You must not skip this step! Any of the above procedures will configure the VID and PID to its authorized settings, and the other parameters so that your ITUSB1 device can work as intended.
 

Attachments

Last edited:

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,423
About the software, there are only drivers available for Windows. You should refer to the package "itusb1drv-win.zip" for the WinUSB driver, or to "itusb1drv-libusbwin32.zip" for its libusb counterpart. There is no software, as I don't develop for Windows (the process it is way too much convoluted to be worth it).

For Linux, you have a complete suite of software at your disposal:
– Control commands to be run on the terminal, at "itusb1-1.1.tar.gz";
– The graphical application, which is contained inside "itusb1-mngr-2.0.tar.gz".

SoftwareMelhoradoITUSB1-1.png
 

Attachments

Top