Tutoriais

Trocando o Bootloader do Arduino Nano

Eletrogate 9 de setembro de 2021

Introdução

As placas Arduino ganharam uma notoriedade enorme a partir dos anos de 2005 por fazerem com que a programação em microcontroladores fossem bastante simples por uma série de fatores.

Dentre estes fatores tem uma linguagem de programação com comandos simples e diretos, uma abstração maior de conceitos, facilidade de se ter shields para diversos propósitos, uma IDE simples e intuitiva, etc.

Mas o que muitos não sabem é que um fator extremamente importante para o sucesso da plataforma Arduino é o seu Bootloader extremamente competente e bem projetado. Mas afinal, o que é o bootloader?

O bootloader é um pequeno firmware que é carregado na placa e executa durante um segundo quando a placa é ligada. Esse pequeno programa é responsável por verificar se existe algum código para ser carregado na placa, caso não haja, ele se inativa e inicia o código que o usuário da placa carregou anteriormente.

Existir um bootloader permite que o chip Atmega328P (o cérebro de várias placas Arduino, incluindo o Nano) possa carregar programas diretamente da porta serial. Originalmente microcontroladores carregam programa utilizando ICSP (In Circuit Serial Programming), que no caso do Atmega328P é programado utilizando ISP, que é um tipo de comunicação serial que utiliza 4 fio para comunicação.

O problema de se utilizar o ISP para programar é que geralmente se utilizava um gravador externo e que era mais caro que um dispositivo que comunica apenas em UART, que geralmente implementado em cima de RS232.

Isso fez com que fosse pensado em um pequeno firmware que fosse gravado na placa de forma que o papel fosse realizar todas as configurações iniciais e receber o código. Caso nada ocorresse em 1 segundo, esse firmware ficaria inativado e voltaria a funcionar só após o desligamento.

Talvez você esteja se perguntando: Mas quando eu vou carregar o código no meu Arduino, eu não preciso reiniciar ele… Então como este bootloader é ativado?

Ele é ativado pelo próprio conversor USB-Serial (UART) que está embarcado na placa Arduino

Arduino Uno - Atmega16U2

Quando existe uma comunicação USB, este conversor USB – Serial muda o estado do pino CTS, que fica ligado bem ao pino de reset do Arduino. Isso acontece tanto para as placas Uno, Mega, Nano e várias outras.

Esquemático Arduino Uno

Créditos: Arduino CC

E assim que a placa reinicia o seu Arduino e ativa o Bootloader para verificar se há algum código e ela carrega o código automaticamente direto por comunicação UART.


Trocando o Bootloader

Para trocar o Bootloader é necessário de:

cta_cart

Faça a seguinte ligação abaixo:

Diagrama Esquemático

Agora com a Arduino IDE aberta, vá em: “Arquivo > Exemplos > ArduinoISP”

Arduino IDE Exemplo Arduino ISP

Arduino ISP enviando

E carregue esse código para a sua placa Arduino UNO.

Após o código ser carregado, abra um novo código em “Arquivo > Novo”. (Esse procedimento não é obrigatório, mas é interessante para evitar erros).

Agora vá em Ferramentas e selecione a placa Arduino Nano. Após isso vá em “Processador” e escolha qual é o tipo do seu interesse, se é o bootloader comum ou o old bootloader.

Seleção Bootloader

Veja se a Arduino IDE identificou corretamente seu Arduino Uno, e selecione a porta serial dele. Agora, com tudo pronto, basta apertar o botão “Gravar Bootloader”

Gravar Bootloader


Conclusão

Foi possível ver neste post simples como é possível gravar trocar o bootloader do seu Arduino Nano, ou até mesmo regravar, caso tenha se corrompido ou você tenha trocado seu chip Atmega328P.

Caso você tenha gostado deste post e foi útil de alguma forma para você, não se esqueça de dizer para nós nos comentários. Considere nos seguir no Instagram: @eletrogate

Até o próximo post!

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Gustavo Nery

Cursando Engenharia de Controle e Automação pela UFMG. Apaixonado por eletrônica, computação e tecnologias na área de sistemas embarcados. Nos tempos livres me divido entre desenvolver pesquisa na universidade, adquirir novos conhecimentos e estar com a família.


Eletrogate

9 de setembro de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!