Como gravar o Bootloader para ATtiny85 com Arduino
O ATtiny85 é um microcontrolador AVR muito utilizado em projetos compactos relacionados as áreas de automação e robótica. Seu tamanho e baixo consumo de energia o torna uma excelente opção para projetos portáteis com dimensões reduzidas e sem a necessidade de muitas portas de comunicação.
![A figura mostra um foto real tirada do microcontrolador ATtiny 85](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-1-Microcontrolador-ATtiny-85.png?resize=411%2C352&ssl=1)
O ATtiny85 possui 8KB de flash, um oscilador RC interno de 8MHz e 512 bytes de EEPROM e SRAM. Além disto, possui dois temporizadores de 8 bits, um de alta velocidade com quatro saídas de PWM e uma ADC de 10 bits de quatro canais.
Embora sua interface conte com apenas 8 pinos, o ATtiny85 pode executar quase todas as funções que um microcontrolador simples pode fazer. A Figura 2 detalha sua pinagem.
![A figura mostra uma ilustração com o microcontrolador ATtiny 85, onde é indicado o nome de cada pino](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-2-Pinos-do-microcontrolador-Attiny85.png?resize=960%2C539&ssl=1)
Uma vantagem do microcontrolador ATtiny85 é que ele é capaz de utilizar muitas das bibliotecas disponíveis na plataforma Arduino. Além disso, pode executar o Bootloader Arduino, facilitando sua programação visto que o código poderá ser carregado diretamente do Arduino IDE usando uma conexão USB.
O Bootloader é um código especial que permite a transferência da programação para o microcontrolador. O Bootloader é responsável por verificar se o computador está tentando enviar um código, aceitar o envio e armazenar o código em um local específico na memória do microcontrolador. Além disto, instrui o chip a executar o código já armazenado na memória.
Neste tutorial, detalharemos o passo a passo para a gravação do Bootloader do ATtiny85 usando uma placa Arduino UNO.
MATERIAIS NECESSÁRIOS
- 1x Placa Uno SMD R3 atmega328;
- 1x Cabo USB compatível com Arduino;
- 1x microcontrolador ATtiny 85 Atmel ATtiny 85;
- 1x Capacitor de 10 µF;
- 1x protoboard;
- Jumpers macho-macho.
ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES
Monte atentamente o circuito da Figura 3 utilizando os jumpers macho-macho, a placas UNO e a placa ATtiny85.
![A Figura ilustra o esquematico de ligação do circuito para realiza o bootloader no Attiny85](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-3-Circuito-para-gravacao-do-Bootloader-no-Arduino-UNO.png?resize=1024%2C576&ssl=1)
Ao montar o circuito observe os seguintes pontos:
- O processo de gravação do Bootloader ocorrerá via ISP (In System Programmer). Para tal, serão utilizados VCC, GND e quatro pinos de dados;
- Três pinos de dados conectam o MISO, MOSI e SCK entre o Arduino UNO e o ATtiny85;
- O quarto pino do Arduino UNO deve ser conectado ao pino RESET do ATtiny85;
- Para evitar que o Arduino UNO reinicie quando o avrdude abrir a porta serial utilizamos um capacitor conectado entro o RESET e o GND.
PROCEDIMENTO DE GRAVAÇÃO DO BOOTLOADER
- Abrir a Arduino IDE e abrir o código de gravação
Para gravar o Bootloader para o Arduino UNO, vamos utilizar um código exemplo já disponível no próprio Arduino IDE. Este código pode ser acessado através do seguinte caminho: Arquivo > Exemplos > 11.ArduinoISP > ArduinoISP), conforme a Figura 4.
![A figura mostra uma captura de tela da Arduino IDE, onde o foco é mostrar o caminho que deve ser seguido para acessar o exemplo do Arduino ISP.](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-4-Caminho-de-acesso-ao-codigo-exemplo-Arduino-ISP..png?resize=559%2C367&ssl=1)
2. Definir a placa que será usada
Logo após abrir, devemos selecionar a placa que iremos utilizar. Em nosso caso, iremos selecionar a placa Arduino UNO no menu Ferramentas > Placas, conforma a Figura 5.
![A figura mostra uma captura de tela da Arduino IDE, onde é indicado o caminho para mudar a placa de envio do código para "Arduino UNO](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-5-Selecao-da-placa-Arduino-UNO.png?resize=565%2C334&ssl=1)
3. Transferir o código para a placa conectada
Com a placa já definida, transfira o código para a placa Arduino UNO com Bootloader, conforme a Figura 6.
![A figura mostra uma captura de tela indicando a compilação e envio do código exemplo para o microcontrolador Arduino UNO](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-6-Upload-do-codigo-para-o-Arduino-UNO.png?resize=567%2C449&ssl=1)
4. Instalar a placa ATtiny85 no Arduino IDE
Para instalar ATtiny será necessário atualizar o Gerenciador de Placas do Arduino IDE, que é bem simples. Para isso, Acesse Arquivo>Preferências (Figura 7). Em seguida, copie a URL abaixo na caixa de URLs adicionais para Gerenciadores de Placas, localizada no inferior da janela (Figura 8).
![A imagem mostra uma captura de tela do caminho que deve ser seguido para acessar as preferências na Arduino IDE.](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-7-Opcao-Preferencias-no-Arduino-IDE.png?resize=567%2C349&ssl=1)
![A imagem mostra uma captura de tela, incidicando o local em que deve ser colado a URL mostrada acima](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-8-Atualizacao-do-gerenciador-de-placas-no-Arduino-IDE.png?resize=567%2C338&ssl=1)
Em seguida, navegue até o Gerenciador de Placas através do caminho Ferramentas> Placa> Gerenciador de placas. No campo de pesquisa busque por ATtiny e instale o pacote clicando em “Instalar”, conforme Figura 9.
![A imagem mostra uma captura de tela onde é mostrado o caminha para que seja instalada a placa do Attiny85 na Arduino IDE](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-9-Instalando-o-Attiny-no-Arduino-IDE.png?resize=780%2C439&ssl=1)
Depois que a instalação estiver concluída, um pequeno texto INSTALLED aparecerá ao lado da entrada. Agora você pode fechar o gerenciador de placas.
Para verificar se a instalação ocorreu corretamente acesse Ferramentas> Placas. Busque por Attiny microcontrollers, conforme Figura 10.
![A figura mostra uma captura de tela na Arduino IDE que indica que a placa do microcontrolador ATTINY 85 foi instalada corretamente](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-10-Placas-Attiny-instaladas..png?resize=827%2C513&ssl=1)
5. Selecionar a placa ATtiny
Logo em seguida, devemos selecionar a placa que desejamos gravar o Bootloader: O Attiny85. Para tal, será necessário acessar Ferramentas > Placa > ATtiny Microcontrollers > ATtiny25/45/85, conforme a Figura 11.
![A figura mostra uma captura de tela, onde é indicado como selecionar a placa Attiny 25/45/85 na Arduino IDE](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-11-Selecao-da-placa-Attiny85.png?resize=831%2C513&ssl=1)
6. Configurar a placa ATtiny
Em seguida, será necessário realizar as configurações da placa ATtiny. A primeira configuração que deve ser feita é do tipo de processador ATtiny que estamos usando. Para isso, acessaremos Ferramentas > Processador e selecionaremos a opção ATtiny85, conforme a Figura 12.
![A figura mostra uma captura de tela onde é indicado o caminho para alterar o tipo de placa attiny que está sendo utilizada, no caso desde tutorial está sendo utilizada a placa 85, logo é a que deve ser selecionada](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-12-Selecao-do-processador-da-placa-Attiny..png?resize=831%2C514&ssl=1)
A segunda configuração será para determinar o valor em MHz do Clock, em que selecionaremos a opção “Internal 8 MHz”, como na Figura 13.
![A figura mostra a captura de tela onde é indicado o caminho que deve ser seguido para altera o cloca em MHZ do microcontrolador Attiny](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-13-Configuracao-do-clock.png?resize=842%2C520&ssl=1)
7. Alterar o programador para o modo ISP
Para que o Arduino UNO consiga gravar o Bootloader no ATtiny85, precisamos alterar o modo Programador para “Arduino as ISP”. Para tal, acesse o menu Ferramentas > Programador, conforme Figura 14.
![A figura mostra uma captura de tela indicando como alterar o modo de funcionamento do Arduino para ISP na Arduino IDE.](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-14-Programador-modo-Arduino-ISP.png?resize=831%2C654&ssl=1)
8. Realizar a gravação do Bootloader
Por fim, com tudo configurado, basta acessar no menu Ferramentas a opção Gravar Bootloader, conforme a Figura 15.
![A figura mostra uma captura de tela indicando o caminho a ser seguido para selecionar a opção "Gravar bootloader" na Arduino IDE](https://i0.wp.com/www.blogdarobotica.com/wp-content/uploads/2022/10/Figura-15-Opcao-Gravar-Bootloader.png?resize=831%2C656&ssl=1)
Será necessário gravar o Bootloader apenas uma vez. Após a gravação, você poderá programar sua placa ATtiny85 normalmente.
Espero ter ajudado,
Obrigado a todos e em caso de dúvidas deixe seu comentário abaixo!
Att. Jonas Souza
REFERÊNCIAS
ARDUINO. Arduino as ISP and Arduino Bootloaders. Disponível em: <https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP>. Acesso em: 05 out. 2022.
Graduando em Engenharia Elétrica.