Arduino · 20 novembre 2012 14

Aggiungere il supporto per gli Atmega644P/1284P all’Arduino IDE 1.0.x (aggiornato)

Le versioni 1.0.1 ed 1.0.2 di Arduino introducono il supporto ai microcontrollori Atmega644P/1284P. Di serie, però, l’IDE non permette di utilizzare questi microcontrollori in maniera ottimale: è necessario aggiungere un file per descrivere in modo completo la mappatura dei pin di questi chip nonché anche modificare alcuni file affinché essi siano pienamente supportati in tute le loro funzionalità. Un ulteriore problema è il bootloader. L’Atmega1284P è dotato di 128 kB di Flash e l’attuale Optiboot 4.4 distribuito con l’IDE 1.0.1 non è capace di scrivere oltre i 64 kB.

Ho perciò deciso di creare due mod per poter aggiungere il supporto completo a questi microcontrollori, uno valido per la versone 1.0.1 ed uno per la versione 1.0.2. Ho prelevato il bootloader nella versione 4.5, creato da westfm (l’autore dell’Optiboot) per supportare tutti i 128 kB di Flash del 1284, ed il file delle definizioni dei pin dei microcontrollori dal core Mighty-1284p di maniacbug (che ringrazio per il suo ottimo lavoro), ed ho modificato alcuni file del core Arduino 1.0.1. Ho infine creato delle nuove voci da aggiungere al file boards.txt.

L’ultimo problema da risolvere era un bug HW presente su alcune produzioni dell’Atmega1284P in versione DIP che disturba la comunicazione seriale, necessaria sia per comunicare con altri dispositivi sia per poter programmare il chip usando il bootloader. Cercando su internet ho trovato la soluzione: si tratta di aggiungere un filtro RC all’ingresso del pin RX (piedino fisico n° 14) usando una resistenza da 10 kOhm in serie ed un condensatore da 100 nF in parallelo, posizionati il più vicino possibile al pin del microcontrollore. Trovate lo schema minimale per montare questi chip ed il filtro RC all’interno del pacchetto che potete scaricare in fondo a questo articolo.

Buon divertimento!

 

Aggiornamento:

l’IDE 1.0.2 migliora il supporto ai microcontrollori Atmega644P/1284P ed ora non è più necessario modificare i file del core. Basta quindi scaricarsi il secondo archivio valido per la versione 1.0.2 e scompattare i file nel solito posto.

644P/1284P core for Arduino 1.0.1
644P/1284P core for Arduino 1.0.1
644p_1284p_core_101-001.zip
Version: 101-001
91.0 KiB
2889 Downloads
Dettagli...
644P/1284P core for Arduino 1.0.2/1.0.5
644P/1284P core for Arduino 1.0.2/1.0.5
644p_1284_core_102-003.zip
Version: 102-003
85.4 KiB
3450 Downloads
Dettagli...