26/03/2016

Placa de desenvolvimento "Prop"

Prop é uma placa de desenvolvimento baseada no Propeller P8X32A, um micro-controlador de 32 bits da Parallax que contém oito núcleos de processamento (vulgo cores ou, neste caso em particular, cogs). Para além desse elemento central, esta placa incorpora uma memória EEPROM de 32KB para aplicações e uma interface UART para programação e comunicação via USB. Tendo uma base de tempo de 8MHz, a frequência de trabalho do P8X32A pode ir até 128MHz em regime de overclock, se bem que a frequência máxima recomendada para uma operação estável é de 64MHz. Em suma, a Prop é uma placa de desenvolvimento extremamente capaz e versátil, podendo até ser empregue em aplicações de computação.

Placa de desenvolvimento "Prop".

O circuito é algo complexo, dado o número de componentes que integra. Como foi referido, a peça central é o Propeller P8X32A da Parallax (IC4). A sua base de tempo deriva de X1, um cristal de 8MHz. Esta base de tempo pode ser multiplicada por uma PLL interna ao micro-controlador, por forma a obter frequências de trabalho de 8, 16, 32, 64 e 128MHz. Em alternativa, o P8X32A pode ser configurado para usar uma das suas bases de tempo internas, de 20KHz e 12MHz.

O P8X32A comunica com o mundo exterior por meio de um conversor USB-UART, o FT230X (IC3). Tal conversor não só torna possível a programação da placa por USB, como também possibilita a interacção com um qualquer programa que lá esteja a correr (via porta COM virtual). Por outro lado, também habilita a alimentação da placa, detalhe que irei explicar mais adiante. O armazenamento do código a executar é feito por uma memória EEPROM 24LC256 dedicada ao micro-controlador.

A alimentação da placa pode ser feita por USB, através do regulador IC2, ou utilizando os pinos de alimentação "+3V3" e "GND". Aliás, o esquema de alimentação implementado é sui generis, por permitir as duas alimentações em simultâneo sem necessidade de configuração. Isto deve se ao tipo de regulador utilizado, o TPS70933, que pode funcionar em paralelo com outras fontes de tensão. Este regulador é habilitado pelo FT230X (por intermédio de Q1) para que a Prop cumpra com as especificações USB quanto ao consumo de corrente em modo de suspensão. Adicionalmente, quando alimentada por USB, a placa pode alimentar circuitos externos utilizando os pinos acima mencionados.

Este projecto emprega algumas protecções contra sobre-tensões, corrente excessiva e inversões de polaridade na alimentação. A salientar, o dispositivo de protecção PolyZen em IC1 protege todos os componentes alimentados directamente por USB, ao passo que D1 a par com F1 protege os demais. O fusível F1 também limita a corrente quando a placa está a alimentar um circuito externo, de modo a que a corrente fornecida por USB nunca exceda a capacidade do porto anfitrião. Note que, ao contrário dos pinos de alimentação, os pinos de E/S não estão protegidos.

Lista de componentes:
C1/3 – Condensador cerâmico multi-camada 1µF 10V (0805);
C2 – Condensador cerâmico multi-camada 2,2µF 10V (0805);
C4-9/12 – Condensador cerâmico multi-camada 100nF 10V (0805);
C10/11 – Condensador cerâmico multi-camada 47pF 10V (0805);
D1 – Díodo Zener 1SMA5915BT3G;
F1 – Fusível PPTC 1210L010;
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 24LC256 (24LC256-I/MS);
J1 – Conector USB Hirose ZX62D-B-5PA8;
J2-7 – Conector header macho de 5 pinos;
Q1 – Transístor MOSFET BSS138;
R1/2 – Resistor de filme espesso 27Ω±5% 1/8W (0805);
R3/4 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
S1 – Interruptor pulsador C&K PTS525SMG15J (PTS525SMG15JSMTR2LFS);
X1 – Cristal CTS 406C35E08M00000.


O layout está disponível nos formatos brd (Eagle 7.4.0) e Gerber. Como de costume, recomendo que a encomenda da placa seja feita através do OSH Park, visto que o layout foi concebido em concordância com as especificações deste serviço. Pode usar outro serviço de fabrico, desde que o mesmo suporte layouts de quatro camadas com furação mínima de 0,5mm ou menos. Tanto melhor, se as especificações de stack-up e os materiais forem idênticos.

Relativamente à montagem, esta requer equipamento mais especializado, assim como alguma experiência. A montagem dos componentes SMD deve ser feita por refusão com ar quente (o uso de forno é desaconselhado), soldando primeiro os componentes da face superior e depois os da face inferior. É importante advertir que, e em especial aquando a soldadura dos últimos, deve aplicar o calor estritamente necessário e no espaço de tempo mais curto possível. Soldados todos os componentes SMD, poderá então soldar os componentes through-hole pelo processo usual.

Após a montagem da placa, é necessário programar o respectivo firmware para que a mesma funcione. Por defeito, o FT230X não traz as configurações adequadas. Nesse sentido, recomendo a sua programação utilizando o FT_Prog, uma ferramenta de configuração da FTDI. O ficheiro de configuração necessário encontra-se dentro da pasta "Firmware" que está dentro da pasta do projecto. Aconselho a leitura das instruções, na referida pasta.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/brpb...p0xb
Diagrama do circuito (Eagle 7.4.0 sch): http://app.box.com/s/vh5z...heli
Layout da placa (pdf): http://app.box.com/s/1fd8...99kk
Layout da placa (Eagle 7.4.0 brd): http://app.box.com/s/1gab...zuzj
Ficheiros Gerber: http://app.box.com/s/wa3e...5p0y
Firmware (com instruções): http://app.box.com/s/vxgc...igrp
Notas do projecto: http://app.box.com/s/3acn...5tao
Pasta contendo todos os ficheiros: http://app.box.com/s/g0z9...uxxf
Projecto no OSH Park: http://oshpark.com/shared_projects/lKDVmu2m
FT_Prog: http://www.ftdichip.com/Support/Utilities.htm#FT_PROG