Flash the Arduino Bootloader on an ATMega328

by HorizonLab in Circuits > Arduino

1770 Views, 1 Favorites, 0 Comments

Flash the Arduino Bootloader on an ATMega328

FTO9D6UKA9N6IEI.jpeg

Questo tutorial ci permette di caricare il Bootloader nel caso in cui l'ATmega, presente su una bord di nostra creazione, sia vergine; come ad esempio nel caso in cui si vuole realizzare la Drivemall

Materiale

Circuit_Diagramt.png
Circuit_Diagram_Flash_Bootloader.png

- Per caricare il bootloader:

  • Arduino (da utilizare come programmatore)
  • ATMega328p (micro target su cui scrivere il bootloader Arduino)
  • Cristallo al quarzo da 16MHz
  • 2 condensatori ceramici da 22pF 1
  • resistenza da 10Kohm
  • 1 pulsante
  • 1 Breadboard Cavi vari

** Opzionale per alimentare il nuovo arduino **

  • 2 condensatori elettrolitici da 100uF
  • 1 regolatore lineare LM7805

- Per caricare sketch

  • Arduino UNO (senza ATMega) o in alternativa un converitore USB seriale (modulo FTDI) L'arduino su breadboard

Caricare Il Bootloader Sull'ATMega328

Circuit_Diagram_Flash_Bootloader.png
IMG_20200530_123614.jpg
IMG_20200530_124049.jpg
IMG_20200530_124059.jpg
IMG_20200530_124317.jpg
IMG_20200530_124327.jpg
IMG_20200530_124340.jpg
IMG_20200530_124352.jpg
ISPLoad.PNG
ISP_Load_Settings.PNG
Bootloader_Settings.PNG
burn_bootloader.PNG

1) Costruire il nuovo circuito Arduino seguendo lo schematico.

2) (Opzionale) Costruire il circuito di alimentazione.

3) Preparare l'Arduino in modo da poter caricare il bootloader sull'ATMega328.

  • Collegare l'Arduino al PC
  • Aprire l'IDE Arduino e caricare l'esempio ArduinoISP cliccando su File -> Examples -> ArduinoISP o in alternativa usando il fw in allegato.
  • Selezionare la board Arduino in uso nel menù Tools -> Boards.
  • Asssicurarsi che la porta in uso (Tools -> Port) corrisponda a quella dell'Arduino collegata al PC.
  • Caricare lo skecth cliccando sul tast "Load"

4) Collegare la board Arduino al circuito custom seguendo lo schema (Per evitare inconvenienti scollegare l'Arduino dal PC prima di collegarla al circuito custom).

5) Collegare l'Arduino al PC ed avviare l'IDE Arduino.

  • Selezionare quindi come board "Arduino/Genuino Uno" cliccando su "Tools -> Boards -> Arduino/Genuino Uno". Selezionare "Arduino as ISP" clicando su "Tools -> Programmer -> Arduino as ISP".
  • Assicurarsi che la porta corrisponda alla board Arduino collegata al PC, selezionando l'apposita voce in "Tools -> Port".
  • Caricare il bootloader cliccando su "Tools -> Burn Bootloader".

Caricare Uno Sketch Con Un'altra Board Arduino Uno

Circuit_Diagram_Flash_Sketch_Arduino.png
Circuit_Diagramt.png
IMG_20200530_130158.jpg
IMG_20200530_130203.jpg
IMG_20200530_130207.jpg
IMG_20200530_130219.jpg
IMG_20200530_131506.jpg

Per poter caricare uno sketch sull'Arduino breadboard, bisogna usare o un'altra board Arduino UNO o un convertitore USB seriale come il modulo FTDI.

- Arduino UNO come programmatore

Nel caso si voglia usare un altro Arduino UNO per programmare l'Arduino breadboard, bisogna:

  • 1) Rimuovere il microcontrollore dalla board.
  • 2) Collegare la board all'arduino bradboard come indicato nello schematico.
  • 3) Connettere l'Arduino al PC.
  • 4) Scegliere o Creare uno sketch Arduino.
  • 5) Selezionare come board "Arduino/Genuino Uno" cliccando su "Tools -> Boards -> Arduino/Genuino Uno".
  • 6) Selezionare "USBasp" clicando su "Tools -> Programmer -> USBasp".
  • 7) Asssicurarsi che la porta in uso (Tools -> Port) corrisponda a quella dell'Arduino collegata al PC.
  • 8) Cliccare sul pulsante "Load".

-

Convertitore USB Seriale

Circuit_Diagramt.png
IMG_20200530_131522.jpg
IMG_20200530_131526.jpg
IMG_20200530_132320.jpg
IMG_20200530_132351.jpg
IMG_20200530_132524.jpg

Convertitore USB Seriale

Nel caso non si abbia a disposizione un Arduino UNO da usare come programmatore, è possibile usare un convertitore USB seriale. In questo caso bisogna:

  • 1) Collegare il convertitore all'Arduino breadboard nel seguente modo:
    • pin RXD -> pin Tx ATMega328 (pin 3)
    • pin TXD -> pin Rx ATMega328 (pin 2)
    • GND -> GND (pin 8)5v -> Vcc (pin 7)
    • pin DTR -> pin RESET ATMega328 (pin 1)
    • Nel caso il modulo non abbia il pin DTR, è possibile comunque eseguire il caricamento eseguendo un reset manuale.
  • 2) Connettere il modulo FTDI al PC.
  • 3) Scegliere o Creare uno sketch Arduino.
  • 4) Selezionare come board "Arduino/Genuino Uno" cliccando su "Tools -> Boards -> Arduino/Genuino Uno".
  • 5) Selezionare "USBasp" clicando su "Tools -> Programmer -> USBasp".
  • 6) Asssicurarsi che la porta in uso (Tools -> Port) corrisponda a quella dell'Arduino collegata al PC.
  • 7) Cliccare sul pulsante "Load".

ATTENZIONE:

  • Se il modulo FTDI non ha il pin DTR, tenere premuto il tasto di RESET sulla breadboard e poi cliccare sul tasto "Load". Tenere premuto fin quando l'IDE non mostra il messaggio "Uploading…". Appena viene mostrato questo messaggio, rilasciare il pulsante. A qusto punto il caricamento dovrebbe procedere senza problemi.