Gravando o Bootloader

Eu estava tendo problemas com o upload do meu Arduino, onde o erro era “avrdude: stk500_getsync(): not in sync: resp=0x00”. Procurando pela internet, achei diversos sites que me orientavam a verificar as configurações da porta serial, ou ainda se o modelo do Arduino escolhido como target correspondia ao meu hardware. Foi muito frustrante porque nada funcionava e o bendito stk500 continuava a acontecer. Deixei esse arduino de lado e começei a trabalhar com outros que eu tinha disponível.

Após um tempo, trabalhando num projeto onde eu iria integrar o arduino na placa do meu projeto principal, eu tive a ideia de aproveitar o AtMega328 da placa que não funcionava. Para a minha surpresa, quando eu fui fazer o upload do firmware para a microcontroladora, o mesmo stk500 estava de volta. Foi então que eu me toquei que o problema não estava no hardware da placa, mas no IC da microcontroladora.

Depois de algumas tentativas, achei o problema: o bootloader da microcontroladora estava defeituoso. Fiz uma nova gravação do bootloader, e o problema com stk500 desapareceu de vez. Recoloquei o IC na placa, e voilà, problema resolvido.

Então, abaixo vai uma descrição sucinta de como regravar o bootloader de uma microcontroladora, caso necessário. Vale atentar para o hardware que eu tinha disponível, um Arduino Uno que utiliza a microcontroladora AtMega328p. Se você usa uma outra placa, deve então prestar atenção para fazer as adaptações correspondentes ao seu hadrware na sua configuração.

O que você precisará:

  • uma placa Arduino em funcionamento;
  • o IC no qual você deseja gravar o bootloader;
  • 1 cristal 16Mhz;
  • 2 capacitores 22pF;
  • 1 resistor 10K Ohms;
  • 1 breadboard;
  • diversos jumpers.

 

O que você fará:

a) Faça upload do sketch ‘ArduinoISP’ (que se encontra no menu ‘File-> Examples -> 11.ArduinoISP’);

b) Faça as conexões entre a sua placa Arduino e a microcontroladora na breadboard, conforme o schematic (no schematic, os labels D10, etc, se referem às portas digitais do Arduino que está atuando como gravador);

c) Selecione ‘Arduino/Genuino Uno’ no menu ‘Tools -> Board’;

d) Selecione ‘Arduino as ISP’no menu ‘Tools -> Board’;

e) Execute o comando ‘Tools -> Burn Bootloader’.

 

Pronto! Sua microcontroladora está com o bootloader gravado,  pronta para ser instalada na sua placa e utilizada em seus projetos!

Arduino as ISP