Corso di BASCOM AVR - ( 2 ) Corso Teorico/Pratico di programmazione in BASCOM AVR. Autore: DAMINO Salvatore. Gestione BZ1 e T1. Dopo avere preso confidenza con la generazione del ns. primo programma, ed averne capito il funzionamento, c'è la necessità di programmare il Microcontrollore per verificarne, praticamente, il suo corretto funzionamento. Questa operazione può essere effettuata collegando la GMM TST3, in cui è stato montato il Mini Modulo GMM AM08 sullo zoccolo Z1, con un PC connesso in seriale tramite il giusto cavo di comunicazione. La comunicazione avviene tramite un protocollo RS 2 3 2. Se avete un PC con la sola linea di comunicazione USB non ci sono problemi in quanto è sufficiente dotarsi di un convertitore che da USB possa comunicare in RS 2 3 2. Dette economiche interfacce si possono acquistare presso un normale negozio di accessori per computer. Dopo avere effettuato il collegamento potete cominciare le operazioni di programmazione tramite il programma, della grifo®, denominato AVR Bootloader grifo®. Di seguito vengono dettagliatamente descritte tutte le operazioni necessarie per una corretta gestione del processo. USO DEL PROGRAMMA AVR Bootloader grifo® I seguenti passi illustrano la modalità con cui un programma compilato può essere salvato nella FLASH EPROM del Mini Modulo GMM AM08, tramite l’apposito programma AVR Bootloader grifo®. A questo scopo è importante premettere che con programma compilato s’intende un file con il codice eseguibile per il Mini Modulo, nel formato HEX Intel, ovvero il file generato direttamente dal compilatore BASCOM AVR. L’AVR Bootloader grifo® è un programma per PC, realizzato e distribuito gratuitamente dalla grifo®. Esso provvede ad interagire con il Bootloader presente sul Mini Modulo, tramite una linea di comunicazione seriale. 18 Nel caso della GMM AM08 tale linea è quella Seriale Asincrona in RS 2 3 2 che, inevitabilmente, dovrà essere presente anche sul PC. Grazie a questa iterazione l’AVR Bootloader grifo® è in grado di gestire le memorie del modulo, quando questo è già installato nel sistema finale, senza l’ausilio di nessun altro dispositivo. Tale modalità di gestione prende il nome di ISP, che è l’acronimo di In System Programm, ovvero Programmazione sul Sistema. Finestra principale AVR Bootloader grifo® 1) Assicurare che la linea seriale asincrona della GMM AM08 sia bufferata in RS 2 3 2, ovvero che il suo dip switch sia configurato come segue: DSW1.1 DSW1.2 DSW1.3 DSW1.4 19 -> -> -> -> ON ON OFF OFF 2 ) Individuare la linea seriale asincrona sul PC da usare ed il relativo connettore D B 9 maschio. Qualora il PC non disponga di una linea seriale RS 2 3 2, provvedere ad aggiungerla, ad esempio usando degli appositi convertitori USB <-> RS 2 3 2. Determinare inoltre il nome o numero della linea seriale (COMx) individuata. A questo scopo si può comodamente usare la finestra: Start | Impostazioni | Pannello di controllo | Sistema | Hardware | Gestione periferiche | Porte (COM e LPT). 3 ) Realizzare il collegamento seriale tra GMM A M 0 8 e PC, provvedendo a collegare i due segnali di comunicazione e la massa. In caso di utilizzo del GMM A M 0 8 montato sulla scheda GMM TST3 per effettuare il collegamento è sufficiente usare una normale prolunga RS 2 3 2, connessa tra il connettore COMx individuato al punto 2 , ed il connettore CN5 della GMM TST3. Viceversa quando la GMM AM08 è usata su una scheda realizzata dall’utente i tre segnali di comunicazione del PC dovranno arrivare direttamente ai pin del Mini Modulo, come descritto nella seguente figura. Esempio di Collegamento RS 232 con un PC 20 4 ) Localizzare il programma AVR Bootloader grifo® sul CD grifo® ricevuto, oppure scaricarlo dal sito all’indirizzo; http://www.grifo.it/PUB/AVR/AVR_BL.ZIP 5 ) Dezippare ed installare sul disco rigido del PC il programma AVR Bootloader grifo® scaricato al punto precedente. Anche se non strettamente necessario, durante questa fase si consiglia di non modificare le impostazioni proposte dallo stesso programma d’installazione. Qualora durante l’installazione vengano visualizzate finestre che informano e/o richiedono, una conferma sulla sostituzione di file del sistema operativo (.DLL) , assicurare che siano mantenute le versioni originali di tali files. 6 ) Chiudere ogni programma che possa usare la linea seriale COMx del PC, collegata al punto 3. 7) Lanciare il programma AVR Bootloader grifo® installato al punto 5 . Salvo diverse impostazioni effettuate durante la stessa installazione si può usare il collegamento creato nel menù di avvio di Windows: Start | Programmi | grifo® | Avr Bootloader grifo®. 8) Chiudere la finestra di presentazione visualizzata premendo l’apposito pulsante Close. 9) A questo punto compare la finestra principale dell’AVR Bootloader grifo® che, in caso di prima esecuzione, risulta priva di settagli. Selezionare la linea di comunicazione seriale del PC collegata al punto 3 , nell’apposita lista Com Port. 10) Spuntare la casella FLASH (Application Code) e dopo scegliere il file da programmare nella FLASH della GMM AM08, ovvero il file con estensione .HEX descritto all’inizio del paragrafo. Dopo aver premuto il relativo pulsante Browse, selezionare il file, tramite l’apposita finestra di dialogo rappresentata. 11) Premere il pulsante Synch to target Bootloader e subito dopo provvedere a togliere e rifornire l’alimentazione del Mini Modulo, oppure a resettarlo. Affinché i due sistemi si sincronizzino è fondamentale che questa riaccensione o reset avvenga entro 5 secondi dalla pressione del pulsante su PC; se questo tempo scade comparirà una finestra con il messaggio No response from target Bootloader e l’utente dovrà chiuderla con OK e poi ritentare la sincronizzazione. 21 Qualora la sincronizzazione fallisse anche dopo altri tentativi è conveniente ricontrollare i punti precedenti ed in particolare quelli del collegamento RS 2 3 2 e della scelta della linea seriale. 12) Quando la sincronizzazione è avvenuta nella finestra di stato in basso compare l’indicazione Sending FLASH file – lines remaining xxxx e la versione del Bootloader eseguito dal Mini Modulo: Target Bootloader Ver. x.x. Mentre la seconda indicazione rimane costante la prima varia decrementando il numero di linee del file HEX, ancora da trasmettere, fino ad azzerarlo. A questo punto il file è stato completamente trasferito al Mini Modulo e, se non sono intervenuti errori, viene rappresentata una finestra con il messaggio FLASH file succesfully downloaded. 13) La durata della trasmissione file varia a seconda della sua lunghezza e della linea di comunicazione disponibile sul PC; ad esempio se la COM usata corrisponde ad un convertitore USB <-> RS 2 3 2 il tempo di trasferimento è mediamente molto più lungo. In ogni caso l’utente deve attendere la condizione descritta al punto precedente oppure, se il tempo diventa estremamente lungo, interrompere la trasmissione con il pulsante Cancel. 14) A questo punto la FLASH è programmata e l’AVR Bootloader grifo® può essere chiuso tramite la X nell’angolo in alto a destra della finestra o l’apposito pulsante Exit. 15) A questo punto il nuovo programma compilato è stato salvato in FLASH ed è pronto per l’esecuzione. Questa avviene automaticamente subito dopo la fine della programmazione e può riavvenire o con una riaccensione o con un Reset della GMM AM08. Inizio della Sperimentazione. A questo punto avete tutti gli elementi per poter cominciare una proficua sperimentazione. Sapete come generare un programma; salvarlo sul Microcontrollore e verificarne il funzionamento. Nell’esempio specifico si dovrà programmare il file ottenuto dalla compilazione (Corso_BASCOMAVR_001.HEX) nella FLASH della GMM AM08 , così come descritto nel precedente paragrafo, ed una volta riattivato il Mini Modulo controllare che premendo il tasto T 1 si attivi il LED L3. Se questo accade, congratulazioni avete realizzato il primo programma con successo. Il passo successivo è quello di sperimentare, e studiare, tutti gli altri programmi che cono stati realizzati per darVi la possibilità di intraprendere sempre delle esperienze più articolate e complesse. 22 Esempio.002. Gestione Tasto e BUZZER. Definizioni aggiunte: Nessuna Dichiarazioni aggiunte: Nessuna Istruzioni aggiunte: Nessuna Operatori aggiunti: Nessuno Schema Elettrico Usato dal Programma. 23 Questo programma esegue una semplice operazione di I/O utilizzando il tasto T 1 come ingresso ed il Buzzer BZ1, disponibili sulla GMM TST3, come organo di uscita. - Le linee di I/O interessate sono: - pin 1 5 dello zoccolo Z1 su GMM TST3 ( = pin 9 del GMM AM08) collegato al Buzzer BZ1; - pin 1 2 dello zoccolo Z1 su GMM TST3 ( = pin 6 del GMM AM08) collegato ad L2 di colore Rosso tramite R6 e tasto T1 Rosso. - Il programma gestisce la linea del pin 6 come ingresso e la linea del pin 9 come uscita. - All'atto dell'accensione il Buzzer tace. - Premendo il tasto T1, oltre ad accendersi il LED L2 in quanto elettricamente collegato, il Buzzer emetterà un suono. - Rilasciando il tasto T1 il BUZZER cesserà di emettere un suono. - Comunicazione a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna parità. Nella pagina precedente potete esaminare lo schema elettrico che si deve realizzare per attuare il descritto Esempio.002. Il programma descritto è funzionalmente analogo al precedente Esempio.001. Esso infatti sostituisce al pilotaggio di L3 il Buzzer BZ1. 24 Esempio.003. Gestione del LED del Tasto e del BUZZER. Definizioni aggiunte: Nessuna Dichiarazioni aggiunte: Nessuna Istruzioni aggiunte: Nessuna Operatori aggiunti: Nessuno Schema Elettrico Usato dal Programma. 25 Questo programma esegue delle semplici operazioni di I/O utilizzando il tasto T 1 come ingresso ed il Buzzer BZ1 più il LED L3, disponibili sulla GMM TST3, come organi di uscita. - Le linee di I/O interessate sono: - pin 1 5 dello zoccolo Z1 su GMM TST3 ( = pin 9 del GMM AM08) collegato al Buzzer BZ1; - pin 1 3 dello zoccolo Z1 su GMM TST3 ( = pin 7 del GMM AM08) collegato ad L3 di colore Verde tramite R7 e tasto T2 Verde; - pin 1 2 dello zoccolo Z1 su GMM TST3 ( = pin 6 del GMM AM08) collegato ad L2 di colore Rosso tramite R6 e tasto T1 Rosso. - Il programma gestisce la linea del pin 6 come ingresso e le linee dei pin 7, 9 come uscite. - All'atto dell'accensione il LED L3 è spento ed il Buzzer tace. - Premendo il tasto T1, oltre ad accendersi il LED L2 in quanto elettricamente collegato, il Buzzer emetterà un suono e si accenderà anche L3. - Rilasciando il tasto T1 il BUZZER cesserà di emettere un suono ed L3 si spegnerà. - Comunicazione a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna parità. Nella pagina precedente potete esaminare lo schema elettrico che si deve realizzare per attuare il descritto Esempio.003. Tale programma è l'unione dell'Esempio.001 e dell'Esempio.002. Esso infatti và a pilotare sia L3 che il Buzzer BZ1. 26