isp
no way to compare when less than two revisions
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Ultima revisione | |||
— | isp [2016/10/03 09:50] – creata admin | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ====== Shield ISP per Arduino ====== | ||
+ | ===== Finalità ===== | ||
+ | |||
+ | Realizzare uno shield Arduino per programmare i microcontrollori ATmega328P " | ||
+ | |||
+ | ===== Il problema da risolvere ===== | ||
+ | |||
+ | Il bootloader è necessario per poter utilizzare i microcontrollori con le schede Arduino. I microcontrollori acquistati separatamente - cioè non montati su una scheda Arduino - non contengono un bootloader e per essere utilizzati devono essere programmati con un programmatore (ad esempio l' | ||
+ | * usando un programmatore | ||
+ | * usando due schede Arduino (una come programmatore una come target) | ||
+ | * usando una scheda ARduino come programmatore e una breadboard con il microcontrollore da programmare | ||
+ | * usando una scheda ARduino come programmatore e uno shield che ospita il microcontrollore da programmare | ||
+ | |||
+ | L' | ||
+ | |||
+ | Una volta scritto il bootloader si può montare il microcontrollore sullo zoccolo di una scheda Arduino e utilizzarlo normalmente (o utilizzare la scheda solo per caricare un programma sul microcontrollore e poi spostarlo un una scheda elettronica custom). | ||
+ | |||
+ | ===== Cosa fa il bootloader ===== | ||
+ | |||
+ | Il bootloader è un programma - o meglio un firmware - contenuto nella memoria del microcontrollore che viene eseguito ogni volta che si alimenta o resetta il microcontrollore. Il bootloader: | ||
+ | * controlla se si sta cercando di programmare il microcontrollore attraverso la porta seriale | ||
+ | * in caso affermativo carica il nuovo programma in memoria e resetta il microcontrollore | ||
+ | * altrimenti esegue il programma già contenuto in memoria | ||
+ | |||
+ | ===== Lo shield ISP ===== | ||
+ | |||
+ | Lo shield si basa sullo schema del [[https:// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | E' sufficiente replicare i collegamenti conoscendo il pinout della scheda Arduino e dell' | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | In particolare occorre collegare: | ||
+ | * l' | ||
+ | * la massa GND ai pin 8 e 22 dello zoccolo | ||
+ | * i due terminali del quarzo ai pin 9 e 10 e a massa | ||
+ | * collegare la resistenza di pull-up al pin 1 dello zoccolo e all' | ||
+ | * pin D10 al pin 1 dello zoccolo | ||
+ | * pin D11, D12, D13 ai pin 17, 18 e 19 dello zoccolo | ||
+ | |||
+ | ===== Layout ===== | ||
+ | |||
+ | In figura un primo tentativo di layout monofaccia. | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Si vede che manca un collegamento (// | ||
+ | |||
+ | ===== Bill of materials ===== | ||
+ | |||
+ | * zoccolo SDIP28 | ||
+ | * quarzo da 16Mhz | ||
+ | * 2 condensatori da 22 pF | ||
+ | * resistenza di pull-up da 10 kΩ | ||
+ | * connettori strip maschio-maschio | ||
+ | |||
+ | |||
+ | |||
+ | ===== Come utilizzare lo shield ===== | ||
+ | |||
+ | Inserire il chip ATmega328P vergine nello zoccolo e montare lo shield sulla scheda Arduino. | ||
+ | |||
+ | Utilizzando il software Arduino: | ||
+ | * caricare nella scheda Arduino utilizzata come programmatore lo sketch // | ||
+ | * selezionare la porta seriale (COM) collegata alla scheda Arduino | ||
+ | * selezionare il tipo di scheda da programmare (Arduino Uno), cioè il tipo di bootloader Arduino che si desidera caricare nel microcontrollore | ||
+ | * selezionare il programmatore (//Arduino as ISP// nel menu // | ||
+ | * scrivere il bootloader sul microcontrollore montato nello shield selezionando //Burn bootloader// | ||
+ | * selezionare nuovamente il programmatore " | ||
+ | |||
+ | ===== Problemi/ | ||
+ | |||
+ | * serve ancora il condensatore da 10 μF tra reset e GND nella scheda Arduino Uno usata come programmatore? | ||
+ | |||
+ | |||
+ | ===== Riferimenti ===== | ||
+ | |||
+ | riferimenti: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | Definizioni: | ||
+ | * ISP //in-system programmer// | ||
+ | * bootloader | ||
+ | * flash | ||
+ | |||
+ | ===== Navigazione ===== | ||
+ | |||
+ | Torna all' |
isp.txt · Ultima modifica: 2020/07/03 15:59 da 127.0.0.1