05/05/2021

Interruptor de teste ITUSB2

O ITUSB2 é um interruptor de teste USB, muito semelhante ao ITUSB1, e que partilha muitas características com a última revisão desse projecto (veja o post de 12 de Março). Tal como o ITUSB1, este instrumento permite interromper, de forma independente, a linha de alimentação e as linhas de dados do barramento USB entre um dado dispositivo sob teste e o anfitrião ao qual o mesmo está ligado. Similarmente, permite medir a corrente de consumo do dito dispositivo e também oferece isolamento galvânico entre o anfitrião de teste e o computador de controlo. Porém, o ITUSB2 acrescenta a capacidade de detectar a presença do dispositivo em teste, assim como o seu modo de ligação. Tal facto, torna este novo instrumento particularmente útil quando se pretende fazer testes de enumeração.

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


Características eléctricas:
– I d. = 99,68mA
– P = 498,4mW


Características do barramento USB de teste:
– Resistência da linha de potência (R USBT): 193mΩ
– Queda de tensão à carga nominal (ΔV USBT d., I USBT d. = 500mA): 96,5mV
– Corrente em curto-circuito (I USBT d. SC): 900mA
– 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 UTUSB2 em funcionamento.

À semelhança do que acontece com o ITUSB1, o funcionamento do circuito é controlado pelo CP2130 da Silicon Labs (IC3). É este integrado que permite o controlo de vários aspectos do barramento USB do lado do teste, tais como a interrupção da linha de alimentação ou das linhas de dados, e também possibilita a leitura da corrente de consumo do dispositivo sob teste e do seu estado de ligação. O controlo é feito por intermédio de dois isoladores digitais do tipo ADuM1410, em IC6 e IC7. Em conjunto com o conversor DC-DC RFM-0505S (IC4), são estes integrados que possibilitam o isolamento galvânico entre a secção de controlo e a secção de teste que o instrumento oferece.

A interrupção da linha de alimentação do barramento USB entre o anfitrião e o dispositivo em teste é feita pelo TPS2031 da Texas Instruments (IC10). Este comutador de potência limita a corrente no referido barramento a 900mA, sinalizando uma falha quando esse valor é excedido. Note que o dispositivo Polyzen em IC8 também oferece protecção contra sobre-corrente no barramento USB de teste. No entanto, esse integrado é apenas uma medida de recurso nessa situação.

Por sua vez, a interrupção das linhas de dados é executada pelo TS3USB221 (IC13), um comutador da Texas Instruments específico para aplicações USB 2.0. Este integrado é completamente transparente quando habilitado, visto que pouco atenua o sinal nas linhas de dados. Todavia, essa transparência não é relevante no caso do ITUSB2, dada a presença do condicionador de sinal em IC14 nas mesmas linhas. Detalharei sobre isso mais adiante.

A medição de corrente na linha de alimentação do barramento USB é feita indirectamente por via do resistor R8 e do amplificador INA180A2 em IC11. Este último, tratando-se de um amplificador para medição de corrente da Texas Instruments, mede a queda de tensão ao longo do resistor anterior, amplificando por conseguinte esse valor. A tensão daí resultante é então lida pelo LTC2312CTS8-12 em IC12, um conversor analógico-digital de 12bit da Linear Technology. Repare que, todos estes componentes foram escolhidos de modo a obter uma leitura de corrente numa escala um pouco superior a 1A, com exactidão razoável, e ainda possibilitando uma conversão relativamente fácil dos valores digitais obtidos. Estes mesmos componentes também foram aplicados na última revisão do interruptor de teste ITUSB1.

O que torna o ITUSB2 peculiar é a implementação do TUSB213 (IC14) da Texas Instruments, com o intento de detectar o dispositivo sob teste e também o modo, ou velocidade, a que o mesmo se liga (ou seja, se em high speed, ou se em full ou low speed). O ITUSB2 permite assim determinar se o dispositivo é USB 2.0 ou se é USB 1.1, consoante o modo que foi detectado e, indirectamente, em que estado é que o mesmo se encontra (por exemplo, se está em modo de suspensão, vulgo, suspend mode). Porém, essa faculdade depende sempre da "inteligência" do software que faz o controlo. É de notar que a introdução deste componente pode influenciar o sinal das linhas de dados, uma vez que o TUSB213 é um condicionador de sinal que tem como função primária o reforço desse mesmo sinal, e que por isso pode acrescentar uma característica adjuvante ao instrumento. Contudo, convém salientar que os componentes em redor do condicionador foram escolhidos de modo a minimizar tal influência.

Circuito de interrupção das linhas de dados, e circuito de detecção do dispositivo.

O circuito emprega as protecções usuais. Conforme referi acima, a protecção contra sobre-corrente e curto-circuitos no barramento USB de teste é exercida pelo TPS2031 em IC10, servindo o dispositivo Polyzen em IC8 como salvaguarda. No entanto, o referido Polyzen também protege contra sobre-tensões à entrada do mesmo barramento. Igualmente, o Polyzen em IC1 protege a secção de controlo contra o mesmo tipo de eventos. Ademais, todas as portas USB têm as suas linhas de dados protegidas contra descargas electrostáticas, sendo essa protecção feita pelos circuitos de protecção TVS em IC2, IC9 e IC15, com a referência TPD2E2U06.

Lista de componentes:
C1/2/4-6/16-24/29/31-33 – Condensador cerâmico multi-camada 100nF 10V (0805);
C3/13/30 – 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);
C34 – 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 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2/9/15 – 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/IC7 – Isolador digital ADuM1410 (ADuM1410ARWZ);
IC8 – Circuito de protecção PolyZen ZEN056V130A24LS;
IC10 – Comutador de potência TPS2031 (TPS2031D);
IC11 – Amplificador de medição de corrente INA180A2 (INA180A2IDBV);
IC12 – Conversor analógico-digital LTC2312CTS8-12;
IC13 – Comutador de sinal USB TS3USB221 (TS3USB221ARSE);
IC14 – Condicionador de sinal USB TUSB213 (TUSB213RGY);
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 40mΩ±1% 1/4W (1206);
R9 – Resistor de filme espesso 100Ω±5% 1/8W (0805);
R10/11 – Resistor de filme espesso 49,9Ω±1% 1/8W (0805);
R12 – Resistor de filme espesso 33KΩ±5% 1/8W (0805).


Como tem sido regra, o layout da placa está disponível nos formatos brd (Eagle 7.7.0) e Gerber. Recomendo que a encomenda da placa seja feita através do OSH Park, uma vez que o respectívo desenho foi concebido tendo em mente as especificações deste serviço. Se preferir outro serviço de fabrico, deverá verificar se o mesmo suporta layouts de quatro camadas com furação mínima de 0,5mm, e se o stackup e materiais são idênticos. Este último critério é muito importante de modo a manter as impedâncias dos pares diferenciais dentro dos parâmetros da especificação relevante da norma USB.

A soldadura e montagem da placa exige equipamento especializado. Todos os componentes SMD devem ser soldados por refusão com ar quente, sendo que a pasta de solda deve ser aplicada com um stencil. Em primeiro lugar são soldados os componentes da face superior, e só depois os da face inferior, tendo o cuidado de aplicar apenas o calor estritamente necessário, e de forma a não permitir que os componentes já soldados sejam perturbados. Os componentes through-hole são soldados em último lugar, bastando um ferro de soldar vulgar para tal.

À semelhança de outros projectos, a caixa recomendada é a Hammond, modelo 1457C801. É uma caixa em alumínio anodizado com as tampas lacadas a pó preto. Pode também optar pela caixa do modelo 1457C801BK, do mesmo fabricante e com as mesmas dimensões, com a diferença de que o corpo da mesma também é lacado a pó preto. De qualquer maneira, as tampas devem ser trabalhadas seguindo o guia de furação.

Após a montagem, é necessário fazer a configuração do interface CP2130 para que o instrumento possa funcionar. Em Windows, esse procedimento é feito utilizando a aplicação "CP21xx Customization Utility" da Silicon Labs (inclusa no pacote CP2130_SDK para Windows XP e Vista). Caso disponha de um sistema Linux, deverá utilizar o programa de configuração que está disponível no pacote "itusb2-r0-conf-1.0.tar.gz", que por sua vez pode ser encontrado dentro da pasta "Software". Todos os ficheiros e pastas que possam ser de interesse estão dentro da pasta do projecto. Para mais detalhes, consulte as notas do projecto.

Comandos de controlo e aplicação gráfica.

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/2jg9...eq1d
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/m6ms...ike8
Layout da placa (pdf): https://app.box.com/s/pbp9...5p6g
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/j17t...bxzp5
Ficheiros Gerber: https://app.box.com/s/a5zi...fgud
Guia de furação: https://app.box.com/s/qlm8...68dt
Firmware (com instruções): https://app.box.com/s/m4va...k3q1
Drivers (Windows): https://app.box.com/s/sigl...ycnk
Software (Linux): https://app.box.com/s/4kq4...4ulb
Notas do projecto: https://app.box.com/s/u2h0...xss8
Pasta contendo todos os ficheiros: https://app.box.com/s/yotc...4md2
Projecto no OSH Park: https://oshpark.com/shared_projects/kZXIvwMI
CP2130_SDK: http://www.silabs.com/.../CP2130_SDK_Windows_XP_Vista.exe

Sem comentários:

Enviar um comentário