27/11/2021

Aplicação de configuração para o CP2130 da Silicon Labs

Como o título do post sugere, trata-se de uma aplicação específica para configurar a ROM do CP2130, um integrado de interface USB para SPI da Silicon Labs. Esta aplicação permite configurar os mais diversos parâmetros deste integrado, incluindo todos os descritores USB e também as funções e estados dos pinos de entrada e saída. Devo referir que esta aplicação já vai na versão 1.1, que é a mesma que disponibilizo aqui. A versão inicial apresentava alguns problemas, factor que me levou a adiar o lançamento.

Ademais, é sempre importante frisar que esta aplicação veio um pouco tarde, uma vez que a Silicon Labs decidiu descontinuar o CP2130 em 23 de Março, ficando a decisão com efeito a 29 do mesmo mês. Não obstante, e mesmo considerando que o CP2130 já não existe em stock nas grandes distribuidoras, decidi avançar com este projecto.

Versão 1.1 da aplicação de configuração.

A última versão da aplicação pode ser descarregada através dos links abaixo. O primeiro link aponta para o pacote que contém o código-fonte e os scripts de compilação e instalação, sendo este o pacote recomendado para a instalação. Em alternativa, pode optar por transferir a aplicação já compilada sob a forma de AppImage. Contudo convém salientar que, caso escolha o último pacote, deverá criar regras de acesso "udev" para todos os dispositivos da Silicon Labs, ou pelo menos para o CP2130.

Links importantes:
Aplicação de configuração: https://app.box.com/s/z2dp...2pe2
Aplicação de configuração (AppImage): https://app.box.com/s/71t3...q4rl

19/10/2021

Aplicação gráfica melhorada para o interruptor de teste ITUSB2

No mesmo tema do post anterior, disponibilizo a versão mais recente da aplicação gráfica para o interruptor de teste ITUSB2. À semelhança do que acontece com a aplicação gráfica para o ITUSB1, a versão 1.2 apresenta melhorias significativas. A salientar, esta nova versão detecta correctamente a desconexão de um dado instrumento de teste, apresentando a mensagem adequada em vez de uma longa lista de erros.

Versão 1.2 da aplicação gráfica, com a caixa de diálogo a indicar que o instrumento foi desligado.

A aplicação está disponível através dos links abaixo. O primeiro link aponta para o pacote contendo o código-fonte e os scripts de compilação e instalação, sendo que este constitui o método recomendado. Como alternativa, está disponível uma AppImage através do segundo link, com vista a facultar a aplicação num formado já pré-compilado e portátil. Todavia, o uso da aplicação neste formato não dispensa a criação de uma regra de acesso “udev” própria para o ITUSB2.

Links importantes:
Aplicação gráfica: https://app.box.com/s/y46e...fqfj
Aplicação gráfica (AppImage): https://app.box.com/s/mwrr...yv1g

18/09/2021

Aplicação gráfica melhorada para o interruptor de teste ITUSB1

Hoje disponibilizo uma nova versão da aplicação gráfica para o interruptor de teste ITUSB1. A versão 3.2 implementa melhorias importantes, em termos de estabilidade de comunicação USB com o instrumento de teste. Mais importante ainda, esta nova versão é capaz de detectar correctamente quando um instrumento é desligado, apresentando uma mensagem de erro condizente e bastante descritiva, ao invés de apresentar uma longa lista de erros com descrições demasiado técnicas.

Versão 3.2 da aplicação gráfica, com a caixa de diálogo a indicar que o instrumento foi desligado.

A aplicação pode ser descarregada por via dos links abaixo. O primeiro link aponta para o pacote que contém o código-fonte e os scripts de compilação e instalação, constituindo este o método recomendado. Em alternativa, disponibilizo a aplicação já compilada sob a forma de AppImage, um formato executável e portátil para Linux. Contudo convém salientar que, caso opte pelo último método, deverá criar uma regra de acesso "udev" específica para o ITUSB1.

Links importantes:
Aplicação gráfica: https://app.box.com/s/ke0q...xh83
Aplicação gráfica (AppImage): https://app.box.com/s/2f6z...erjs

29/08/2021

Bloguetrónica no GitLab

No post de 21 de Maio anunciei a presença do blogue no GitHub. Na mesma temática, hoje anuncio que o Bloguetrónica assinala também a sua presença no GitLab. Na minha opinião, esta plataforma constitui uma alternativa melhor, pois presta um serviço mais inovador e refinado. Ainda assim, planeio manter a conta no GitHub e, para já, a conta no GitLab servirá apenas para espelhar o conteúdo da primeira. A página da nova conta está disponível em https://gitlab.com/bloguetronica.

18/07/2021

Software corrigido para o interruptor de teste ITUSB2

Na mesma temática do post de 10 Junho, disponibilizo o software mais recente para o interruptor de teste ITUSB2. À semelhança do software para o ITUSB1, foram feitas diversas melhorias, tanto nos comandos de controlo como na aplicação gráfica. Tais melhorias visaram sobretudo minimizar um problema de interoperabilidade relacionado com o CP2130, conforme descrevi no post acima mencionado. Foi dado especial enfoque ao código-fonte da aplicação gráfica, que está agora mais compartimentado.

Secção do código-fonte da aplicação gráfica a ser exibido com o Qt Creator.

Os pacotes contendo os comandos de controlo e a aplicação gráfica estão disponíveis através dos links abaixo. A aplicação gráfica também está disponível como AppImage, um formato executável para Linux que é portátil e não precisa de qualquer instalação. Porém, caso prefira utilizar a aplicação nesse formato, deverá criar uma regra de acesso "udev" para o ITUSB2.

Links importantes:
Comandos de controlo: https://app.box.com/s/ipvg...4kj8
Aplicação gráfica: https://app.box.com/s/i1yc...1x3r
Aplicação gráfica (AppImage): https://app.box.com/s/810w...srbl

07/07/2021

Brevemente: Amplificador de potência OpRF II

Trata-se de mais um amplificador de potência para aplicações de radiofrequência, cujo projecto será lançado em breve. Este novo amplificador apresenta uma resposta em frequência entre 16KHz e 96MHz, e é capaz de debitar até pouco mais de 1W, de acordo com os medições feitas em testes preliminares.

Placa do amplificador de potência OpRF II.

O projecto já está quase validado, mas ainda falta fazer alguns testes. No entanto, os resultados são bastante prometedores. Posto isto, espero lançar o projecto dentro de poucos meses.

10/06/2021

Software corrigido para o interruptor de teste ITUSB1

Já estão disponíveis novos pacotes de software contendo as versões mais recentes dos comandos de controlo e da aplicação gráfica. Tanto os comandos de controlo como a aplicação gráfica foram alvo de melhorias no sentido de minimizar um possível problema relacionado com o CP2130, que é o interface USB empregue no interruptor de teste ITUSB1. Basicamente, foram implementadas medidas para prevenir o bloqueio do CP2130, aquando a operação de amostragem do valor dado pelo ADC que faz a medição da corrente. Para além do mais, o código-fonte da aplicação gráfica foi substancialmente compartimentado e melhorado.

Parte do código-fonte da aplicação gráfica, a ser visualizado através do Qt Creator.

Os pacotes em causa podem ser descarregados através dos links abaixo. Note que a aplicação gráfica também está disponível como AppImage, um formato executável para Linux que não requer instalação. No entanto, para trabalhar com a AppImage, deverá criar uma regra de acesso "udev" específica para o ITUSB1.

Links importantes:
Comandos de controlo: https://app.box.com/s/91kh...hgus
Aplicação gráfica: https://app.box.com/s/m7kc...zmfi
Aplicação gráfica (AppImage): https://app.box.com/s/iza4...qj8r

21/05/2021

Bloguetrónica no GitHub

O Bloguetrónica tem agora uma conta no GitHub. Esta conta, criada a 25 de Março, já inclui software respeitante a diversos projectos deste blogue. Porém, devo alertar que os pacotes de software oficiais estão sempre disponíveis no repositório de ficheiros. Para visitar a página da conta, vá a https://github.com/bloguetronica.

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

28/03/2021

Bloguetrónica no Dailymotion

O blogue conta com mais um canal, desta vez no Dailymotion. Esta plataforma constitui uma alternativa sólida ao YouTube, com a conveniência de ter um suporte técnico que realmente funciona. Pode visitar o novo canal em https://www.dailymotion.com/bloguetronica.