23/10/2016

Placa de teste PTUSB2

À semelhança da PTUSB1 (veja o post de 24 de Setembro), trata-se de uma placa desenvolvida para testes no âmbito do protocolo USB. Como a sua predecessora, possibilita a medição da corrente de consumo e o controlo da tensão de alimentação (Vbus) para o dispositivo em teste. Contudo, esta nova placa não só suporta as versões 2.0 e 1.1 do padrão USB, como também suporta a nova versão 3.1 "Gen 2" com velocidades de transferência até 10Gb/s. Nesse aspecto, convêm referir que o funcionamento a 10Gb/s foi confirmado sem perdas assinaláveis.

Placa de teste PTUSB2.

Placa PTUSB2 a ser empregue para medir o consumo de um disco externo.

O circuito é bastante simples. Dois conectores USB, um de tipo A e outro de tipo B, estão interligados através de três pares diferenciais, sendo dois deles usados para a comunicação em "SuperSpeed" e o restante reservado para USB 2.0. Os conectores partilham também a mesma massa e chassis. Contudo, a linha de Vbus encontra-se interrompida de um conector para o outro, por forma a permitir a interrupção ou medição de corrente, assim como o controle da tensão que alimenta o dispositivo. Convém salientar que, em concordância com a especificação da norma USB, todos os pares diferenciais têm a sua impedância controlada a 90Ω.

Lista de componentes:
J1 – Conector USB Amphenol GSB3211311WEU;
J2/4 – Borne vermelho;
J3/5 – Borne preto;
J6 – Conector USB Amphenol GSB311131HR.


Novamente, o layout da placa está disponível nos formatos brd (Eagle 7.6.0) e Gerber. Recomendo que a encomenda da placa seja feita via OSH Park, visto que o layout foi desenhado tendo as especificações deste serviço em mente. Caso deseje utilizar outro serviço, verifique se o mesmo suporta layouts de quatro camadas, furos a partir de 0,5mm, e se o stackup e materiais são iguais. Tal critério é determinante para a impedância do pares diferenciais. A montagem da placa não requer ferramentas especiais, bastando para isso um simples ferro de soldar de 25W e um jogo de chaves de bocas ou de lunetas.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/cswf...jyxu
Diagrama do circuito (Eagle 7.6.0 sch): http://app.box.com/s/vpcv...vbvc
Layout da placa (pdf): http://app.box.com/s/nkee...p7bp
Layout da placa (Eagle 7.6.0 brd): http://app.box.com/s/h3sf...bhzd
Ficheiros Gerber: http://app.box.com/s/zr20...xwdb
Notas do projecto: http://app.box.com/s/j7ax...t26w
Pasta contendo todos os ficheiros: http://app.box.com/s/sz0c...kkp7
Projecto no OSH Park: http://oshpark.com/shared_projects/GzwxAlCj

05/10/2016

Programa de teste para a placa de desenvolvimento "Prop II"

Este programa é praticamente idêntico ao programa de teste apresentado no post de 24 de Julho, desenvolvido para a placa Prop. O seu propósito é o mesmo: testar os pinos da placa de modo a verificar a existência de curto-circuitos. O utilizador introduz o número do pino a comutar, e o programa prontamente indica se a operação foi bem sucedida ou se houve um erro.

Programa de teste a correr no terminal do SimpleIDE.

Como anteriormente, é necessário utilizar o SimpleIDE para correr o teste. Em primeiro lugar, deve transferir o ficheiro "prop-ii.cfg" para a pasta "propeller-load" da sua instalação. Isso permitirá aplicar o perfil de hardware adequado à placa Prop II. Também deverá transferir o ficheiro do projecto e o código C para a pasta dos projectos do SimpleIDE. Por fim, com a placa ligada ao computador, basta abrir o projecto com o nome "Prop_II_teste.side" e escolher a opção "Run with Terminal" (tecla F8) para executar o programa.

Links importantes:
Projecto SimpleIDE: http://app.box.com/s/xyg6...3b8m
Programa em C: http://app.box.com/s/zmub...ovzr
Perfil de hardware: http://app.box.com/s/31qc...6x93
Pasta contendo todos os ficheiros: http://app.box.com/s/9nrq...816o

24/09/2016

Placa de teste PTUSB1

Hoje apresento uma placa criada especificamente para testes dentro do protocolo USB. A PTUSB1 foi desenhada com o intuito de permitir a medição da corrente de consumo e também o controlo da tensão de alimentação (vulgo Vbus) para o dispositivo a testar. Suporta as versões 2.0 e 1.1 do padrão USB. Aliás, convêm salientar que o funcionamento da placa foi comprovado com vários dispositivos sem se verificarem quaisquer perdas de desempenho.

Placa de teste PTUSB1.

Placa PTUSB1 a ser utilizada para medir o consumo de um dispositivo USB.

O circuito é extremamente simples. Na sua essência, esta placa é constituída por dois conectores USB, um do tipo A e o outro do tipo B, ligados através de um par diferencial e com a mesma massa e chassis. A linha de Vbus, que é a responsável pela alimentação do dispositivo por parte do anfitrião, encontra-se interrompida de modo a permitir a medição de corrente. Tal configuração também permite a injecção de tensão para o dispositivo independentemente da tensão disponível no porto anfitrião. É de frisar que o par diferencial tem a sua impedância controlada a 90Ω, de acordo com a especificação da norma USB.

Lista de componentes:
J1 – Conector USB Molex 67068-8001;
J2/4 – Borne vermelho;
J3/5 – Borne preto;
J6 – Conector USB Molex 67643-2911.


O layout da placa está disponível nos formatos brd (Eagle 7.6.0) e Gerber. Recomendo que a encomenda da placa seja feita via OSH Park, dado que o layout foi desenhado tendo em conta as especificações deste serviço. Caso deseje utilizar outro serviço, verifique se o mesmo suporta layouts de quatro camadas, furos a partir de 0,5mm, e se o stackup e materiais são os mesmos. Este último critério é determinante para a impedância do par diferencial. A montagem da placa não requer instruções muito especificas, bastando para tal um ferro de soldar de 25W e um jogo de chaves de bocas ou de lunetas.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/0na6...bfgt
Diagrama do circuito (Eagle 7.6.0 sch): http://app.box.com/s/bzmd...xp15
Layout da placa (pdf): http://app.box.com/s/iaoh...0lil
Layout da placa (Eagle 7.6.0 brd): http://app.box.com/s/jdfw...ie0z
Ficheiros Gerber: http://app.box.com/s/6ow5...tew7
Notas do projecto: http://app.box.com/s/1k6t...a8xv
Pasta contendo todos os ficheiros: http://app.box.com/s/gn0z...s5d1
Projecto no OSH Park: http://oshpark.com/shared_projects/EwXI88CL

11/09/2016

Placa de desenvolvimento "Prop II"

Esta é uma nova placa de desenvolvimento baseada no P8X32A, à semelhança da placa Prop apresentada em posts anteriores (26 de Março e 2 de Julho). De facto, esta nova placa é uma evolução da sua predecessora, mas com características de tal modo distintas que foi necessário criar um novo projecto com outro nome. Em especial, foi escolhido um cristal de 6MHz para fornecer a base de tempo, o que possibilita uma operação perfeitamente estável em regime de overclock (a 96MHz), e isto utilizando a tensão nominal de 3,3V. A Prop II também conta com 64KB de memória EEPROM e um LED para indicar a presença de alimentação.

Placa de desenvolvimento "Prop II".

Placa Prop II em funcionamento. O LED indica que a placa está a ser alimentada.

O circuito é muito semelhante ao da última revisão da placa Prop, pelo que seria desnecessário detalhar muito sobre o funcionamento do mesmo. No entanto, é importante mencionar as particularidades deste projecto. A sublinhar, como a base de tempo dada pelo cristal (X1) é agora de 6MHz, as frequências de trabalho após multiplicação com recurso à PLL interna do micro-controlador também serão diferentes: é possível pois obter frequências de 6, 12, 24, 48 e 96MHz. A memória EEPROM em IC5 é de um tipo diferente e comporta 64KB, o dobro da memória presente na placa original. Por último, o LED em D3 indica a presença de 3,3V na placa, servindo R2 para limitar a corrente que o atravessa.

Lista de componentes:
C1/2/4 – Condensador cerâmico multi-camada 1µF 10V (0805);
C3 – Condensador cerâmico multi-camada 10nF 10V (0805);
C5-10/13 – Condensador cerâmico multi-camada 100nF 10V (0805);
C11/12 – Condensador cerâmico multi-camada 47pF 10V (0805);
D1 – Díodo Schottky FYV0704S;
D2 – Díodo Zener BZX84-B3V3;
D3 – LED Kingbright APT2012EC (ou KPT-2012EC);
F1 – Fusível PPTC 1210L020;
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2 – Regulador de tensão TPS70933 (TPS70933DBV);
IC3 – Conversor USB-UART FT230X (FT230XQ);
IC4 – Micro-controlador P8X32A (P8X32A-Q44);
IC5 – Memória EEPROM M24512 (M24512-DFMC6TP);
J1 – Conector USB Hirose ZX62D-B-5PA8;
J2-7 – Conector header macho de 5 pinos;
Q1 – Transístor MOSFET BSS138;
Q2 – Tirístor SCR S4X8BS;
R1 – Resistor de filme espesso 150Ω±5% 1/8W (0805);
R2 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R3/4 – Resistor de filme espesso 27Ω±5% 1/8W (0805);
R5/6 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
S1 – Interruptor pulsador C&K PTS525SMG15J (PTS525SMG15JSMTR2LFS);
X1 – Cristal Abracon ABMM-6.000MHz-B2-T.


Como em projectos anteriores, o layout da placa está disponível nos formatos brd (Eagle 7.6.0) e Gerber. A encomenda da placa deve ser feita via OSH Park, visto que este serviço suporta todos os requisitos do layout. Pode sempre usar outro serviço de fabrico, se preferir, mas tenha em atenção que o mesmo deve suportar layouts de quatro camadas e furação a partir de 0,5mm.

A montagem da placa requer algum equipamento específico. Nomeadamente, a soldadura dos componentes SMD deve ser feita por refusão com ar quente. Note que a memória em IC5 requer cuidados redobrados na aplicação da pasta de solda com stencil, visto que o encapsulamento é do tipo DFN com espaçamento entre pinos muito reduzido. Os restantes componentes, sendo through-hole, podem ser soldados com um simples ferro de soldar. Para tal, um ferro de 25W é o suficiente.

Por último, após a montagem é necessário configurar o FT230X de modo a que a placa opere correctamente. Deste modo, e mais uma vez, recomendo a aplicação FT_Prog. O ficheiro de configuração necessário encontra-se dentro da pasta "Firmware", por sua vez localizada na pasta do projecto. Aconselho que leia as instruções antes de proceder à configuração.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/yj17...7022
Diagrama do circuito (Eagle 7.6.0 sch): http://app.box.com/s/erml...5toa
Layout da placa (pdf): http://app.box.com/s/jg77...q5uh
Layout da placa (Eagle 7.6.0 brd): http://app.box.com/s/o14k...l690
Ficheiros Gerber: http://app.box.com/s/umvk...vpwn
Firmware (com instruções): http://app.box.com/s/4rg7...vl67
Notas do projecto: http://app.box.com/s/muiv...zw8o
Pasta contendo todos os ficheiros: http://app.box.com/s/wi1o...n02g
Projecto no OSH Park: http://oshpark.com/shared_projects/VmzrduRz
FT_Prog: http://www.ftdichip.com/Support/Utilities.htm#FT_PROG

02/09/2016

Propeller P8X32A

O Propeller P8X32A é um micro-controlador de 32 bits da Parallax que integra oito núcleos de processamento (vulgo cogs). Este micro-controlador foi concebido por Chip Gracey, co-fundador da Parallax, que também criou as linguagens PASM (de Propeller Assembly) e SPIN para o mesmo. Foi introduzido no mercado em 2006, sendo fabricado com tecnologia CMOS de 350nm.

Para além dos 8 núcleos de processamento, o P8X32A conta com 32KB de memória RAM partilhada e 2KB de memória RAM dedicada a cada núcleo, o que perfaz um total de 48KB. Também tem 32KB de memória ROM para o mapa de caracteres, para as tabelas logarítmica, anti-logarítmica e de seno, para o bootloader e para o interpretador de SPIN. Para além do mais, pode operar até 80Mz sem overclock, o que corresponde a um processamento de 20MIPS por núcleo.

Micro-controladores P8X32A em vários encapsulamentos. O P8X32A está disponível em DIP de 40 pinos, e em QFN e QFP de 44 pinos.

Como é evidente na fotografia acima, o P8X32A está disponível em diversos encapsulamentos: DIP de 40 pinos, QFN de 44 pinos e QFP, também de 44 pinos. Em especial, a versão em DIP é muito útil em prototipagem, uma vez que pode ser facilmente montada numa placa de ensaio. As versões em QFP e QFN podem ser empregues em projectos finais que requeiram alguma miniaturização.

Em síntese, o P8X32A é um micro-controlador bastante potente. Adicionalmente, é muito acessível e fácil de programar, dado que existem várias aplicações de desenvolvimento, para além de haver documentação e suporte na Internet. Pode por isso ser facilmente implementado em projectos de automação, robótica, aquisição de dados e outras aplicações que envolvam computação.

16/08/2016

Shunt resistivo SR10S3A

O SR10S3A não é mais do que um resistor de precisão, especialmente adaptado para medição de corrente pelo método dos quatro pontos. Como tal, este dispositivo é munido de quatro bornes, sendo dois destinados à passagem da corrente a medir e dois para a medição da queda de tensão. O conceito subjacente ao referido método baseia-se na lei de Ohm: tendo um resistor de valor fixo, pela medição da queda de tensão aos seus terminais é possível calcular a corrente que o atravessa. Neste caso em particular, o valor do resistor é de 0,1Ω (o que se traduz numa condutância de 10S). É importante sublinhar que a corrente máxima suportada é de 3,8A.

Shunt resistivo SR10S3A.

O SR10S3A em uso com uma carga de 56Ω. A tensão está ajustada para cerca de 5V e, por conseguinte, a corrente medida é de 89mA.

O circuito é extremamente simples. O elemento central, como já foi mencionado, é um resistor de 0,1Ω com tolerância de 1%. Este resistor está dimensionado para suportar correntes até 3,8A, dissipando assim 1,5W no pior caso. Em cada terminal estão ligados dois bornes: um para corrente e outro para medição em tensão. Deste modo, é possível fazer passar corrente através do resistor e medir em simultâneo a queda de tensão resultante.

Lista de componentes:
J1-4 – Borne vermelho;
R1 – Resistor bobinado 0,1Ω±1% 3W.


O layout da placa está disponível nos formatos brd (Eagle 7.6.0) e Gerber. A placa pode ser encomendada através do OSH Park ou utilizando qualquer outro serviço de fabrico. Tratando-se de um projecto muito básico, é suficiente empregar um ferro de soldar de 25W aquando a soldadura do resistor. A montagem dos bornes requer somente uma chave de bocas ou de lunetas.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/xpna...0n2t
Diagrama do circuito (Eagle 7.6.0 sch): http://app.box.com/s/y320...1pvu
Layout da placa (pdf): http://app.box.com/s/dnqs...7rx2
Layout da placa (Eagle 7.6.0 brd): http://app.box.com/s/ysjz...gh7v
Ficheiros Gerber: http://app.box.com/s/n80u...z382
Notas do projecto: http://app.box.com/s/e8i8...bofd
Pasta contendo todos os ficheiros: http://app.box.com/s/vwh7...9zy3
Projecto no OSH Park: http://oshpark.com/shared_projects/ymsVScPA

07/08/2016

Imagens repostas

No post de 25 de Julho reportei um problema que impedia o carregamento das imagens do blogue, dado que as respectivas referências ficaram inválidas. Entretanto todos os posta contendo imagens foram revistos, e a situação foi corrigida. Espero, pois, que este inconveniente não tenha prejudicado a leitura do blogue.

02/08/2016

Programa de demonstração para a placa de desenvolvimento "Prop"

Este programa de demonstração foi criado com o intuito de avaliar o desempenho da placa Prop. Como tal, tira partido dos oito núcleos de processamento do micro-controlador P8X32A para calcular números primos. Basta ao utilizador introduzir os valores limite, e o programa calcula todos os números primos entre esses valores. Como é muito intensivo em termos de processamento, o presente programa ilustra bem as capacidades do P8X32A e, por arrastamento, da Prop.

De modo a utilizar o programa, deverá carregá-lo com o SimpleIDE (veja o post de 12 de Junho). Caso não o tenha feito anteriormente, recomendo que transfira primeiro o ficheiro "prop.cfg" para a pasta "propeller-load" da sua instalação. Isso permitirá aplicar o perfil de hardware adequado à placa. É necessário transferir também o ficheiro do projecto e o código C para a pasta dos projectos do SimpleIDE. Por último, com a placa ligada ao computador, abra o projecto "Prop_primos.side" e escolha a opção "Run with Terminal" (tecla F8).

Programa de demonstração a correr no terminal do SimpleIDE.

Contudo, fica uma ressalva: o terminal do SimpleIDE é um tanto ou quanto lento, e por isso pode haver paragens aparentes durante a execução com omissão de linhas de resultados. Uma maneira alternativa consiste em programar a EEPROM da placa pela opção "Load EEPROM & Run" (tecla F11). Desta forma é possível executar o programa posteriormente e sem recurso ao terminal do SimpleIDE, utilizando outros programas de comunicação série, como por exemplo o PuTTY.

Programa a correr no PuTTY. O SimpleIDE é visível em segundo plano.

À semelhança do programa de teste, este programa pode ser usado noutras placas baseadas no P8X32A. Tendo o cuidado prévio de seleccionar o perfil de hardware adequado à placa em questão, aplicam-se os mesmos procedimentos.

Links importantes:
Projecto SimpleIDE: http://app.box.com/s/821s...ff6s
Programa em C: http://app.box.com/s/7r63...wva0
Perfil de hardware: http://app.box.com/s/3nav...a87c
Pasta contendo todos os ficheiros: http://app.box.com/s/8d7t...wd8f

25/07/2016

Imagens com referências inválidas

Hoje venho anunciar um problema relacionado com as imagens do blogue. Como poderá ter constatado, a maioria das imagens não carrega. Esse problema foi causado por uma modificação nas propriedades de partilha da pasta onde estão armazenadas as imagens, dentro do Picasa. Embora tenha revertido a modificação anterior, a quase totalidade das imagens ficou com referências inválidas.

Para resolver esta questão, terei que repor as imagens post a post, o que irá levar alguns dias. Posto isto, apresento desde já as minhas desculpas por este incómodo. Tentarei ser o mais célere possível.

24/07/2016

Programa de teste para a placa de desenvolvimento "Prop"

Como o título sugere, trata-se de um programa para verificar o funcionamento da placa Prop. Basicamente, este programa permite testar individualmente os pinos da placa. Para tal basta introduzir o número do pino a comutar, e o programa logo indica se a operação foi bem sucedida ou não. Desta forma, é possível detectar a existência de curto-circuitos, sejam estes à massa, à alimentação ou entre pinos.

Programa de teste a correr no terminal do SimpleIDE.

Para correr o teste é necessário utilizar o SimpleIDE (veja o post de 12 de Junho para mais detalhes). Antes de mais, deve transferir o ficheiro "prop.cfg" para dentro da pasta "propeller-load", localizada na pasta da aplicação. Isso permitirá utilizar o perfil de hardware correcto para esta placa. Deverá também transferir o ficheiro do projecto e o código C para dentro da pasta de projectos do SimpleIDE. Depois, tendo a placa ligada ao computador, basta abrir o projecto com o nome de ficheiro "Prop_teste.side" e escolher a opção "Run with Terminal" (tecla F8) para executar o programa.

Embora tenha sido concebido para a Prop, este programa pode ser empregue para testar outras placas de desenvolvimento baseadas no P8X32A. Após seleccionar o perfil de hardware adequado à placa em questão, os passos para a testar são exactamente os mesmos. Note que, se não seleccionar de antemão o perfil adequado, a placa poderá não funcionar correctamente.

Links importantes:
Projecto SimpleIDE: http://app.box.com/s/62u9...fntv
Programa em C: http://app.box.com/s/gulf...9v6m
Perfil de hardware: http://app.box.com/s/asqz...qmv0
Pasta contendo todos os ficheiros: http://app.box.com/s/0xq3...2xcr