26/05/2015

Bibliotecas Eagle adicionais

Encontram-se disponíveis bibliotecas adicionais para o Eagle no repositório de ficheiros. Para aceder à directoria respectiva, vá a http://app.box.com/s/z31pa5xpdcqf77vwf8o7.

19/05/2015

Módulo Si7021

Hoje apresento um pequeno módulo baseado no integrado Si7021, um sensor de temperatura e humidade da Silicon Labs. Sendo compatível com qualquer placa de ensaio, este modulo torna possível a prototipagem de circuitos com o referido sensor. Em adição, a correspondência entre os pinos do módulo e os pinos do integrado é directa.

Módulo Si7021.

O circuito é extremamente simples. IC1, o sensor de temperatura e humidade, é o elemento central deste módulo. Por sua vez, C1 é um condensador de desacoplamento que serve para filtrar o ruído na alimentação. Convêm sublinhar que, apesar de o integrado comunicar por I2C, este módulo não inclui quaisquer resistores de pull-up, pelo que será sempre necessário adicioná-los externamente.

Lista de componentes:
C1 – Condensador cerâmico multi-camada 100nF 10V (0805);
IC1 – Sensor de temperatura e humidade Si7021 (Si7021-A10-GM1);
J1/2 – Conector header macho de 3 pinos.


O layout da placa está disponível nos formatos brd (Eagle 7.2.0) e Gerber. Quanto à montagem dos componentes, embora a Silicon Labs não recomende a soldadura deste sensor por refusão com ar quente, este método pode ser utilizado desde que o ar seja aplicado na face inferior da placa (estando o sensor posicionado na face superior). Nunca aplique o ar quente directamente ou na proximidade do sensor, sob pena de danificar o mesmo.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/z8c4...25r2
Diagrama do circuito (Eagle 7.2.0 sch): http://app.box.com/s/wwyy...qowr
Layout da placa (Eagle 7.2.0 brd): http://app.box.com/s/5w1y...2uxz
Ficheiros Gerber: http://app.box.com/s/lzel...5pg3
Notas do projecto (contém indicações importantes): http://app.box.com/s/qfww...kqd6
Pasta contendo todos os ficheiros: http://app.box.com/s/w25c...hdv7
Projecto no OSH Park: http://oshpark.com/shared_projects/7vhM7yyC

17/03/2015

Circuito regulador de tensão CRT3350

O CR3350 é um circuito regulador de tensão concebido para alimentar circuitos em placa de ensaio. Compacto e eficiente, é capaz de fornecer 3,3V e 5V em simultâneo, podendo ser alimentado com qualquer tensão entre 8 e 18V. Adicionalmente, as tensões de saída podem ser definidas de forma independente para cada barramento da placa de ensaio. Por conseguinte, este circuito regulador ajusta-se à generalidade das situações que envolvem prototipagem de circuitos digitais.

Parâmetros de funcionamento:
– V d. mín. = 7,14V
– V d. máx. = 18,64V
– I L max. (3,3V) = 1A
– I L max. (5,0V) = 1A


Características eléctricas:
– I d. (V d. = 8V, I L. = 0A) = 33,23mA
– I d. (V d. = 18V, I L. = 0A) = 20,32mA
– P (V d. = 8V, I L = 0A) = 265,8mW
– P (V d. = 18V, I L = 0A) = 365,8W


Circuito regulador de tensão CRT3350.

O CRT3350 a ser testado em carga.

O circuito é bastante simples. A regulação das tensões é feita por dois reguladores comutados da Recom: um módulo R-783.3-1.0 para a tensão de 3,3V e um módulo R-785.5-1.0, da mesma série, para os 5V. Todavia, apesar dos reguladores serem comutados, o circuito envolvente não é diferente do que se vê com um típico regulador linear. Assim sendo, convém apenas assinalar a presença de C1, C2 e C3, que são condensadores de desacoplamento cuja função é filtrar o ruído à entrada e à saída dos reguladores.

As medidas de protecção empregues também não são novas. O díodo D1 salvaguarda todo o circuito em caso de polaridade invertida na alimentação. Por sua vez, D2 e D4 protegem os respectivos reguladores contra inversões de corrente. Em último lugar, os díodos D6 e D7 impedem a propagação de picos de tensão originados por cargas indutivas.

Lista de componentes:
C1 – Condensador electrolítico 220µF 25V;
C2 – Condensador electrolítico 10µF 6,3V;
C3 – Condensador electrolítico 10µF 10V;
D1 – Díodo rectificador 1N5400;
D2/4 – Díodo rectificador 1N4001;
D3 – LED laranja;
D5 – LED vermelho;
D6/7 – Díodo de comutação rápida 1N4150;
IC1 – Regulador de tensão R-783.3-1.0;
IC1 – Regulador de tensão R-785.0-1.0;
J1 – Receptáculo de alimentação 5,5mm x 2,1mm;
J2/3 – Conector header macho de 2 pinos;
JP1/2 – Conector header macho de 3 pinos (com shunt);
R1 – Resistor de carvão 82Ω±5% 1/8W;
R2 – Resistor de carvão 180Ω±5% 1/8W.


O layout da placa está disponível nos formatos brd (Eagle 7.2.0) e Gerber. Relativamente à montagem do projecto, não são necessárias ferramentas especiais, bastando para tal um simples ferro de soldar de 25W e um par de chaves de bocas ou de lunetas.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/tq9u...3jkp
Diagrama do circuito (Eagle 7.2.0 sch): http://app.box.com/s/0evj...fafu
Layout da placa (Eagle 7.2.0 brd): http://app.box.com/s/0i58...sgp2
Ficheiros Gerber: http://app.box.com/s/sfjq...2fdo
Notas do projecto (contém indicações importantes): http://app.box.com/s/h106...86yg
Pasta contendo todos os ficheiros: http://app.box.com/s/ef4g...ezqn
Projecto no OSH Park: http://oshpark.com/shared_projects/k0jwMa6w

17/02/2015

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

Em linha com o tema do post anterior, hoje apresento um programa com finalidade semelhante para a placa PICop II. Essencialmente, este programa testa o funcionamento dos dois circuitos osciladores e a detecção da tensão de host (Vbus) no conector USB. Aparte algumas similaridades quanto ao funcionamento, o novo programa é bastante mais complexo do que o anterior, pois recorre a interrupções para que se possa verificar a acção simultânea das bases de tempo.

Carregado o programa, a PICop II gera dois sinais de onda quadrada: um com frequência de 10Hz no pino RC7 e outro com frequência de 4Hz no pino RC6. Como anteriormente, é possível confirmar a existência destes sinais utilizando LEDs. Se no entanto preferir utilizar um osciloscópio, deverá obter duas formas de onda equivalentes às da imagem seguinte (a captura foi feita em modo de disparo alternado para uma melhor leitura das frequências):

Formas de onda dos sinais presentes nos pinos RC7 (a vermelho) e RC6 (a amarelo).

É de salientar que, na realidade, os sinais em RC7 e RC6 não são síncronos, pois derivam de bases de tempo distintas. O sinal em RC7 deriva da base de tempo principal do micro-controlador, fornecida pelo cristal X1. Por seu turno, o sinal em RC6 é gerado pelas interrupções provenientes do Timer1 (um temporizador periférico, interno ao PIC18F4550), sendo a base de tempo deste último dada por X2. Contudo, é importante referir que ambos os sinais dependem sempre de X1 e do seu circuito oscilador, pois sem a base de tempo principal o micro-controlador simplesmente não irá correr o programa.

Surgindo a necessidade de despiste, ou apenas como teste adicional, é possível confirmar o funcionamento de X1 utilizando um osciloscópio. A fim de não interferir na oscilação do cristal, a medição da mesma deve ser feita aos terminais do condensador C4, sendo que a ponta de prova deve estar equipada com uma mola de contacto à massa. Deverá visualizar uma onda sinusoidal com uma frequência de 20MHz, de acordo com a seguinte imagem:

Forma de onda do sinal gerado por X1, medido aos terminais de C4.

O funcionamento do cristal X2 pode ser confirmado de modo semelhante. Para tal, deve fazer a medição aos terminais do condensador C6. Tratando-se de uma medição de um sinal de baixa frequência, a ponta de prova não precisa de mola de contacto à massa, podendo esta ser feita através do usual crocodilo. Deverá observar uma onda sinusoidal com frequência próxima de 32,768KHz, conforme é mostrado na imagem abaixo:

Forma de onda do sinal gerado por X2, medido aos terminais de C6.

Como no caso do programa anterior, a detecção de Vbus faz-se no momento em que a placa é ligada a um host. Dada tal condição, a tensão no pino RC7 apresenta-se constante e com valor positivo enquanto for detectado Vbus. Caso tenha um LED ligado ao pino anterior, verá que este agora permanece aceso em vez de piscar. Contudo, pode ser desejável desabilitar a detecção de Vbus, o que é especialmente útil quando a PICop II está a ser alimentada por USB (pino "Vdd" ligado ao pino "Vbus"). Sendo assim, basta ligar o pino RB7 à massa.

Mais uma vez, o programa está disponível em C e em hexadecimal. O código C deve ser compilado previamente com o compilador XC8 da Microchip. Por outro lado, o ficheiro hexadecimal pode ser carregado para o micro-controlador sem necessidade de compilar.

Links importantes:
Programa em C: http://app.box.com/s/usn3...y02g
Ficheiro hexadecimal: http://app.box.com/s/78vp...me1o

26/01/2015

Programa de teste para a placa de desenvolvimento "PICop"

Este programa de teste serve para validar o funcionamento da placa PICop. Não pretendendo ser um programa de demonstração, apenas são testadas algumas valências básicas, nomeadamente o circuito oscilador e a detecção da tensão de host (Vbus) no conector USB. Convém sublinhar que este programa não faz uso do módulo USB do micro-controlador, nem habilita as suas funções.

Uma vez carregado o programa, a PICop gera um sinal de onda quadrada com uma frequência de 10Hz (50ms/50ms) no pino RC7. A presença desse sinal pode ser confirmada visualmente utilizando um LED (com o respectivo cátodo ligado directamente à massa e o ânodo ligado ao referido pino por intermédio de um resistor de 180Ω). Se a placa estiver a funcionar correctamente, o LED fica então a piscar com uma cadência muito rápida. No caso de preferir utilizar um osciloscópio, deverá visualizar uma forma de onda semelhante à da seguinte imagem:

Forma de onda do sinal presente no pino RC7.

O funcionamento do cristal integrado na placa também pode ser verificado com um osciloscópio. Assim sendo, a medição deve ser feita aos terminais do condensador C3, utilizando para o efeito uma ponta de prova equipada com mola de contacto à massa. Não aconselho a medição noutros pontos do circuito de realimentação do cristal, dado que tal pode inibir a oscilação. Deverá observar uma onda sinusoidal com uma frequência de 20MHz, conforme ilustrado na imagem abaixo:

Forma de onda do sinal gerado pelo cristal em X1, medido aos terminais de C3.

A detecção de Vbus faz-se assim que a PICop é ligada a um host. Nessa circunstância, enquanto a tensão proveniente do host for detectada, a tensão no pino RC7 assume um valor constante e positivo, correspondente a um valor lógico alto. Caso esteja a usar um LED (ligado da forma indicada anteriormente), verá que o mesmo agora permanece aceso, sem piscar. É de salientar que, como o módulo USB do PIC18F2450 não está habilitado, não se espera qualquer enumeração do lado do host.

O programa está disponível em C e em hexadecimal. O código C deve ser compilado previamente com o XC8, um compilador da Microchip para o MPLAB X. Em alternativa, pode programar o micro-controlador utilizando um dos ficheiros hexadecimais aqui fornecidos. É importante referir que o último ficheiro habilita a função MCLR do micro-controlador (bit MCLRE a um), pelo que não irá funcionar com a versão original da placa.

Links importantes:
Programa em C: http://app.box.com/s/tq0k...4wim
Ficheiro hexadecimal: http://app.box.com/s/i4pr...ppu4
Ficheiro hexadecimal alternativo (MCLRE): http://app.box.com/s/rsci...bmh4

21/12/2014

Placa de desenvolvimento "PICop II"

Inspirada na placa PICop, trata-se de uma placa de desenvolvimento concebida em torno do micro-controlador PIC18F4550 da Microchip. Embora o projecto seja diferente, a PICop II pode ser considerada como uma versão melhorada da sua predecessora, uma vez que tem mais pinos de E/S e o dobro da memória flash. Além disso esta nova placa inclui um segundo circuito oscilador para aplicações em tempo real, o que a torna muito útil quando é necessário medir o tempo de forma precisa.

Placa de desenvolvimento "PICop II".

O circuito é bastante linear, aparte algumas complexidades. IC1, um dispositivo de protecção PolyZen, protege o micro-controlador (IC2) contra sobre-tensões que ocorram na alimentação. Convém mencionar que este dispositivo também oferece alguma protecção contra inversões de polaridade, embora no caso do PIC18F4550 tal protecção não se garanta (o micro-controlador anterior suporta uma tensão inversa de apenas 0,3V, valor máximo segundo a respectiva folha de dados, e o PolyZen somente tem efeito quando esta atinge um valor próximo de 0.6V). C1 e C2 são condensadores de desacoplamento cujo propósito é filtrar o ruído nas alimentações do micro-controlador, ao passo que C3 serve para estabilizar o regulador interno do módulo USB do PIC18F4550. R3 é um resistor de pull-up necessário à programação por ICSP, servindo também para manter o valor lógico do pino RE3 em nível alto durante a operação.

Pormenor dos circuitos osciladores, na face inferior da placa.

Como se vê na imagem acima, a PICop II tem dois circuitos osciladores: o cristal X1, de 20MHz, fornece a base de tempo principal ao micro-controlador, enquanto que X2, de 32,768KHz, fornece a base de tempo RTC (de Real Time Clock). Note que os osciladores do PIC18F4550 operam de forma independente, o que possibilita os mais diversos modos de funcionamento. Inclusivamente, é possível configurar o micro-controlador de modo a que a base de tempo seja dada por X2 ao invés de X1.

Lista de componentes:
C1/2 – Condensador cerâmico multi-camada 10nF 10V (0805);
C3 – Condensador cerâmico multi-camada 470nF 10V (0805);
C4/5 – Condensador cerâmico multi-camada 27pF±5% C0G 10V (0805);
C6 – Condensador cerâmico multi-camada 12pF±5% C0G 10V (0805);
C7 – Condensador cerâmico multi-camada 15pF±5% C0G 10V (0805);
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2 – Micro-controlador PIC18F4550 (PIC18F4550-I/ML);
J1 – Conector header macho de 6 pinos 90°;
J2-7 – Conector header macho de 5 pinos;
J8 – Conector USB Hirose UX60-MB-5S8;
JP1 – Conector header macho de 2 pinos (com shunt);
R1 – Resistor de filme espesso 270Ω±5% 1/8W (0805);
R2/3 – Resistor de filme espesso 10KΩ±5% 1/8W (0805);
R4/5 – Resistor de filme espesso 100KΩ±5% 1/8W (0805);
S1 – Interruptor pulsador C&K PTS525SM10 (PTS525SM10SMTRLFS);
X1 – Cristal CTS 406C35E20M00000;
X2 – Cristal CTS TF322P32K7680.


O layout está disponível nos formatos brd (Eagle 6.6.0) e Gerber. A encomenda da placa deve ser feita pelo OSH Park, uma vez que o layout foi desenhado tendo em conta as especificações deste serviço. Caso prefira outro serviço de fabrico, deverá verificar se o mesmo admite layouts de quatro camadas com furação a partir de 0,5mm.

A montagem deste projecto requer equipamento especializado e alguma experiência. Todos os componentes devem ser soldados cumprindo a seguinte ordem: primeiro soldam-se os componentes SMD da face superior, posteriormente os componentes da face inferior, e por último os componentes through-hole. Os componentes SMD devem ser soldados por refusão com ar quente, sempre com o cuidado de aplicar o calor estritamente necessário e no tempo mais curto possível.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/9df1wuvwt7yb2ys412pw
Diagrama do circuito (Eagle 6.6.0 sch): http://app.box.com/s/b73jzox4s606i75724l8
Layout da placa (Eagle 6.6.0 brd): http://app.box.com/s/hlszn7yn8xqrt1emsjgc
Ficheiros Gerber: http://app.box.com/s/hs6im6d4vt7zd3ejgicu
Notas do projecto (contém indicações importantes): http://app.box.com/s/n3qydlcavuyqr4ejp715
Pasta contendo todos os ficheiros: http://app.box.com/s/jpwccsy6esk70wcinwba
Projecto no OSH Park: http://oshpark.com/shared_projects/sJwKrsTZ

27/11/2014

Placa de desenvolvimento "PICop" (Rev. A)

Esta é uma revisão maior ao projecto "PICop", apresentado no post de 29 de Julho. A nova versão introduz características importantes, designadamente protecção contra sobre-tensões e um botão adicional que pode ser utilizado para reset ou para implementar funções do utilizador. Também foram feitas algumas correcções, tanto no circuito como a nível de layout.

Placa de desenvolvimento "PICop", revisão A.

Apesar das novas implementações, o circuito não difere substancialmente do original. O micro-controlador, anteriormente com a designação IC1, assume agora a designação IC2. IC1 é um dispositivo PolyZen, que é essencialmente um fusível PPTC e um díodo Zener no mesmo encapsulamento, e serve para proteger o micro-controlador contra eventuais sobre-tensões na alimentação. O dispositivo anterior também oferece alguma protecção contra inversões de polaridade, se bem que no caso do PIC18F2450 tal protecção pode não ser suficiente (é de salientar que o referido micro-controlador suporta uma tensão inversa de apenas 0,3V, valor máximo conforme consta na respectiva folha de dados, ao passo que o PolyZen só começa a actuar quando esta atinge cerca de 0,7V).

Pormenor do dispositivo PolyZen, situado na face inferior da placa.

Por seu lado, JP1 é agora um conector de dois pinos. Esta alteração prende-se com o facto de não ser necessário isolar o pino RE3 do micro-controlador do resistor R2, uma vez que esse pino é apenas usado internamente. Com a introdução de S1, um interruptor pulsador, é agora possível utilizar o pino RE3 para implementar a função de reset (função MCLR, com o bit MCLRE a um) ou qualquer outra função (como entrada digital, com o bit MCLRE a zero). Por conseguinte, R2 tem agora uma dupla função como resistor de pull-up: auxilia a programação via ICSP e mantém alto o nível lógico do pino RE3 se o pulsador S1 não estiver premido.

Lista de componentes:
C1 – Condensador cerâmico multi-camada 10nF 10V (0805);
C2 – Condensador cerâmico multi-camada 470nF 10V (0805);
C3/4 – Condensador cerâmico multi-camada 27pF±5% C0G 10V (0805);
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2 – Micro-controlador PIC18F2450 (PIC18F2450-I/ML);
J1 – Conector header macho de 6 pinos 90°;
J2/3 – Conector header macho de 10 pinos;
J4 – Conector USB Hirose UX60-MB-5S8;
JP1 – Conector header macho de 2 pinos (com shunt);
R1 – Resistor de filme espesso 270Ω±5% 1/8W (0805);
R2 – Resistor de filme espesso 10KΩ±5% 1/8W (0805);
R3/4 – Resistor de filme espesso 100KΩ±5% 1/8W (0805);
S1 – Interruptor pulsador C&K PTS525SM10 (PTS525SM10SMTRLFS);
X1 – Cristal CTS 406C35E20M00000.


O layout está disponível nos formatos brd (Eagle 6.6.0) e Gerber. Novamente recomendo a aquisição da placa através do OSH Park, dado que o layout foi criado tendo em conta as especificações deste serviço. Quanto à montagem, seguem-se os preceitos anteriormente referidos: soldam-se primeiro os componentes SMD da face superior, e só depois os componentes SMD da face inferior, aplicando o ar quente de modo a dar o calor estritamente necessário e o mais breve possível. Os componentes through-hole soldam-se em último lugar com ferro de soldar.

Links importantes:
Diagrama do circuito (pdf): http://app.box.com/s/k8bj6ynxaj13rmjdnaz4
Diagrama do circuito (Eagle 6.6.0 sch): http://app.box.com/s/rfl06so0ggoo0fx312hs
Layout da placa (Eagle 6.6.0 brd): http://app.box.com/s/ufuai276yvyb6wkz38u5
Ficheiros Gerber: http://app.box.com/s/8310vewbv9qb2ti1cbm7
Notas do projecto (contém indicações importantes): http://app.box.com/s/qpcpnih0r1xzdad3ifk3
Pasta contendo todos os ficheiros: http://app.box.com/s/0nc7hocsq34xpet7eatb
Projecto no OSH Park: http://oshpark.com/shared_projects/l8TItge9

07/10/2014

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

Trata-se de mais um programa de demonstração, agora concebido para testar e demonstrar a funcionalidade da placa PICtree. Tendo este programa carregado, a PICtree faz piscar 16 LEDs em sequência, no sentido anti-horário e em ciclos de dois segundos. O circuito para a demonstração deve ser montado em placa de ensaio, conforme o diagrama da figura seguinte:

Diagrama do circuito de demonstração.

Como anteriormente, o programa está disponível em C e em hexadecimal. O código C deve ser previamente compilado com o compilador XC8 da Microchip, ao passo que o ficheiro hexadecimal pode ser carregado directamente para o micro-controlador.

Links importantes:
Programa em C: http://app.box.com/s/jhz1...zglt
Ficheiro hexadecimal: http://app.box.com/s/iykv...3no1

08/09/2014

Saturn PCB Toolkit 6.8

Uma ferramenta imprescindível no desenho de placas de circuito impresso, o Saturn PCB Toolkit pode ser considerado como o "canivete suíço do engenheiro electrotécnico". Esta aplicação permite calcular e prever as características de praticamente qualquer condutor em placa de circuito impresso, incluindo vias, pares diferenciais e indutores planares. Adicionalmente, todas as funções incluídas são totalmente parametrizáveis.

Saturn PCB Toolkit 6.8.

Actualmente na versão 6.8.1, esta aplicação pode ser obtida gratuitamente através do site da Saturn PCB. Mas, independentemente do facto de ser grátis, o Saturn PCB Toolkit é uma ferramenta que recomendo vivamente pela sua grande utilidade.

Links:
Saturn PCB: http://www.saturnpcb.com/
Saturn PCB Toolkit: http://www.saturnpcb.com/pcb_toolkit.htm

12/08/2014

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

Este programa serve para testar e demonstrar a funcionalidade da placa PICant. A sua lógica de funcionamento é muito simples: selecciona-se o LED que fica aceso premindo o pulsador correspondente. Para realizar a demonstração deverá montar o circuito em placa de ensaio, de acordo com o diagrama da figura seguinte:

Diagrama do circuito de demonstração.

Novamente, o programa está disponível em C e em hexadecimal. O código C deve ser compilado com o XC8, um compilador da Microchip. Por outro lado, o ficheiro hexadecimal pode ser carregado directamente para o micro-controlador.

Links importantes:
Programa em C: http://app.box.com/s/lw5hl5ml9alg4z8rq9m0
Ficheiro hexadecimal: http://app.box.com/s/bomljjazlzyqynz9u1du