(c) Todos os direitos reservados.

terça-feira, 31 de janeiro de 2012

Colocando logo em sua PCB usando Eagle Software

Dispositivo: Eagle Software
Objetivo: Colocar logotipo na placa de circuito
Dificuldade: 3 - (0~10)



Já faz mais de 1 ano que não posto nada neste blog, as razões foram muitas mas prometo que vou me esforçar mais em 2012. ;-)

Em breve vou postar a respeito da minha experiência na criação de PCBs profissionais fabricadas por empresas especializadas no ramo. Em casos como este em que você tem acesso ao serviço completo, é interessante tirar proveito de todos os recursos e para dar um look profissional na sua placa, um logotipo não pode faltar.

Neste post vou ensinar a você como colocar o seu próprio logotipo na sua próxima placa usando o Eagle e os recursos que estão escondidos nele. Pode até ser que exista alguma forma mais simples, mas esta funciona muito bem para mim.
Ao contrário do que parece, é tudo muito simples. Antes de tudo, o que você precisa é de que seu logotipo seja uma figura simples no formato Bitmap (*.BMP) preto e branco, não pode ser escala cinza nem mesmo colorido infelizmente, tem que ser monocromático mesmo, 1 bit de cor.

Depois pegamos esta imagem e processamos ela usando um script do Eagle chamado ULP. Este ULP é quem vai fazer todo o trabalho de conversão para nós e vai deixar o logotipo prontinho na sua PCB.
A partir dai, vai bastar posicionar seu logo onde você deseja e pronto, simples assim.



Mãos a obra..
Pois bem, vamos ao primeiro passo, a preparação da imagem do logotipo.
Existem várias formas, mas eu conheço e uso apenas duas para preparar a minha imagem, uma é pegar um logotipo pronto em um formato qualquer de imagem e fazer a conversão para preto e branco usando (não aconselho esta técnica, as vezes é muito frustrante).

A outra é criar o seu logotipo do zero, já com o Paint em modo preto e branco, mas neste caso você vai precisar conhecer as ferramentas e ter uma certa habilidade com os pixels.
Você não domina o Paint? Não se preocupe, existem dezenas de tutoriais no youtube.

Obs.: Um detalhe importante, por algum motivo qualquer, o Eagle não aceita arquivos criados na versão do Paint do Windows 7, não sei se o mesmo acontece com o Vista mas posso garantir que funciona com a versão do XP. Caso você tenha sucesso utilizando algum outro programa ou técnica, por favor deixe um comentário.

Criando a imagem:
No Paint vá ao menu Image > Attributes.
Na tela que vai abrir você vai ajustar o tamanho da imagem e vai ativar o modo preto e branco, eu tive ótimos resultados com o tamanho 350x250 pixels e não se esqueça de selecionar a opção Black and White como mostra na imagem abaixo, clique OK. Uma mensagem de advertência vai aparecer, clique YES.




A partir daqui, use seus dotes artísticos e crie seu logo, não é nenhum bicho de sete cabeças.


Dicas:
No caso de aproveitar um logo pronto, o segredo é não usar imagens com sombra, degradê, várias tonalidades de cores mesmo sendo sólidas ou com muitos detalhes em forma de linhas finas.
Dê preferência a imagens de cores sólidas e com formatos de linhas grossas e simples, pelo menos até você pegar o jeito.

Supondo que você esteja tentando reaproveitar um logo, abra a imagem com o Paint, repita os passos 1 e dois acima, em seguida basta retocar as distorções (boa sorte!).
Salve tudo na mesma pasta onde estão os seus arquivos da PCB que você deseja colocar o Logo.


Executando o Script:
Abra o projeto da sua PCB no Eagle Board, desative todos os Layers e deixe ativo apenas o layer que você usou para marcar os limites da sua placa, este é geralmente o Layer 20 Dimension.

Você pode executar o Script através do Ícone ULP e em seguida procurar pelo arquivo "import-bmp.ulp" ou simplesmente executando o comando "RUN import-bmp" na linha da comandos que aliás é minha opção predileta.



O Script vai pedir para você abrir a imagem, vá até o local onde você salvou o logo e clique no botão Abrir.
Em seguida o Script vai perguntar se você vai usar preto, branco ou as duas cores na conversão, clique na primeira opção, quadradinho preto apenas, Clique OK.
A próxima tela é a mais importante, nela vamos configurar o tamanho do logo e o Layer em que ele vai aparecer.

Pois bem, a primeira opção é Format, não se preocupe com ela deixe selecionado o modo Scaled. Em seguida temos Unit, aqui você seleciona MM milímetros, depois vamos definir o tamanho do logo, eu consegui o tamanho que eu desejava usando o valor 0.03. Mas cada caso é um caso, você pode começar por ai e então pode ir brincando com valores entre 0.001 até 3000 até conseguir o tamanho que você deseja.

No último campo é onde você vai escolher o layer que você deseja que o icone seja criado.
Isso é muito importante pois dependendo do layer que você escolher, você vai ter problemas para mover seu logo caso seja necessário pois quando seu logo aparecer na placa, o layer que você escolheu para ele reaparece juntamente com todos os elementos pertencentes a ele, experimente diferentes layers para você entender.
Eu geralmente gosto e aconselho usar o 21 ou o 22 que representam o Silk Screen, o layer 1 e 16 também são bons para logotipos pois representam as trilhas da PCB, depende se você quer o logo encima ou embaixo. Agora clique em OK e depois no botão Run Script.



Atenção Dicas Quentes:
Vou dividir com você um pouco da minha experiência.

- Infelizmente este script não oferece uma opção para posicionar o logo, consequentemente seu logo vai aparecer sempre perto das coordenadas o,o.

- Ele não é editável, portanto caso ele não esteja no tamanho ou do jeito que você deseja, você vai ter que deletar e rodar o Script todo novamente.

- Quando ele aparecer, ele vai reativar o Layer que você escolheu para o logo, portanto cuidado para não apagar objetos da placa acidentalmente.

- Desative os Layers 23 e 24 antes de mover o logo, ajuda bastante.

- Para mover o Logo use primeiro a ferramenta Group, selecione o Logo inteiro e tenha certeza que apenas ele foi selecionado, em seguida clique na ferramenta Move e no menu do botão direito do mouse escolha a opção Move Goup.

- Para deletar o Logo faça a mesma coisa porém ao invés de Group use a ferramenta Delete.

- Faça experiências com diferentes Layers e tamanhos até você dominar o Script.

Se você gostou deste tutorial divulgue o link do blog e deixe seu comentário, valeu!!!


Recursos:
Eagle Software - http://www.cadsoftusa.com/
Paint - Aprenda a usar

quinta-feira, 13 de janeiro de 2011

Adaptador USB para Serial com TUSB3410


Dispoitivo: TUSB3410 - Conversor USB para Serial
Objetivo: Construir um conversor USB para RS-232
Dificuldade: 7 - (1~10)

Há algum tempo atrás eu precisei de um conversor USB para serial para testar um módulo VDIP1 da FTDI pois o conversor que eu usava, um BELKIN F5U109 (foto abaixo), era um verdadeiro lixo, irônicamente como eu tinha algumas amostras do TUSB3410, eu fui logo juntando algumas peças e colocando o projeto em prática.


Eu poderia muito bem comprar um conversor pronto da própria FTDI, mas qual seria a graça?
Vamos ao que interessa, mas antes de falar sobre o projeto eu quero comentar um pouco a respeito deste chip da Texas.


O chip:
Gosto muito dos produtos da Texas Instruments e um deles é o TUSB3410, no datasheet ele esta descrito como uma ponte entre a porta USB e uma porta serial que contém toda a lógica necessária para se comunicar com um computador.
Bom, para mim o TUSB3410 é muito mais que isso, pois quando você lê a descrição acima, não da para perceber que este chip pode ser configurado para funcionar como uma ponte USB para Serial RS-232, RS-485 ou infra-vermelho bastando apenas configurar alguns registradores internos e isso não é tudo.

Veja abaixo outras caracteristicas interessantes:
  • 8052 Core
  • 5 Interrupćões controladas pela CPU
  • 10KB ROM
  • 16Kb RAM
  • 2KB SRAM
  • 2 x 16-bit Timers
  • 2 DMA
  • 4 I/O
  • 1 porta I2C - 100 ou 400Khz master
  • USB 2.0 - 12Mbs
  • Bootcode Flow via I2C ou USB
Vou fazer um breve comentário a respeito das características listada acima.
A grande vantagem de se ter um núcleo de um velho microcontrolador como o da família 805x, é que você pode personalizar este chip para fazer muito mais do que simplesmente funcionar como uma porta serial.
Esta CPU tem acesso a todos os registradores e hardware e ainda tem 4 pinos externos que podem funcionar tanto como entrada quanto saida, você pode acionar transistores, Leds ou receber um comando via push botton e muito mais.
Resumidamente é mais ou menos assim, o usuário cria um firmware usando um compilador compatível com a familia 805x e ou apenas um cabećario usando um aplicativo fornecido pela TI, este firmware será armazenado na eeprom ou no PC, depende da vontade do desenvolvedor.

Depois de um reset, o TUSB3410 vai primeiramente inicializar a porta I2C e USB, em seguida vai verificar na eeprom se existe um cabeçario para que ele possa ser corretamente inicializado pelo sistema operacional no computador, depois ele vai olhar nos outros blocos da eeprom para procurar um firmware válido, caso contrário vai aguardar pela USB por um firmware válido para ser transferido pelo computador.
Se a eeprom não tiver um cabeçario ou um firmware, o chip vai funcionar no modo padrão que é um simples conversor USB para RS-232.

Quando o chip encontra um firmware válido, ele transfere este firmware para a RAM e executa, este é o segredo da flexibilidade do TUSB3410. Mas nem tudo é alegria, na hora de determinar um cabeçario você precisa adquirir uma licença apropriada pois não é permitido usar a licença que a Texas fornece como padrão, mas isso é um outro assunto que não pretendo comentar agora.


O primeiro Protótipo:
A minha intenção quando eu montei o primeiro protótipo foi a de deixar todos os pinos acessíveis para que eu pudesse fazer testes e entender melhor o funcionamento do TUSB3410, infelizmente cometi alguns enganos no layout que impossibilitaram o uso prático desta versão do circuito apesar dele ter resolvido meu problema de comunicação com a placa da FTDI.


Um outro problema é que eu uso o método térmico para confeccionar minhas placas e nesta época eu estava tentando aprimorar minha técnica, obviamente algo saiu errado e minha PCB ficou com o visual comprometido.

A reciclagem:
Como todo bom técnico de fundo de quintal, eu dificilmente jogo algo fora, especialmente se tiver algum componente eletrônico dentro... Nunca se sabe quando você vai precisar daquilo.
Pois então, lembra daquele conversor que eu citei acima e disse que era um verdadeiro lixo?
Ficou guardado, mas não por muito tempo, dele eu pude aroveitar o drive para RS232 que era um chip da saudosa Analog Devices codificado como ADM211, 3 Leds, a carcaça, o conector DB9 e alguns resistores e capacitores.


Retirei as medidas internas da carcaça e desenhei a placa no Eagle um pouco maior que a original, outra modificação que fiz foi substituir um cabo USB tipo A (macho) de 30Cm por um mini B (Fêmea) diretamente na placa.


Erro no circuito:
Cometi um engano quando desenhei meu esquema elétrico depois de ler a respeito do problema com o pino 2 (Suspend).
No datasheet, o fabricante sugeriu adicionar um resistor e um diodo em série com o pino 2 para solucionar o problema reportado, mas ao fazer a correção, eu acidentalmente coloquei o pino 1 (VRegen) em nível alto o que desativou o regulador interno de 1.8V do chip e com isso ele não funcionava.


Quando descobri minha falha, eu resolvi experimentar uma solução simples (entenda gambiarra) adicionando um resistor de 1K no pino 4 (VDD1) que é a alimentaćão externa de 1.8V, mas foi uma solução temporária pois depois de alguns dias o circuito passou a apresentar problemas intermitentes.
Conclusão, refiz o circuito na forma correta, pino 1 em nível alto, retirei o resistor do pino 4 mas mantive o resistor e o diodo no pino 2.

A versão melhorada:
Depois de alguns meses decidi fazer uma versão melhorada incluindo um conversor de nivel RS-232, acesso aos pinos I2C, aos pinos de I/O e também a alguns pinos da serial mas com nível TTL.
Eu sabia que os pinos da serial do TUSB3410 trabalhavam com 3.2V, mas o que eu não sabia é que os pinos eram extremamente sensíveis a curto circuito.


Queimei dois chips acidentalmente encostando um dos pinos que estava em nível alto no terra e com isso meu chip passou a se auto ressetar sozinho sempre que o computador reconhecia o dispositivo USB.
A solução que encontrei foi usar um divisor de tensão, até que não foi uma má idéia pois desta forma posso trabalhar tanto com 5Vcc quanto com 3.3Vcc, mas o problema é que para isso eu tive que refazer o layout da placa de circuito.


Conclusão:
Depois de tudo, acabei o dia com um final feliz. O circuito esta funcionando perfeitamente, está bem estável e não tive problemas com o funcionamento do driver da texas instalado no computador. Aliás, funciona sem problemas tanto no Windows quanto no Linux.
Os conversores atuais possibilitam a construção de PCBs bem menores, muitos já suportam tensões de alimentação desde 2.1 a 5V. Isso elimina regulador de tensão externo e se não me engano eu acho que vi em um circuito de um aparelho Chinês, conversor USB/Serial que no próprio chip ja tinha o drive para conexão RS-232 bastando apenas adicionar 4 capacitores, incrível.
Este que eu montei ficou bom, o fato de eu ter aproveitado a caixa do conversor antigo deu um visual muito melhor e facilitou muito uso deste equipamento.


Os Leds TX e RX estão conectados nos Pinos de I/O do TUSB3410, eles não estão funcionando pois a CPU não tem instruções para executar este trabalho porque ainda não programei a EEProm.
Pretendo usar os registradores de STATUS para fazer-los funcionar porém esta brincadeira vai estar um outro post que pretendo fazer em breve, fique atento as novidades.

Recursos:
Clique aqui para baixar o esquemático do Eagle.

segunda-feira, 27 de dezembro de 2010

Melhorando a capacidade da bateria do BCK-08.

Dispositivo: BCK-08 Stereo Bluetooth Headset.
Objetivo: Melhorar a capacidade de armazenamento da bateria.
Dificuldade: 6 - (1~10)

O BCK-08 (também conhecido como A2DP) é um dispositivo sem fio capaz de se comunicar via bluetooth com aparelhos de audio que suportem a mesma tecnologia como telefones celulares, computadores, mp3 players e outros.
Principais Características:
  • Pequeno e leve
  • Bluetooth padrão V2.0
  • Alcance de 10M (33ft.) sem obstáculos
  • Duração da bateria de 10 horas (real 7 horas)
  • Dimensões (L x W x H): 4.0 x 2.9 x 1.8cm (1.57 x 1.14 x 0.71in)
  • Fone plug 3.5mm e microfone interno
  • Dois Leds indicativos e clip de segurança
  • Cinco botões de controle
Eu estava muito insatisfeito com a capacidade de armazenamento da bateria deste aparelho, segundo o fabricante, este dispositivo seria capaz de funcionar por 10 horas seguidas de conversarão ou tocando musica. Mas na realidade ele funciona efetivamente por apenas 7 horas de uso contínuo.
Este foi o motivo pelo qual eu decidi fazer um upgrade e aumentar a capacidade da bateria porém mantendo ele portátil.


Obviamente tudo precisava ser feito gastando o mínimo possível de dinheiro, isto eu consegui fazer muito bem pois meu custo foi zero. Eu tinha em minha bancada tudo o que eu precisava...
Uma bateria e um carregador retirados de um telefone celular, uma carcaça de um daqueles mini amplificadores vendidos na TV a preço de banana, mas que não serve pra nada (foto acima), cola quente, um chip dedicado para recarga da bateria, um plugue para adaptar o carregador, fio e uma placa de acrílico.

As Baterias:
Não consegui descobrir qual é a capacidade real de nenhuma das baterias, aparentemente a bateria original do BCK-08 é de 140mAh e 3.7V. Já a do celular é uma Nokia BL-5C, 3.7V, Li-ion 850mAh.


As Carcaças:
A carcaça foi aproveitada deste mini amplificador de baixo custo, coincidentemente ele tinha o tamanho perfeito para acomodar a nova bateria.
Este amplificador foi vendido por muito tempo na TV como um dispositivo para auxiliar pessoas que tinham problemas de audição, mas na verdade eu acho que ele piorava tudo pois gerava muito ruído estático.


O carregador:
O circuito de carga da bateria é baseado no MCP73863 da Microchip, este chip é uma excelente opção para carregar baterias de Li-Ion ou Li-Po que são muito perigosas e exigem dispositivos dedicados que sejam capazes de monitorar temperatura, corrente e tensão da bateria durante o processo de carga.
Decidi adicionar este chip pois o chip de carga original esta configurado para uma corrente de carga muito baixa, o que torna inviável reaproveitá-lo para recarregar uma bateria de maior capacidade como a BL-5C.


Além disso, como a nova bateria precisa de mais tempo para ser recarregada, isto poderia ativar um alarme por tempo de carga, desativando o processo por razões óbvias de segurança.


Este chip é muito simples e exige pouquíssimos componentes externos incluindo um NTC para monitorar a temperatura da bateria, outros variantes como o MCP73861, MCP73862 e MCP73864 usam o mesmo circuito o que muda é apenas o modo de indicação dos Leds e a capacidade de carregar uma ou duas células de bateria. O esquemático para este circuito pode ser encontrado aqui neste link.


Montagem Eletrônica:
O circuito do BCK-08 é relativamente simples, especialmente quando se tem o esquemático em mãos, isso é algo raro de se conseguir mas depois de várias horas usando diferentes termos e técnicas de busca no Santo Google eu fui capaz de realizar esta façanha. Baixe o esquemático aqui, agradecimentos especiais a ShenZhen Maojie Electronics Co.,Ltd por disponibiliza-lo on-line.


O processador DSP é um IS1035NM, o chip de RF é um IS1602N, o chip responsável pela carga da bateria original é um IS6601 e para guardar os parâmetros foi usada uma eeprom HT24LC08.
Para que a placa coubesse juntamente com a bateria, dentro da nova carcaça, foi necessário retirar o plug do fone de ouvido, mas ele foi reaproveitado em um lugar mais apropriado. Abaixo é possível identificar as conexões necessárias e outros detalhes do circuito.



O NTC foi instalado embaixo da bateria, eu configurei a corrente de carga para algo em torno de 230mA se não me engano. Estratégicamente esta é uma corrente para carga lenta.
Decidi por este valor pois correntes de carga baixa aumentam a vida da bateria e evitam aquecimento durante o processo de carga.
O MCP73861 oferece uma opção para desabilitar o uso do sensor de temperatura, mas depois de ler bastante a respeito das baterias Li-Ion eu cheguei a conclusão de que o custo é muito baixo comparado com a segurança extra que este recurso oferece, principalmente no meu caso que deixo minhas baterias carregando durante a noite.


As mudanças mecânicas:
Algumas adaptações foram necessárias antes de colocar todas as partes juntas.
Eu usei a Dremel para adaptar um pedaço de plástico para cobrir a parte que ficou exposta quando retirei a cobertura original de borracha da carcaça.


Além disso precisei fazer um pequeno orifício ao redor de onde seriam instalados os botões de comando para que eles pudessem ficar alinhados.
Uma pequena camada de cola ao redor deles foi suficiente para segura-los e servir de suporte para colocar a PCB na altura certa para que os contatos pudessem ser ativados sem problema.


Montagem final:
A montagem final foi sem surpresas, as conexões ficaram bem firmes e acomodadas dentro do aparelho.
Infelizmente precisei substituir os parafusos originais e adaptar a rosca plástica onde eles estavam presos pois durante a instalação da bateria precisei corta-los para acomoda-la dentro da carcaça. Mas isso não impediu que ela ficasse bem firme segura.


Coincidentemente o microfone ficou alinhado com o orifício que antes servia como controle de volume do amplificador, coloquei um pedaço de espuma para tapa-lo e ficou perfeito.
O pedaço de plástico que usei era transparente e deixava o circuito de carga visivelmente exposto, como sou muito fã do site Hack-a-day eu decidi usar o logo deles como escudo, eu gostei do visual.



Resultado Final:

Capacidade
Antes: 140mA
Depois: 850mA

Tempo de carga
Antes: 3.5Hrs
Depois: 4Hrs

Desempenho
Antes: 7Hrs
Depois: Aproximadamente 44Hrs
Observação: Este período de 44Hrs foi a soma de 4 dias usando o dispositivo por intervalos não regulares algumas horas por dia.

Dimensões A x L x P (L x W x H)
Antes: 4.0 x 2.9 x 1.8 cm (1.57 x 1.14 x 0.71in)
Depois: 7.0 x 4.5 x 2.3 cm (2.75 x 1.77 x 0.9 in)


Conclusão:
Estou satisfeito com o resultado e meu objetivo foi cumprido, o aparelho ficou um pouco maior que o original, porém continuou menor que um telefone celular e cabe confortavelmente no bolso.
Características como alcance e sensibilidade da recepção ficaram inalterados, a aparência ficou agradável no meu ponto de vista e a funcionalidade continua a mesma.

Porém nem tudo é alegria, a capacidade de corrente da nova bateria é 6 vezes maior que a da bateria original, mas não fui capaz de deixa-la descarregar por completo até o momento do auto desligamento.
Isso porque quando quando a bateria esta no nível crítico da capacidade de carga, o aparelho começa a emitir beeps a cada 45 segundos avisando que a carga esta baixa. Com a bateria antiga este alarme permanecia por aproximadamente 25 minutos antes do auto-desligamento.

Mas com a bateria nova acontece diferente, como ela tem muito mais capacidade de carga, no estado crítico ela vai fornecer corrente suficiente para algumas horas de uso antes do auto desligamento incluindo os beeps. Eu não havia pensado nesta hipótese, porém não é nada que não possa ser resolvido através de uma nova recarga.


Referências:
http://asm51.eng.br/phpbb/viewtopic.php?t=10995
http://blog.makezine.com/archive/2006/11/how_to_usb_liion_battery.html
http://nada-labs.net/2010/gps-logger-v-full-hardware/