Corso di BASCOM 8051 - (Capitolo 2 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. 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 5115 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 calcolatori. Dopo avere effettuato il collegamento potete cominciare le operazioni di programmazione tramite il programma, della Atmel, denominato FLIP (Delfino) che significa "FLexible In system Programming". Di seguito vengono dettagliatamente descritte tutte le operazioni necessarie per una corretta gestione del processo. USO DEL PROGRAMMA FLIP I seguenti passi illustrano la modalità con cui un programma compilato può essere salvato nella FLASH EPROM del Mini Modulo GMM 5115, tramite l apposito programma FLIP. 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 8051. Il FLIP è un programma per PC, realizzato e distribuito gratuitamente dalla ATMEL, che provvede ad interagire con il Boot Loader presente sul Mini Modulo, tramite una delle linee di comunicazione disponibili. Nel caso della GMM 5115 tale linea è quella seriale asincrona in RS 2 3 2, che inevitabilmente deve essere presente anche sul PC. Grazie a questa iterazione il FLIP è in grado di gestire le memorie del modulo, quando questo è già installato nel sistema finale, senza 15
l ausilio di nessun altro dispositivo. Tale modalità di gestione prende il nome di ISP che è l acronimo di In System Programming ovvero programmazione sul sistema. 1) Assicurare che la linea seriale asincrona della GMM 5115 sia bufferata in RS 232, ovvero che il suo dip switch sia configurato come segue: DSW1.2 -> ON DSW1.3 -> ON DSW1.4 -> OFF DSW1.5 -> OFF 2) Individuare la linea seriale asincrona sul PC da usare ed il relativo connettore DB9 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. 16
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 5115 e PC, provvedendo a collegare i due segnali di comunicazione e la massa. In caso di utilizzo del GMM 5115 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 5115 è 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 PUNTO PUNTO in RS 232 con un PC 4) Localizzare il programma FLIP sul CD grifo ricevuto, oppure scaricarlo dal sito ATMEL all indirizzo; http://www.atmel.com/dyn/resources/prod_documents/flip-2_4_6.zip. Sul sito ATMEL sono disponibile diverse versioni del FLIP ed all indirizzo sopra riportato si scarica l ultima versione senza JAVA, in modo da semplificarne l uso per questo corso. 17
5) Installare sul disco rigido del PC il programma FLIP preparato al punto precedente. Anche se non strettamente necessario, durante questa fase si consiglia di non modificare le impostazioni proposte dallo stesso programma d installazione. 6) Chiudere ogni programma che possa usare la linea seriale COMx del PC, collegata al punto 3. 7) Impostare la modalità DEBUG sulla GMM 5115, ovvero posizionare il DSW1.1 in ON. 8) Fornire l alimentazione alla GMM 5115 e verificare che il suo LED di attività DL1 si attivi e rimanga attivo durante l'esecuzione di tutti i successivi punti. 9) Lanciare il programma FLIP installato al punto 5 usando gli appositi collegamenti aggiunti nel menù di avvio e/o sulla scrivania di Windows. 10) Premere il primo pulsante in alto a sinistra, oppure scegliere l opzione Device Select, nella finestra a scorrimento che appare scegliere il microcontrollore T89C5115 e quindi premere OK. 11) Premere il secondo pulsante in alto da sinistra, oppure scegliere l opzione: Settings Communication, e scegliere in sequenza: RS 2 3 2, la seriale Port; COMx del PC collegata al punto 3, Baud: 115200 e quindi premendo il pulsante Connect. A questo punto il FLIP instaura la comunicazione con il Boot Loader del Mini Modulo e Compila una serie di dati nella sua finestra principale. Se la comunicazione non si instaura e dopo alcuni secondi appare la finestra Timeout Error, potete provare nell'ordine ad: abbassare la velocità di comunicazione da 115200 a 19200 Baud; ripetere i punti da 6 fino a qui; verificare la corretta connessione seriale ripetendo i punti da 1 a 3. 12) Premere il nono pulsante in alto da sinistra, oppure scegliere l opzione File Load HEX File, e nella finestra di dialogo che compare selezionare il file HEX da salvare sulla FLASH della GMM 5115. 13) Spuntare tutte le 4 caselle del riquadro Operations Flow, in modo che il FLIP esegua sequenzialmente le quattro operazioni di: cancellazione, verifica di cancellazione, programmazione e verifica di programmazione. 18
14) A questo punto assicurarsi che nella parte destra della finestra principale del FLIP siano presenti le seguenti impostazioni: X2 BSB / EB / SBV Device SSB non spuntato 00 FF FC FF 15) Premere il pulsante Run nella finestra principale per avviare le operazioni ISP impostate. 16) Attendere la fine delle operazioni ISP. Nella barra di stato in basso si può vedere l'operazione in corso assieme ad una barra a scorrimento che indica il suo stato di avanzamento; le caselle di spunto diventano rosse durante l'esecuzione e poi verdi man mano che la rispettiva operazione viene completata. Si deve quindi aspettare che la casella Verify diventi verde. 17) Chiudere il FLIP tramite la X nell angolo in alto a destra della finestra, oppure con l opzione File / Exit. 18) Impostare la modalità RUN sulla GMM 5115, ovvero posizionare il DSW1.1 in OFF e verificare che il LED DL1 si disattivi. 19) A questo punto il nuovo programma compilato è stato salvato in FLASH ed è pronto per l esecuzione. Questa può avvenire o con una riaccensione o con un Reset della GMM 5115. Inizio della Sperimentazione. A questo punto avete tutti gli elementi per poter cominciare una proficua sperimentazione. Sapete come generare un programma; salvato sul un Microcontrollore e verificarne il funzionamento. Nell esempio specifico si dovrà programmare il file ottenuto dalla compilazione (Corso_BASCOM8051_001.HEX) nella FLASH della GMM 5115, così come descritto nel precedente paragrafo, ed una volta riattivato il Mini Modulo in modalità RUN controllare che premendo il tasto T1 si attivi il LED L3. Se questo accade, congratulazioni è stato realizzato il primo programma con successo. Il passo successivo è quello di sperimentare, e studiare, tutti gli altri programmi che sono stati realizzati per darvi la possibilità di intraprendere sempre delle esperienze più articolate e complesse. 19
Esempio.002. Gestione Tasto e BUZZER. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: Operatori aggiunti: Nessuno Schema Elettrico Usato dal Programma. Questo programma esegue una semplice operazione di I/O utilizzando il tasto T1 come ingresso ed il Buzzer BZ1, disponibili sulla GMM TST3, come organo di uscita. 20
- Le linee di I/O interessate sono: - pin 15 dello zoccolo Z1 su GMM TST3 (= pin 9 del GMM 5115) collegato al buzzer BZ1; - pin 12 dello zoccolo Z1 su GMM TST3 (= pin 6 del GMM 5115) collegato ad L2 di colore Rosso tramite R6 ed a 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. 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. - Comunicazione a 19.200 Baud, 8 Bit x chr, 1 Stop bit, parità. 21
Esempio.003. Gestione del LED del Tasto e del BUZZER. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: Operatori aggiunte: Nessuno Schema Elettrico Usato dal Programma. Questo programma esegue delle semplici operazioni di I/O utilizzando il tasto T1 come ingresso ed il Buzzer BZ1 ed il LED L3, disponibili sulla GMM TST3, come organi di uscita. 22
- Le linee di I/O interessate sono: - pin 15 dello zoccolo Z1 su GMM TST3 (= pin 9 del GMM 5115) collegato al buzzer BZ1; - pin 13 dello zoccolo Z1 su GMM TST3 (= pin 7 del GMM 5115) collegato ad L3 di colore Verde tramite R7 ed a tasto T2 Verde; - pin 12 dello zoccolo Z1 su GMM TST3 (= pin 6 del GMM 5115) collegato ad L2 di colore Rosso tramite R6 ed a tasto T1 Rosso. - Il programma gestisce la linea del pin 6 come ingresso e le linee dei pin 9 e 7 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à. 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. - Comunicazione a 19.200 Baud, 8 Bit x chr, 1 Stop bit, parità. 23