Da Arduino a scheda proprietaria

CONNETTORE SEMPLIFICATO

Il connettore J1 si usa solo in fase di programmazione. Per salvare spazio ed evitare di dotare ogni circuito da programmare di un condensatore da 100nF, conviene frapporre, fra il modulo FTDI FT232RL e la scheda, un piccolo adattatore Femmina/Maschio, realizzato con lo schema di Fig.6:
Fig.6

che dà luogo al semplice layout di Fig.7:

Fig.7

Quindi gli schemi di Figg. 3, 4 e 5 si semplificano come da Figg. 8, 9 e 10 e saranno quelle adottate da qui in poi.

Fig.8

Fig.9 Fig.10

Le modalità di connessione del modulo FTDI FT232RL, dell'adattatore e della scheda proprietaria-base sono mostrate in Fig.11:

Fig.11

IL BOOTLOADER

Tuttavia, per poter programmare il microcontrollore dello schema di Fig.8 con l'Arduino IDE, occorre aver precaricato un piccolo firmware che gestisca l'inserzione del codice inviato dal compilatore di Arduino IDE: il bootloader.
Esistono in commercio ATMEGA328 che hanno già il bootloader precaricato, ma sono generalmente nettamente più costosi, per cui si suggerisce di sacrificare un Arduino Uno (magari un clone che costa meno) per realizzare un programmatore di bootloader, sempre pronto all'uso.
Come realizzare un semplice programmatore di bootloader, è descritto nel progetto: Bootloader per ATMega328.
Una volta che il componente ATMega328 ha ricevuto il bootloader, è pronto ad essere facilmente programmato con l'Arduino IDE.
Lo schema di Fig.8 rappresenta il nucleo minimo, al quale collegare tutti gli accessori e/o servomeccanismi disponibili nella piattaforma Arduino e con il quale utilizzare tutte le librerie su di essa sviluppate.

TEST DELLA SCHEDA

Un semplice codice per testare il funzionamento della scheda di Fig.11 è descritto qui di seguito:

Nessun codice disponibile

Una volta caricato il codice con l'Arduino IDE, va immediatamente selezionato in Strumenti/Monitor seriale, la finestra di comunicazione fra PC e microcontrollore (molto utile, particoalermente in fase di debug): se la scheda è stata montata e programmata regolarmente, invierà un messaggio di inizio test, conterà da 1 a 20 con un intervallo di un secondo e invierà un messaggio di fine test. Il monito seriale deve essere selezionato su baud 9600.
Se sul caricamento si ha un segnale di errore, provare a staccare la connessione USB, uscire dall'Arduino IDE, ricollegarsi con l'USB, rientrare nell'Arduino IDE e rieseguire la programmazione della scheda.

RIUTILIZZAZIONE DEL CONNETTORE J1

Un altro motivo per cui è conveniente adottare la versione semplificata del connettore J1 è la possibilità, eseguita l'operazione di programmazione, di utilizzare il connettore per collegare degli accessori del microcontrollore; D0 e D1 sono infatti, a tutti gli effetti, dei pin di Ingresso/Uscita e, per alcune applicazioni, può essere utile poter eseguire il Reset del microcontrollore. A scopo esemplificativo, in Fig.12 viene mostrato il layout di un piccolo add-on da inserire nel connettore J1, per dotare il sistema di due spie luminose e di un pulsante di Reset manuale, mentre in Fig.13 il risultato:

Fig.12 Fig.13

Per poter utilizzare il connettore di Reset e segnalazione di Fig.13, occorre alimentare la scheda indipendentemente dalla connessione USB. Per questo motivo lo schema di Fig.8 va modificato com mostrato in Fig.14.

Fig.14

che permette di realizzare il layout di Fig.15 ed una versione su scheda millefori mostrata in Fig.16.
Il regolatore può essere il 78L05 (regolatore a 5 Volt) o 78L33 (regolatore a 3.3 Volt), a seconda degli accessori collegati.
(se si collega il modulo di Reset di Fig.13 con le resistenze dei led da 1k Ohm, è meglio che il regolatore sia il 78L33; se si vuole usare il 78L05, meglio utilizzare resistenze da 2.2kOhm).

Fig.15 Fig.16

TEST DEL MODULO DI RESET

Per poter utilizzare il modulo di Reset, come collegato in Fig.16, occorre procedere come segue:

  • collegare la scheda di Fig.16 al modulo FTDI FT232RL tramite adattatore
  • aprire l'Arduino IDE
  • copiare e incollare il codice qui di seguito
  • caricare il codice sul microcontrollore
  • staccare il modulo FTDI FT232RL
  • collegare il modulo di Reset
  • collegare un'alimentazione continua fra 7 e 30 Volt (almeno 15 Watt e attenzione a non invertire VIN con GND)

Nessun codice disponibile

Il microcontrollore, nella sequenza iniziale, accende contemporaneamente sia il led rosso, sia led verde, poi accende alternativamente il led rosso e il led verde; premendo il tasto di reset viene rieseguita la sequenza iniziale.

IL PROGRAMMATORE

Se le schede proprietarie da realizzare saranno comunque dotate di connettore 28DIP (per esempio per poter eseguire aggiornamenti di software o sostituzione di componenti difettosi) si può evitare di cablare il connettore J1 di Fig.3, montando un ATMega328 già programmato.
Può anche essere considerato di saldare il componente sulla scheda proprietaria dopo averlo programmato: anche in questo caso il connettore J1 può essere omesso.
In entrambi i casi, occorre costruire un programmatore che è esattamente lo schema di Fig.8 dove al posto dell'ATMega328 va montato un connettore 28DIP.
Il risultato è visibile in Fig.17.

Fig.17

Per eseguire una programmazione con la scheda di Fig.17, procedere come segue:

  • montare sulla scheda un ATMEGA328, al quale sia già stato precaricato il bootloader
  • collegarsi alla scheda con il modulo FTDI FT232RL
  • aprire l'Arduino IDE
  • caricare il codice sul microcontrollore
  • smontare l'ATMEGA328 e montarlo sulla scheda di funzionamento (con zoccolatura o saldatura)