COMO GRAVAR O BOOTLOADER DO ARDUINO NO ATMEGA328 COM USBASP!

Se calhar muitos nem pensam neste pormenor, mas o cérebro do Arduino é, no fundo, um simples microcontrolador, não sendo este desenvolvido apenas para a plataforma Arduino; este foi apenas o “coração” escolhido pelos criadores para que tudo funcionasse em harmonia, tanto pela sua variedade de portas I/O, bem como pelas comunicações que o mesmo permite, como I2C, série, SPI. Com isto, o microcontrolador precisa de um pequeno programa, chamado bootloader, que o informe que irá receber um programa compilado, vindo de uma comunicação série, bem como as suas funções/ações; caso contrário, o programa não irá funcionar. Este processo é bastante útil para quem recebeu um microcontrolador defeituoso e quer comprar um ATMega328 para substituição; ou até para quem pretender construir o seu próprio Arduino (sim, é possível!). Neste artigo, vamos mostrar como gravar o bootloader do Arduino neste microcontrolador!

 

  • Material Necessário

Para este projeto, vamos precisar dos seguintes materiais:

Imagem Produto Comprar
  Programador USBASP
  Breadboard 830 Pinos
  Resistência de 10K
  Oscilador de 16MHz
  2 Condensadores de 22pF
  Jumpers Macho-Macho

 

  • Montagem do Circuito

Vamos começar por ligar o nosso programador ao ATMega328 e, consequentemente, ao computador. Seguimos o seguinte esquema de ligações.

 

Com o esquema montado na breadboard, inserimos a porta USB do USBASP no computador. Nesta fase, é normal o computador não reconhecer o dispositivo, esse passo será realizado no passo seguinte.

 

  • Drivers Necessários

Como qualquer dispositivo USB que conectemos ao computador, este último carece de um programa capaz de informar como aquele equipamento funciona, os drivers, e o USBASP não é exceção. Para facilitar o processo de instalação, iremos utilizar o Zadig.

 

 

Vamos selecionar, no dispositivo a detetar, o USBASP, onde o programa deteta instantaneamente o driver necessário. Basta clicarmos em “Install Driver“.

 

  • Gravar o Bootloader

O bootloader no seu formato hexadecimal já se encontra dentro da pasta da nossa aplicação Arduino. O caminho para o ficheiro é, de uma forma generalizada, “C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot“; porém, este pode variar, consoante a instalação da aplicação Arduino. O ficheiro em questão é “optiboot_atmega328.hex”. Neste passo, apenas é importante perceber/descobrir qual o caminho para este ficheiro.

Vamos agora instalar o nosso programa que irá realmente gravar o bootloader no ATMega. Optamos pelo programa AVRDUDESS, por ser intuitivo e fácil de configurar.

 

 

Depois de instalado, somos presenteados com o menu de configurações. Para que tudo funcione corretamente, vamos explicar os procedimentos passo a passo:

  • Em Programmer(c), selecionamos USBasp;
  • Em MCU(s), clicamos em “Detect”. Caso as ligações estejam todas corretas, irá automaticamente mostrar “ATMega328P” e o Bit Clock será definido para 1.5MHz, indicando que a conexão com o microcontrolador foi bem sucedida. Caso isto não aconteça, teremos de voltar a conferir as ligações na breadboard.

 

 

  • Em “Flash”, clicamos no botão “…” para pesquisar pelo bootloader. É aqui que utilizamos o caminho anteriormente anotado.

 

 

  • Vamos agora definir os Lock Bits, que nos irão permitir efetuar a programação do bootloader no microcontrolador. Definimos estes parâmetros de acordo com a print a seguir:

 

 

  • Depois de inseridos os valores, selecionamos “Set fuses”, “Set lock” e pressionamos, um de cada vez, os botões “Write”.

 

 

  • Resta, por último, clicar em “Program!”, e o bootloader deve ficar automaticamente gravado no ATMega.

 

  • Testar o Procedimento

Para testarmos vamos montar o nosso microcontrolador na placa Arduino e enviamos o código-exemplo “Blink”. Se o LED incorporado começar a piscar, significa que o procedimento foi bem sucedido; caso este não pisque, teremos que rever os passos anteriores.

 

 

Para mais projetos, percorram o nosso blog, onde podem encontrar vários artigos interessantes relacionados com eletrónica, robótica e muito mais! Visitem também o nosso site, onde encontram tudo para eletrónica e robótica!