Usar os equipamentos de teste do seu lab para observar o funcionamento de uma placa com microcontrolador
Tarefa individual
Redesenhar a placa echo hello-world, adicionar (pelo menos) um botão e um LED (com resistor limitador de corrente), verificar as regras de projeto, fabricar e testar.
Objetivos de aprendizagem:
Escolher e usar software de projeto de placas de circuito
Demonstrar os fluxos de trabalho usados no projeto de placas de circuito
Você:
Mostrou seu processo com textos/imagens/capturas de tela
Explicou os problemas e como resolveu, incluindo como trabalhou com as regras de projeto para fresagem (DRC no EagleCad e no KiCad)
Incluiu os arquivos originais do projeto (Eagle, KiCad, Inkscape, .cad - tanto faz)
Fluxo de trabalho da semana
Tarefa da semana → introdução ao Eagle → editar esquemático/placa → fresar a placa → soldar os componentes → depurar → editar e publicar o site
Em projects → clique com o botão direito em Eagle → clique em new project → dê um nome ao projeto
Clique com o botão direito no nome do projeto → new → Schematic
Digite "add" → procure cada componente
Posicione o componente com um clique esquerdo → repita até colocar todos os componentes do mesmo tipo → aperte ESC para adicionar o próximo componente → procure o próximo componente ou aperte ESC para voltar ao esquemático
Digite "rotate" e clique com o botão esquerdo na origem do componente para girá-lo até a posição desejada
Digite "net" para ligar os componentes entre si
Digite "name" e clique com o botão esquerdo em cima de um componente para dar nome a ele
Digite "label" e clique com o botão esquerdo num fio para ligar um ao outro sem precisar desenhar um net
Digite "value" e clique com o botão esquerdo na origem do componente para definir o "value" dele
Digite "move" para posicionar o componente como precisar
Salve o arquivo
No esquemático acima dá para ver que a maioria dos componentes não está ligada por uma linha (o comando "net"), com exceção do cristal (XTAL1). O resto dos componentes está ligado virtualmente com o comando "label", como expliquei na letra "h" acima.
Desenhando a placa
Para posicionar os componentes na PCB, use os mesmos comandos do esquemático:
Clique com o botão esquerdo em file → digite "board" → aceite o aviso e clique em yes para criar a placa e começar a desenhar a PCB a partir do esquemático criado antes
Todos os componentes vão aparecer à esquerda da placa → arraste um por um com o comando "move" + clique esquerdo e arraste para colocá-los dentro da placa
Digite "rotate" para girar os componentes do mesmo jeito que no esquemático
Depois de tudo posicionado → redimensione a placa arrastando as bordas da placa original com o comando "move"
Digite "polygon", selecione a camada top e desenhe um quadrado em volta dos limites da placa para criar a camada de cima da PCB
Digite "ratsnest" → para iniciar o autorouter, digite "auto". Esse comando é muito prático, porque dá uma ideia inicial de como rotear a placa, mas não substitui o roteamento manual
Selecione start
Ajuste as trilhas se precisar com o comando "ripup" para remover os caminhos colocados
Coloque novos caminhos com os comandos "route" e "move" para posicioná-los melhor
Digite o comando "info" + clique esquerdo para fazer o ajuste fino da posição dos caminhos e também da espessura deles
Dá para ver como eu fiz aqui. Aumenta o volume para ouvir um pouco de Cash!
Para adicionar o LED e o botão, voltei ao esquemático
No esquemático, digite "add" para adicionar dois resistores, um LED e o botão
O primeiro resistor limita a corrente que vai para o LED. Ele fica em série com o LED (de qualquer um dos lados). Para dimensionar o resistor, primeiro olhei o datasheet do LED. Lá procurei a corrente direta DC, neste caso 30 mA, e a tensão direta, neste caso 2,1 V
Com esses dois valores e mais a minha tensão de entrada (5 V) em mãos, coloquei os valores no site LED center para calcular o resistor certo, neste caso 100 Ohms. Na placa usei o resistor de 500 Ohms do esquemático (499 Ohms no inventário Fab), que deixa o LED bem abaixo do limite de 30 mA.
Para o botão, usei um resistor de 10K como pull-up
Como antes, usei os comandos move, rotate, label, name e copy para colocar todos os componentes no lugar
Fazer a BOM (lista de materiais)
Clique com o botão esquerdo no link design → clique com o botão esquerdo em Schematic
Espere o programa mostrar o componente → digite uma nova busca caso o componente desejado não apareça → clique em manual search → escolha o componente desejado → clique em select
Repita o processo anterior até encontrar todos os componentes
Identificar os comandos para compilar e gravar o firmware
- Com todos os arquivos baixados antes numa mesma pasta, no Linux renomeio o arquivo para makefile e rodo o script para criar o firmware (vou repetir este passo toda vez que quiser mudar o código):
mv hello.ftdi.44.echo.c.make makefile
make
Compilar o código-fonte
- Feito no passo anterior
Adaptar o makefile para funcionar com o meu programador
Programando uma placa com ATtiny44 pela Arduino IDE usando um FabTinyISP ou USBtinyISP que eu fiz.
FabISP
Programar uma placa com ATtiny44 pela Arduino IDE usando um FabTinyISP ou USBtinyISP que eu fiz funcionou bem. O único incômodo é ter que alimentar a placa-alvo.
Comece abrindo a Arduino IDE, depois em Tools escolha a placa, no meu caso ATtiny24/44/84. Depois, em Processor, escolhi ATtiny44.
Depois escolha o clock. Como não estou usando cristal externo, escolhi "Internal 8MHz". (Estes passos vêm da placa de Output Devices. Esta placa tem um ressonador de 20 MHz, então aqui o certo é "External 20 MHz".)
Depois vá em Programmer: "USBasp", ou "USBtiny" para o FabISP.
No vídeo abaixo mostro o processo de programar com o FabISP.
Aqui, em vez de usar o terminal e o avrdude, usei a Arduino IDE, porque ela tem um monitor serial embutido.
Os resultados estão no vídeo
Conclusão
Gostei muito de aprender essa ferramenta nova. Eu já tinha usado o Eagle para ver PCBs, mas nunca tinha desenhado uma. Sinto que isso abre a minha cabeça para muita coisa nova que vem por aí!