Curso de Arduino

Aula 2 - O Hardware do Arduino

Daniel O. Basconcello Filho

O Firmware

Que a placa Arduino contém um micro controlador, uma CPU completa, vocês já sabem. Vamos abordar agora o que faz essa CPU trabalhar. O Firmware

Então o que é um firmware? É simplesmente um software que é carregado dentro da memória do micro-controlador. Técnicamente o firmware é a combinação de uma memória ROM, somente para leitura, e um programa que fica gravado neste tipo de memória. E esse é o caso do micro controlador que a placa Arduino usa.

Para entender melhor o firmware, vejamos a tela do software do Arduino. Abordaremos esse software com mais detalhes adiante:


Programa para piscar um led

O programa visto acima é um dos programas exemplo que vem junto quando instalamos o software Arduino. Esse programa comanda o micro controlador para piscar um LED conectado no pino 13, led esse que pisca à 0,5Hz ou seja, acende e apaga uma vez a cada dois segundos.

O programa é escrito em linguagem C, e não pode ser enviado desta forma para o controlador. Este programa é compilado e então um arquivo .hex é gerado pelo software. Esse arquivo é então o código que o micro controlador efetivamente vai executar. Veja como é esse arquivo:


Código hexa para piscar um led

Como o leitor pode notar, é um arquivo texto, (formato intel hexa) muito difícil de entender. Mas não precisamos nos preocupar com isso, afinal o Arduino deixa isso transparente para você. Para compilar e enviar esse programa para a placa, temos apenas que configurar a IDE com o tipo de arduino que estamos utilizando. Automaticamente a IDE compila e transfere o programa para a placa.

Mas como isso funciona? Dentro do micro controlador na placa Arduino existe um programa, préviamente carregado que chama-se BOOTLOADER.

O Bootloader

Não adianta comprar o micro controlador, instalar na placa Arduino e sair usando. Não funciona porque quando a IDE Arduino precisa enviar o hexa gerado para o controlador este deve "conversar" com a IDE, receber o programa e gravá-lo na sua ROM. Para que isso aconteça, um pequeno programa deve existir no controlador.

Esse programa chama-se bootloade, e é disponibilizado junto com a IDE. Quando você instala a IDE, esta cria umas pastas no seu sistema de arquivo. Uma dessas pastas contém os bootloaders para todas as placas Arduino oficiais. Veja:


Pasta dos bootloaders para varios tipos de controladores


Arquivos do bootloader para o controlador ATMega8

O bootloader também é um arquivo hexa, note acima o arquivo .hex

Ao comprar uma placa Arduino, o micro controlador que vem nela já possui o bootloader gravado, e você não precisa se preocupar em colocar ele lá.

Acredito, pela experiência, que a maior dificuldade dos leitores que decidem construir uma placa Arduino é exatamente colocar o bootloader dentro do controlador. Essa dificuldade acontece porque diferente de uma placa Arduino que vem pronta para usar com a IDE, em uma placa "zerada" o bootloader não está no micro controlador, e desta forma a IDE do Arduino não consegue gravar o programa porque ao efetuar a tentativa de enviar o .hex para a placa, o controlador não está preparado para responder, e a IDE indica um erro e informa que não existe uma placa arduino conectada no computador.

Para gravar o bootloader no chip, é necessário um gravador de .hex para a linha ATMEL. Pensando nessa dificuldade, construí um gravador bem simples, que está na minha bancada e virou um artigo separado. Confiram esse artigo aqui. AVR Programmer

Finalizamos assim o tópico sobre o hardware do Arduino.

Próxima aula: O Software do Arduino

Comente este artigo você também!

Licensa Creative Commons Esta obra foi licenciada sob uma Licença Creative Commons Atribuição-NãoComercial-Compartilha 3.0 Não Adaptada.