Ter um microcontrolador de reserva é recomendável quando o seu Arduino começa a se comportar de forma estranha e você quer se certificar que o problema está (ou não) no microcontrolador. Uma simples troca de chip pode poupar muitas horas de tentativa e erro para achar um problema no seu circuito. Neste post, vamos mostrar como gravar (ou regravar) o bootloader no ATmega328, deixando o chip como novo.
Você também pode precisar de um ATMEGA para montar o seu circuito definitivo, depois de ter feito todos os testes e ajustes no circuito montado na protoboard e estar satisfeito com o resultado.
Uma opção é você comprar o chip ATMEGA já com o bootloader, como nesse anúncio aqui. Confira também o post Montando Arduino na protoboard.
Outra opção, até como aprendizado, é utilizar o tutorial que vou apresentar e que utiliza o próprio Arduino e um ATMEGA328P-PU “vazio”, no qual vamos gravar o bootloader do Arduino Uno.
O que vamos utilizar e o que faremos
Vamos utilizar o seguinte material:
- Arduino Uno
- Chip ATMEGA328P-PU
- Resistor de 10 K ohms
- Cristal de 16 Mhz
- 1 led
- 1 resistor limitador de corrente para o led. No meu circuito, utilizei um de 330 ohms
O tutorial tem várias etapas, que vou detalhar, mas os passos principais podem ser divididos desta maneira:
Passos 1 a 3: Consistem na preparação do Arduino Uno como gravador ISP
Passos 4 a 9: Ligação do Arduino Uno ao ATMEGA328P-PU e gravação do bootloade
Não pule etapas ou inverta os passos. Os passos 1 à 3, que são a preparação do Arduino Uno, devem ser completamente finalizados antes de prosseguir com a gravação.
Preparação do Arduino Uno
Passo 1 – Carregue a IDE do Arduino. No menu Arquivo => Exemplos, escolha a opção ArduinoISP:
Passo 2 – Será aberta uma nova janela, com o sketch do ArduinoISP, o programa responsável pela gravação:
Passo 3 – Com a nova janela selecionada, pressione o botão CARREGAR, conforme destacado, e transfira o programa para o Arduino Uno, como normalmente você faz com outros programas:
Essas 3 etapas encerram o processo de preparação do Arduino Uno. Vamos agora montar o circuito para gravação do ATMEGA, antes observando a pinagem do microcontrolador:
Circuito para gravar o bootloader no ATmega328
Passo 4 – Monte o circuito seguindo o seguinte esquema:
- Ligue o pino 1 (RST) do ATMEGA ao pino 10 do Arduino
- Ligue o pino 17 (MOSI) do ATMEGA ao pino 11 do Arduino
- Ligue o pino 18 (MISO) do ATMEGA ao pino 12 do Arduino
- Ligue o pino 19 (SCK) do ATMEGA ao pino 13 do Arduino
- Ligue o led ao pino 7 do Arduino, juntamente com o resistor de 330 ohms
- Ligue um resistor de 10 K ao pino 1 (RST) do ATMEGA, e a outra extremidade do resistor ligue no Vcc 5V do Arduino
- Ligue o pino 20 do ATMEGA ao Vcc 5v
- Ligue o pino 22 do ATMEGA ao GND
- Ligue o pino 7 do ATMEGA ao Vcc 5v
- Ligue o pino 8 do ATMEGA ao GND
- Nos pinos 9 e 10 (Clock) do ATMEGA, conecte o cristal de 16 Mhz
Seu circuito deve ficar mais ou menos assim:
Passo 5 – Conecte o Arduino UNO ao computador. Na janela da IDE do ArduinoISP, vá em Ferramentas => Placa e escolha a opção Arduino UNO, que é o bootloader que desejamos gravar no ATMEGA:
Passo 6 – No menu Ferramentas, escolha a opção GRAVADOR e selecione Arduino as ISP:
Passo 7 – Para iniciar a gravação, vá em Ferramentas e selecione Gravar Bootloader:
Passo 8 – O processo de gravação será iniciado, e você pode acompanhar o andamento na parte inferior da IDE, e também pela sinalização do LED ligado à porta 7, que ficará aceso durante o processo de gravação:
Passo 9 – Finalizado o processo, que geralmente é rápido (no meu equipamento demorou menos de 1 min), é apresentada a mensagem mostrando que a gravação foi bem sucedida:
Isso encerra o tutorial de como gravar bootloader do ATmega328 com Arduino. O ATMEGA está agora gravado com o bootloader para Arduino Uno, e pode ser testado na própria placa ou utilizado para montar um circuito definitivo. Para ver um exemplo de utilização, veja o artigo Montando Arduino na protoboard.
Gostou? Confira outros posts usando Arduino aqui mesmo no Arduino e Cia!