Completed Project Project: ITUSB1 USB Test Switch

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,541
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,541
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,541
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

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,541
Revision A Update:
Meanwhile I've updated this project, and some characteristics changed for the better. Namely, the resistance that is imposed on the line under test by this device. That means a smaller voltage drop to the device under test (DUT), and as a result, more transparency. The changes were mainly done around the VBUS line in the test section.

ITUSB1RevA-1.png

ITUSB1RevA-2.png

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

Electrical characteristics:
– I d. = 66,31mA
– P = 331,6mW

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

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

As you may have noticed, a few componentes were replaced during this revision, to tackle the significant resistance and voltage drop imposed by this instrument. IC8 is now a ZEN056V130A24LS, which presents a smaller resistance than the ZEN056V075A48LS used before. IC10 is a TPS2031, again, an improvement over the LM3525M-H. Last but not least, the shunt resistor in R8 is now 40mΩ. To accomodate this last change, the current sense amplifier on position IC11 is now a INA180A2. This change had no effect in the precision of the current measurement ability.

List of 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 – 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);
IC8 – PolyZen ZEN056V130A24LS protection device;
IC10 – TPS2031 power switch (TPS2031D);
IC11 – INA180A2 current sense amplifier (INA180A2IDBV);
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 – 40mΩ±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).

As before, the schematic and layout are available in PDF format. The Eagle generated files are in a separate .zip file. Note that, as before, 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'll provide next.
 

Attachments

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,541
You can refer to post #3 to see how to configure the CP2130. However, you should use the file provided here if you wish to configure a Rev. A board. Unfortunately, I can no longer upload tar.gz files, so you should look for the configuration program (search for "itusb1-ra-conf-1.0.tar.gz" on a search engine) on my blog or on GitHub (just search "itusb1-ra-conf" while in there). Mind that using the configuration program is the preferred way, but you have to have Linux installed somewhere.

The latest revision of the application is also available as an Appimage. I can't upload the most recent software for the reason above, so you should search for the packages on my blog (file repository), or even on GitHub (bloguetronica). And sorry, I will not go through the trouble of converting tar.gz to 7z files.

Edit: I all fairness, only now I've noticed that it is possible to upload zip files. See the "itusb1-ra-conf-1.0.zip" file attached.
 

Attachments

Last edited:

Thread Starter

bloguetronica

Joined Apr 27, 2007
1,541
The most recent application for Linux is available here. The application is pretty much mature and complete. The Appimage is available on the file repository of my blog, or on Github.
 

Attachments

Top