• Gravando Bootloader
    no microcontrolador
    ATmega328p-PU

    Bootloader

O que é bootloader?

O bootloader é um pequeno código de programa, que é executado dentro do microcontrolador Atmega328 quando você liga o Arduino ou o reinicia através do botão de reset, ou seja, é um gerenciador que permite a inicialização do microcontrolador AVR em questão, sem a necessidade de qualquer hardware externo. Sua função permite carregar os códigos criados em seu computador na IDE do Arduino diretamente em sua placa Arduino utilizando uma porta USB, ou, nesse caso, na placa Standalone, utilizando um conversor TTL > USB. Existem diferentes versões do bootloader, neste caso vamos apresentar a gravação da versão do Arduino UNO, que é uma das mais populares atualmente.

Bootloader Atmega328
Bootloader Arduino standalone

Materiais Necessários

Para realizar este processo, além da placa Standalone completa e da IDE do Arduino instalada em seu computador, necessitaremos também de:

  • 1 x Arduino Uno com cabo USB
  • 1 x Capacitor de 10uF, 16V ou mais
  • 6 x Jumpers macho/macho (fios para conexão)

Preparando o Arduino Uno para o processo

Utilizaremos o Arduino Uno em modo ISP, ou seja, primeiramente gravaremos um código chamado “ArduinoISP” em seu microcontrolador através da IDE do Arduino. Conecte seu Arduino Uno ao PC, abra a IDE do Arduino, verifique no menu “Ferrramentas”se a configuração padrão está correta, “Placa” > Arduino Uno, “Porta” > Esta varia de acordo com seu PC e sistema operacional e “Gravador” > VRISP mkII.

Bootloader Arduino standalone

No menu “Arquivos” selecione “Exemplos” > “ArduinoISP” e faça o upload deste código para o Arduino Uno, ou seja, será gravado em um microcontrolador Atmega328p já com bootloader.

Bootloader Arduino standalone

Se tudo estiver certo, na barra de status você verá a mensagem “Transferência concluída.”
Caso a gravação não ocorra, verifique novamente se a configuração da porta está correta.

Fazendo a conexão entre o Arduino Uno e a Placa Atmaker 1.3

Desconecte seu Arduino Uno do seu PC, utilizando 6 jumpers, faremos algumas conexões entre o Arduino Uno e a Placa Standalone Atmaker (apenas para versões superiores a 1.2), veja a figura abaixo. Este procedimento faz com que a alimentação da placa Standalone seja derivada da tensão fornecida pelo 5v do Arduino Uno.
Na figura abaixo veja a polaridade do capacitor, o terminal negativo deve ser ligado ao terra do Arduino e o terminal positivo ao pino Reset do Arduino.

Bootloader Arduino standalone
Atenção

ATENÇÃO: As placas Standalone de versões anteriores a 1.2 não possuem o Pino1, neste caso o jumper que sai do pino 10 do Arduino (cor rosa da figura acima) deverá ser feita uma adaptação ligando-o diretamente ao pino 1 do microcontrolador da placa Standalone. O jumper que sai do pino 10 do Arduino não deve ser ligado ao pino RS, pois existe um capacitor cerâmico entre o terminal RS e o pino numero 1 do Atmega que impossibilitará o processo.

Gravando o bootloader no microcontrolador

Conecte seu Arduino Uno ao PC, abra a IDE, verifique novamente no menu “Ferramentas”se a configuração da porta está correta. Agora no menu “Ferramentas” iremos alterar a opção “Gravador” de “AVRISP mkII” para “Arduino ISP”, e logo em seguida vá em “Ferramentas” novamente e clique em “Gravar Bootloader”.

Bootloader Arduino standalone

Este procedimento pode levar de 3 a 30 segundos, o tempo pode variar de acordo com a versão da IDE, tipo e versão do seu sistema operacional ou outros fatores. Mas não se preocupe pois ao finalizar este processo com sucesso, será apresentado a mensagem “Gravação do bootloader finalizada” na barra de status.

Retornando a configuração padrão

Após finalizar o processo, seu microcontrolador já está preparado para receber seus códigos. A partir deste momento o microcontrolador pode ser utilizado tanto na placa Standalone como em um Arduino Uno convencional. Agora volte a configuração de sua IDE para a forma padrão no menu Ferramentas > Gravador > AVRISP mkII.

Bootloader Arduino standalone

A grande vantagem do bootloader, é que o mesmo poderá ser gravado quantas vezes for necessário, inclusive com pequenas alterações no código “ArduinoISP” você pode dispensar a necessidade do uso do oscilador externo de 16 mhz do Atmega328 e utilizar o seu clock interno de 8 mhz, que para algumas aplicações não faz muita diferença em sua performance, mas para fins didáticos vale a pena dar uma conferida neste e outros detalhes.

Por enquanto, isso é tudo. Bons projetos!