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!