24/09/16

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

11/09/16

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://www.box.com/s/yj17...7022
Diagrama do circuito (Eagle 7.6.0 sch): http://www.box.com/s/erml...5toa
Layout da placa (pdf): http://www.box.com/s/jg77...q5uh
Layout da placa (Eagle 7.6.0 brd): http://www.box.com/s/o14k...l690
Ficheiros Gerber: http://www.box.com/s/umvk...vpwn
Firmware (com instruções): http://www.box.com/s/4rg7...vl67
Notas do projecto: http://www.box.com/s/muiv...zw8o
Pasta contendo todos os ficheiros: http://www.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/16

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.