13/04/2020

Interruptor de teste ITUSB1

Hoje apresento um instrumento que serve para testar dispositivos USB, ao qual dei a designação ITUSB1. Este instrumento, permite a interrupção independente da alimentação e das linhas de dados entre um dado dispositivo USB e o anfitrião ao qual este está ligado, providenciando ao mesmo tempo isolamento galvânico entre o anfitrião em teste e o computador de controlo. Estas características são especialmente úteis na parametrização de testes de enumeração. Para além do mais, o ITUSB permite medir a corrente de consumo do referido dispositivo com alguma precisão, desde que o valor medido não alcance 1A.

Parâmetros de funcionamento:
– V d. mín. = 4,5V
– V d. nom. = 5V
– V d. máx. = 5,25V
– V USBT d. mín. = 2,84V
– V USBT d. nom. = 5V
– V USBT d. máx. = 5,5V
– I USBT d. máx. = 500mA


Características eléctricas:
– I d. = 59,95mA
– P = 299,8mW


Características do barramento USB de teste:
– Resistência da linha de potência (R USBT): 460mΩ
– Queda de tensão à carga nominal (ΔV USBT d., I USBT d. = 500mA): 230mV
– Corrente em curto-circuito (I USBT d. SC): 1A
– Impedância diferencial das linhas de dados: 89,9Ω


Características do medidor de corrente:
– Alcance: 1,02A
– Granularidade: 250µA
– Exactidão: ±(2,41% + 1,75mA)
– Resolução: 12bit


Interruptor de teste ITUSB1. As portas que ligam ao anfitrião e ao dispositivo em teste encontram-se no painel frontal.

Vista traseira do instrumento, onde é visível a porta de controlo.

O circuito apresenta alguma complexidade, e por isso será conveniente compartimentá-lo em blocos mais simples. Em primeiro lugar, todo o seu funcionamento é controlado pelo CP2130 da Silicon Labs (IC3). Trata-se de um conversor USB-SPI que já fora empregue em projectos anteriores e que, no caso presente, é utilizado para controlar a alimentação e as linhas de dados do barramento USB entre o dispositivo em teste e o seu anfitrião, assim como para medir a corrente debitada. Esse controlo é feito por via dos isoladores digitais em IC6 e IC7, respectivamente do tipo ADuM1200 e ADuM1310, ambos da Analog Devices. Desta forma garante-se o isolamento galvânico entre a secção de controlo e a secção de teste, a par com o RFM-0505S (IC4) que essencialmente alimenta a última secção do circuito.

A interrupção da alimentação entre o anfitrião e o dispositivo em teste é feita pelo LM3525M-H da Texas Instruments (IC10). Este comutador de potência também limita a corrente no barramento USB, servindo o PolyZen em IC8 para o mesmo efeito. Devo frisar a minha preferência pelo LM3525M-H em detrimento do LM3525M-L, ainda que haja a necessidade de empregar um MOSFET (Q2) para inverter o sinal lógico para o pino "EN" (pino 1) do primeiro integrado. Tal escolha justifica-se uma vez que a versão "-L" apresenta o inconveniente de permitir a alimentação do dispositivo a jusante quanto apenas alimentado pelo anfitrião a montante.

Circuitos de isolamento e de interrupção da linha de potência do barramento USB.

Por outro lado, a interrupção das linhas de dados é exercida pelo TS3USB221 (IC13), um comutador de dados específico para aplicações USB 2.0. Este integrado tem a vantagem de ser completamente transparente quando habilitado, minimizando-se o efeito do ITUSB1 sobre a qualidade do sinal no barramento entre anfitrião e dispositivo em teste. Apenas como nota, devo mencionar que o TS3USB221 está a ser utilizado apenas como interruptor, e não como comutador entre linhas de dados.

Outra característica importante é a medição da corrente no barramento USB da secção de teste. Esta é feita através do resistor de precisão em R8, de 100mΩ, implementado numa malha de quatro condutores. A diferença de potencial daí resultante é depois amplificada 20 vezes pelo INA180A1 (IC11), podendo a respectiva tensão de saída ser lida pelo conversor analógico-digital em IC12. Este último é um LTC2312CTS8-12, e apresenta uma resolução de 12bit, sendo adequado para oferecer a granularidade pretendida.

Circuito de interrupção das linhas de dados do barramento USB, e circuito de medição de corrente.

Por fim, o circuito implementa diversas protecções. A protecção contra corrente excessiva e curto-circuitos no barramento USB da secção de teste é tanto feita pelo PolyZen em IC8 como pelo próprio comutador de potência em IC10, conforme referi anteriormente. Também existe um PolyZen dedicado à porta de controlo, localizado em IC1, do mesmo tipo. Todas as portas USB estão protegidas contra descargas electrostáticas pelos circuitos de protecção TVS em IC2, IC9 e IC14, todos eles do tipo TPD2E2U06.

Lista de componentes:
C1/2/4-6/16-24/29 – Condensador cerâmico multi-camada 100nF 10V (0805);
C3/13 – Condensador cerâmico multi-camada 1µF 10V (0805);
C7 – Condensador electrolítico de nióbio NOJA475M006 (NOJA475M006RWJ ou equiv.);
C8 – Condensador electrolítico de nióbio NOJA475M010 (NOJA475M010RWJ ou equiv.);
C9 – Condensador electrolítico de nióbio NOJA106M010 (NOJA106M010RWJ ou equiv.);
C10/11 – Condensador cerâmico multi-camada 330pF 1KV (1206);
C12/15/25-28 – Condensador cerâmico multi-camada 2,2µF 10V (0805);
C14 – Condensador cerâmico multi-camada 10nF 10V (0805);
C30 – Condensador electrolítico de nióbio NOJD107M010 (NOJD107M010RWJ ou equiv.);
D1 – LED WP1503CB/ID;
D2 – LED WP1503CB/YD;
D3 – Díodo TVS SMCJ5.0A;
IC1/8 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2/9/14 – Circuito de protecção TVS TPD2E2U06 (TPD2E2U06DRL);
IC3 – Conversor USB-SPI CP2130 (CP2130-F01-GM);
IC4 – Conversor DC-DC isolado RFM-0505S;
IC5 – Regulador de tensão LP2985-33 (LP2985-33DBV);
IC6 – Isolador digital ADuM1200 (ADuM1200ARZ);
IC7 – Isolador digital ADuM1310 (ADuM1310ARWZ);
IC10 – Comutador de potência LM3525M-H;
IC11 – Amplificador de medição de corrente INA180A1 (INA180A1IDBV);
IC12 – Conversor analógico-digital LTC2312CTS8-12;
IC13 – Comutador de sinal USB TS3USB221 (TS3USB221ARSE);
J1 – Conector USB Molex 67068-9001;
J2 – Conector USB Molex 67068-8001;
J3 – Conector USB Molex 67643-2911;
L1 – Indutor de potência XFL3012-223ME (XFL3012-223MEB ou XFL3012-223MEC);
Q1 – Transístor MOSFET de potência FDN327N;
Q2 – Transístor MOSFET BSS138;
R1/5 – Resistor de filme espesso 1MΩ±5% 1/8W (0805);
R2/6/7 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
R3/4 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R8 – Resistor de filme espesso 100mΩ±1% (1210);
R9 – Resistor de filme espesso 100Ω±5% 1/8W (0805);
R10/11 – Resistor de filme espesso 49,9Ω±1% 1/8W (0805).


O layout da placa está disponível nos formatos brd (Eagle 7.7.0) e Gerber. A encomenda da placa deve ser feita através do OSH Park, uma vez que este serviço suporta layouts de quatro camadas com furação a partir de 0,5mm. Caso prefira outro serviço de fabrico, deverá confirmar se o mesmo suporta layouts nas mesmas condições, e se o stackup e materiais são idênticos. Note que o último critério é essencial para manter as impedâncias dos pares diferenciais em conformidade com a especificação da norma USB.

A soldadura e montagem da placa requer equipamento próprio. Nomeadamente, a soldadura dos componentes SMD deve ser feita por refusão com ar quente, utilizando pasta de solda e stencil para tal. Os componentes da face superior devem ser soldados em primeiro lugar, e só depois os da face interior, sempre com o cuidado de aplicar a quantidade de calor estritamente necessária. Os componentes through-hole são sempre soldados em último lugar, sendo um ferro de soldar o suficiente.

A caixa recomendada para o projecto é a Hammond 1457C801. É uma caixa em alumínio anodizado que possui tampas lacadas a pó preto. Pode também optar pelo modelo 1457C801BK, cujo corpo também é lacado a pó preto. Em todo o caso, as tampas devem ser trabalhadas de acordo com o guia de furação.

Por último, é necessário configurar o interface CP2130 do instrumento, para que o mesmo possa funcionar correctamente. Em Windows, isso pode ser feito mediante a aplicação "CP21xx Customization Utility" da Silicon Labs (que vem inclusa no pacote CP2130_SDK para Windows XP e Vista). Em Linux, deverá utilizar o programa de configuração incluído no pacote "itusb1-r0-conf-1.0.tar.gz", por sua vez disponível na pasta "Software". Todos os ficheiros e pastas pertinentes encontram-se dentro da pasta do projecto. Consulte as notas do projecto para mais detalhes.

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/7r6g...8zi1
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/bnm4...g8ow
Layout da placa (pdf): https://app.box.com/s/cah5...850j
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/fv89...r3b7
Ficheiros Gerber: https://app.box.com/s/xlfv...7uoi
Guia de furação: https://app.box.com/s/g0q0...x203
Firmware (com instruções): https://app.box.com/s/ynqp...ji4w
Drivers (Windows): https://app.box.com/s/2esn...g14u
Software (Linux): https://app.box.com/s/sl8d...22jb
Notas do projecto: https://app.box.com/s/d4f0...qrh0
Pasta contendo todos os ficheiros: https://app.box.com/s/jbh9...qnxy
Projecto no OSH Park: https://oshpark.com/shared_projects/3xWffU8D
CP2130_SDK: http://www.silabs.com/.../CP2130_SDK_Windows_XP_Vista.exe