Microcontroladores , Open Hardware , Open Software e Tecnologia em Geral
Blog do Je » Page 'Montando Arduino serial com ATMEGA168'

Montando Arduino serial com ATMEGA168

Montei meu segundo Arduino e desta vez usando o microcontrolador ATMEGA168, que possui o dobro de memória flash que o ATMEGA8.

Imprimi o desenho da placa na laser a partir do EAGLE . passei a ferro em cima do lado do cobre ( estou ficando craque e segundo a dileta esposa, já posso passar para o próximo ní­vel: passar a roupa de casa !!) , bacia de percloreto , lavar , passar bombril ,verificar se não tem curto, montar componentes, verificar se não tem montagem errada e voilá : mais um Arduino serial pronto para uso.

Programo os “fuses” , gravo o bootloader e tento gravar o sketch “Hello World” ( led piscando no pino 13 do Arduino) . Recebo a mensagem “Programmer not responding” . É o sincronismo, toupeira: primeiro dê reset no Arduino e depois faça o upload. Mesmo erro de novo !!! Tento mais umas dez vezes sem sucesso.

O que será que fiz de errado ? Verifico tudo , não encontro nada de errado , boto o ATMEGA8 da outra placa e testo com ele sem encontrar nenhum problema.

Verifico no site do Arduino se tem alguma recomendação sobre o uso do ATMEGA168 e não acho nenhuma referencia , será que esta %&*!! veio queimada da Digikey ?

Procuro por respostas no fórum do Arduino e encontro referencias ao mesmo problema e finalmente uma explicação: o bootloader para o ATMEGA168 é diferente do bootloader para o ATMEGA8. O site com a melhor explicação e correção para o problema que eu encontrei foi o do Wolf Paulus.

A situação é que devido a diferença do tamanho da memória, o bootloader precisa ser gravado a partir de outro endereço de memória e o código é diferente, provavelmente para atender as necessidades do upload via USB e bluetooth.

Os fuses precisam ser gravados com a seguinte sequencia, usando o avrdude:

- Desbloqueio do segmento do boot loader, limpada na memoria do chip, setar fuses (setar tamanho do boot loader para 1024 words [=2KByte]: 0xE00-0xFFF, setar velocidade do clock para to 16 MHz externo) :

avrdude -p m168 -b 115200 -P com1 -c stk500v2 -V -e -U lock:w:0x3F:m -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m -U efuse:w:0xF8:m

- Upload do boot loader :

avrdude -p m168 -b 115200 -P com1 -c stk500v2 -V -D -U flash:w:/AT168.hex:i

- Bloqueando novamente o segmento de memória do boot loader

avrdude -p m168 -b 115200 -P com1 -c stk500v2 -V -U lock:w:0xCF:m

Depois de seguir estas recomendações , consegui fazer o Arduino funcionar com o ATMEGA168 sem nenhum problema.

Atenção então amigos na hora de usar o ATMEGA168 no lugar do ATMEGA8.

Links:
Forum do Arduino - Muita coisa interessante , dicas de projetos, mods e discussões diversas.
Site do Wolf Paulus
Bootloader Arduino para ATMEGA168

Posts relacionados:
Modificando uma plastificadora Menno PLM-11 para “imprimir” circuito impresso
Video Tutorial Introdução ao Arduíno
Chegou o Arduino MEGA
ATMEGA328P - Quadruplicando a memoria do Arduino

Gostou deste post ? Divulgue !
delicious digg google
stumbleupon technorati Yahoo!

8 commentarios to “Montando Arduino serial com ATMEGA168”

  1. Olá, estou tentando aprender eletrônica e microcontroladores e achei que iniciar com o AVR seria interessante (achei melhor que o PIC). Porém me deparei com a imensa dificuldade de se encontrar esses chips no mercado. Até encontrei alguns no MercadoLivre, mas são os modelos mais básicos (bom pra aprender, mas eu queria testar uns USB). No entanto parece que esses só importando. Eu notei que você mencionou sobre a DigiKey. Como você importa por lá? Tem algum problema de impostos? Você pode me dar umas dicas?

  2. Ronan.
    A compra pela digikey é simples , é só entrar no site http://www.digikey.com , selecionar os itens , ir pro checkout e fim.
    Para conhecer melhor as opções sugiro que voce vá no site do fabricante , pagina dos AVRs: http://www.atmel.com/dyn/products/devices.asp?family_id=607

    Lá voce poderá ver qual tipo voce irá usar , analisar os datasheets antes de comprar. Outro site com informações sobre os microcontroladres AVR é o http://www.avrfreaks.net .
    O imposto é pago nos correios na hora de pegar a encomenda ( se voce optar pelo envio pelos correios). Se optar por courier voce recebe o boleto para pagar junto com a encomenda.
    A alíquota do imposto é de 60% sobre o preço dos componentes somado ao valor do frete.
    Boa Sorte !

  3. Gastaria de saber se tens como me ajudar, faço engenharia elétrica e gosto muito de trabalhar com microcontroladores e assembly, estou montando um projeto com o PIC16F874A, porém estou tendo uma dificuldade, não estou conseguindo configura-lo para receber uma informação via RS232, para que execute uma função a partir do dado recebido, configurei os registradores, taxa de transferência, já tentei por polling e por interrupção, devo estar esquecendo alguma coisa se pude me ajudar com sua experiência…

  4. Rodolfo ,
    Sugiro que voce coloque a sua duvida em uma lista de PIC ou grupo de usuários . Sugiro os seguintes grupos no yahoo :
    http://br.groups.yahoo.com/group/PicListBrasil/
    http://tech.groups.yahoo.com/group/piclist/
    http://tech.groups.yahoo.com/group/rat_ring/

    Boa Sorte !!

  5. Olá,

    Me falaram que o frete na digikey é por volta de 300 reais. Só vale a pena comprar muito componente para compensar.

    Isso é verdade?

  6. Fred ,
    O valor do frete é dependente direto do peso da mercadoria e do seu valor , se comprar apenas componentes o peso não é grande . É preciso atenção quando comprar kits de desenvolvimento , já que as vezes a caixa do kit é enorme e pesada. Foi o que aconteceu quando comprei o meu stk-500 , ficou caro.
    A digikey tem um link para conversar via chat com os operadores e esclarecer as duvidas .
    Boa sorte !!

  7. Amigo, conseguir fazer o que você me falou sobre o avrdude, mas estou com um probleminha ainda. Achei o avrdude mas na hora de configurá-lo para conectar com o arduino o que faço? Que tipo de programador eu o configuro. Espero que me ajude. Obrigado.

  8. Tiago ,
    Depende de qual progamador de AVR voce está usando. O programador pode ser uma simples conexão ao chip atraves da porta paralela ou serial do pc ou programadores especializados como o AVR-ISP e o STK500 da Atmel que possuem controles mais sofisticados para a programação.
    Sugiro voce dar uma olhada no link abaixo:

    CrazyTB’s blog - http://my.opera.com/CrazyTerabyte/blog/2007/10/26/first-contact-with-atmega8-microcontroller-part-2 - O Denilson fez um otimo trabalho explicando os tipos de programadores e os comandos a serem usados com o avrdude.

    Boa Diversão !

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)