Microcontroladores , Open Hardware , Open Software e Tecnologia em Geral
Blog do Je » Page 'Arduino minimo sem cristal'

Arduino minimo sem cristal

Durante o 1o. Encontro Open Hardware de Brasilia, O Isaias Coelho fez uma apresentação sobre as suas experiencias com o Arduino Minimo Standalone, basicamente um microcontrolador atmega8/168 ou 328 montado em um breadboard, possibilitando começar a brincar com o arduino por um custo minimo. Gostei muito da apresentação mas fiquei pensando se não poderia usar menos componentes. Sabia que os ATMEGAs possuem um gerador de clock interno ao microcontrolador , que podem gerar clocks de 1,4 e 8 Mhz e que o kit Lilypad ja tinha ido por essa linha de desenvolvimento há algum tempo atrás.

Configurar o atmega é tranquilo , é só alterar os fuses , o maior trabalho é gerar o bootloader e configurar a ide do arduino para trabalhar corretamente com o novo Arduino. Comecei a pesquisar sobre o assunto, achei diversas referencias na internet sobre o assunto e usei principalmente os experimentos do blog ( muito interessante !!) do todbot que já realizou esta implementação em 2009. Coloco aqui o resumo da implementação do meu Arduino minimo sem cristal.

O circuito.

O circuito é praticamente apenas o microcontrolador ATMEGA 8. Adicionei um resistor de 10k do pino de reset para o VCC , um resistor de 330 ohms e um led para ligar ao pino pb.5 que equivale ao pino digital 13 do Arduino para testar o funcionamento do arduino com o programa Blink. Para alimentar o circuito usei uma bateria CR2032 de 3 Volts, destas usadas em relógios, já que o ATMEGA 8 comum precisa de uma alimentação minima de 2.7 volts.

Os fuses.

Os fuses do ATMEGA 8 devem ser setados como: HighFuses = OXC4 , LowFuses=0XE4. Esta configuração garante principalmente a velocidade de 8MHz e que um bootloader estará presente neste ATMEGA 8

O bootloader.

Usei o bootloader antigo do Arduino usado nas versões com ATMEGA 8. Neste bootloader foram alterados a velocidade de funcionamento para 8 Mhz. Os arquivos para download estão no meu github nos links no final do post.  Para gravar o bootloader usei o programa Avr Studio 4 da Atmel e um kit STK500 mas existem diversas outras formas de grava-lo das mais simples com um cabo ligado a porta paralela até programadores mais sofisticados. Apos gravar o bootloader é so montar  na breadboard. O blog do Daniel Quadros fez uma serie de posts sobre os programadores mais usados, links no final deste post.

A IDE Arduino.

A IDE foi modificada com a colocação da configuração do novo tipo de Arduino no arquivo boards.txt. Os parâmetros configurados indicam qual é o chip usado , sua freqüência de funcionamento, qual a velocidade de comunicação para a gravação dos sketches , etc. O código a ser adicionado está também no github. Nas versões da IDE Arduino para Windows e Linux é só acessar o arquivo boards.txt no diretório arduino00xx/hardware/boards.txt. No MAC OS X, o arquivo boards.txt fica dentro do Arduino.app . É necessario acionar o Finder , posicionar-se no diretório de Aplicativos e  abrir o Arduino.app com a opção “Mostrar o conteudo do pacote” ,  abrir o arquivo boards.txt no diretório Arduino.app/Contents/Resources/Java/ hardware/arduino e edita-lo.

Como transmitir o sketch  o Arduino.

Este Arduino minimo não tem USB, como conversar com ele ? A opção mais simples é usar uma placa arduino ng, duemilanove ou outra com interface USB que voce ja tenha: tire o chip Atmega da placa e ligue da seguinte forma:

  • pino 2 do ATMEGA8 (RXD)  na saída D0 do Arduino
  • pino 3 do ATMEGA8 (TXD) na saída D1 do Arduino
  • pino 7 do ATMEGA8 (VCC) na saída 5V do Arduino
  • pino 8 do ATMEGA8 (GND) na saída 0V do Arduino

Os testes.

Para testar usei o famoso sketch Blink. Para gravar o programa é preciso um certo macete ja que esta versão do bootloader não tem suporte para o reset, via ide dos Arduinos mais novos . Assim que voce mandar fazer o upload do código compilado, dê um reset no arduino , desligando e religando ou dando um curto rapido do pino 1 com o terra causando um reset no atmega. Depois de um curto tempo a comunicacao do ATMEGA8 com o pc se inicia, e a carga do programa é concluida com sucesso.

Conclusões.

Esta, eu acredito que é a forma mais barata de ter um Arduino para testar em protótipos. Esta opção é interessante para montagem em workshops para iniciantes, já que diminui o numero de erros possíveis de acontecer. Outro uso é principalmente para quem fez um upgrade em seu Arduino para Atmega168 ou 328 e ficou com o ATMEGA8 de bobeira em casa . Esta versão também pode servir como base para projetos definitivos de dispositivos onde o timing da aplicação não seja critico e a facilidade de programação proporcionada pela IDE Arduino seja um diferencial para o projeto. Eu estou experimentando esta versão em um controlador de automação residencial e os resultados são muito interessantes. Esta mesma situação pode ser adaptada para uso com ATMEGAs 168 e 328 , ajustando os devidos fuses para os chips, tendo como conseqüência uma area de memoria maior para os sketches.

Divirtam-se !!
Links :
Posts relacionados:
Downloads:
Gostou deste post ? Divulgue !
delicious digg google
stumbleupon technorati Yahoo!

9 commentarios to “Arduino minimo sem cristal”

  1. Uau, estou embasbacado… Não acreditava que ele poderia ficar menor ainda! Mas será que não poderíamos retirar o resistor de 10K também?

  2. Isaias,
    Sem o resistor de 10k o pino 1 vira uma antena, captando o ruido eletrico do ambiente. O atmega8 vpode resetar aleatoriamente atrapalhando o funcionamento do seu circuito.
    Abs

  3. Bom dia “Je”.
    muito show o que fez, e claro, muito interesante mesmo, pois prevaleço em desenvolver e “fazer”, gosto de usar muito a lógica. Bom, vou direto ao assunto. PRECISAVA MUITISSIMO FALAR COM TIGO, SOBRE UM ASSUNTO QUE ME DEIXA MUITO FRUSTADO, ou que os USERS do Arduino nao querem ver, ou mesmo o comercio de produtos do arduino nao deixa vazar, pois poderia evitar muita renda para eles… PS: Bluetooth.
    Bom, Gostaria muito mesmo de falar com tigo, sobre este assunto. Tirar uma ideia do porque só pensam em valores, e não o custo/beneficio para facilitar o aprendizado e a acessibilidade, para um projeto final ter um melhor preço.
    Abraços, meu e-mail está ai, e seria um prazer falar com tigo nestas questoes.

  4. Olá você tem idéia de quanto dura essa bateria botão com esse arduino minimo??

  5. Marcelo , eu usei essa bateria só como prova de conceito. Na realidade o arduino minimo esta ligado a uma fonte da alimentação convencional transmitindo dados de temperatura e humidade em um projeto de monitoramento.

  6. Não dá para ligar esse arduino por USB sem ter outro arduíno? Tipo com um conversor serial > USB, ou algo do tipo. Se sim por favor me como se liga porque sou newbie…

  7. amigo,

    estou c um problema…consigo gravar o bootloader, porém, quando vou gravar o programa parece que não encontra um arquivo desejado…dá:

    Error Compiling

    In file included from Blink.cpp:10:
    B:\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:213:26: error: pins_arduino.h: No such file or directory

    não há este arquivo pins_arduino.h

    uso a versão 1.0.1

    obgdo.

  8. resolvi colocando o pins_arduino.h na pasta….

    agora dá o erro avrdude: stk500_getsync(): can’t communicate with device: resp=0xfc

    alterei o high_fuse para d2 como tem nos comentarios do todbot.

    consegui programar meus ATtiny com arduino normal…agora o atmega8 n vai de jeito nenhum….

    alguem teria uma recomentadação?

  9. ja tentei pegar o original atmega8 do boards.txt e modificar o high_fuse e clock tb mas nada…

Deixe um comentario

XHTML - Voce pode usar:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Topo da página / Assinar para receber novos Posts (RSS)