Corso di programmazione per microcontrollori ST626X. Terza Parte 1/3

microcontrollori ST626X programmazione

Microcontrollori ST626X. Nella precedente puntata abbiamo descritto sommariamente l’hardware contenuto nello Starter Kit ST626X. Questo mese ci occupiamo invece del software contenuto nel dischetto da 3 pollici e 1/2 anch’esso contenuto nello Starter Kit. Come sappiamo, per poter lavorare con i micro ST6 dobbiamo poter disporre di un Personal Computer dotato di sistema operativo MS-DOS e di una porta parallela.

Quest’ultima andrà connessa, tramite apposito cavo, al connettore P1 della scheda di programmazione, mentre all’interno del PC andrà caricato il software. Per fare ciò dovremo inserire nel driver floppy del PC il dischetto, digitare “A: INSTALL” e premere invio. Il programma INSTALL.BAT scomprimerà automaticamente i file registrati su dischetto e li copierà nella directory ST626. Ad operazione ultimata avremo creato nell’hard-disk del nostro PC le seguenti sottodirectory: ST626, SIMEX, EXAMPLES, SK626XLI. Esaminiamo una ad una queste directory specificando i file copiati al loro interno. Iniziamo da EXAMPLES che, come si può intuire, contiene una serie di esempi di listati software racchiusi a loro volta da un’altra sottodirectory. Per essere più precisi, sotto ad EXAMPLES abbiamo le seguenti sottodirectory: CALCUL, DATAROM, EEPROM, EXOS, IRTRANS, KEYBOARD, MUSIC, POWER, REGISTER, RS232, SERIAL e TIMING.

Ognuna di esse contiene uno o più esempi applicativi relativi ad uno stesso argomento. Ad esempio, la directory EEPROM contiene tre diversi file (EEPPWS6.ASM, EEPRWS6.ASM e EEPROM.ASM) tutti inerenti, ovviamente, alla memoria EEPROM contenuta nei microcontrollori ST626X. Il primo ci spiega come fare per memorizzare dei dati nella EEPROM, il secondo mostra la procedura di lettura dei dati presenti nella EEPROM, infine il terzo ci mostra come leggere o scrivere un solo dato dalla o nella EEPROM. Non approfondiamo ulteriormente l’argomento esempi, sia per quanto riguarda i file presenti nella directory EXAMPLES, sia per quelli contenuti in SIMEX e in SK626XLI.

Infatti, tutti questi programmi applicativi sono realizzati nel cosiddetto linguaggio “assembler” o linguaggio macchina che per ora non conosciamo. Andiamo invece a vedere cosa c’è nella directory principale denominata ST626: essa contiene tre file prioritari, l’ST626XPG.BAT (il programmatore), l’AST6.EXE (l’assemblatore), il SIMST6.EXE (il simulatore) e diversi file secondari che non sono richiamabili direttamente ma servono per il funzionamento dei principali. Per poter lavorare con i micro della SGSThomson dovremo necessariamente imparare ad utilizzare i tre programmi prioritari sopra citati.

L’ASSEMBLATORE

Sappiamo già che qualsiasi microcontrollore non è in grado di svolgere alcuna attività se prima non viene programmato, ovvero se non vengono registrati al suo interno dei “comandi” che gli dicano cosa deve fare. Questi comandi vengono denominati “istruzioni” e sono propri di ogni microcontrollore. Per far sì che il micro comprenda i comandi bisogna che questi siano innanzitutto appartenenti al proprio set di istruzioni e in secondo luogo espressi in forma numerica. Il set di istruzioni dei nuovi microcontrollori ST6260 e ST6265 è esattamente uguale a quello dei micro delle famiglie inferiori ST621X e ST622X, ed è composto da 31 diverse istruzioni. Ogni singola istruzione può essere rappresentata in formato “opcode” e in questo caso risulta comprensibile alla CPU, oppure in formato “mnemonico” e in questo caso è comprensibile dal programmatore. La rappresentazione mnemonica viene usata dal programmatore per creare il file definito “sorgente”: quest’ultimo viene scritto utilizzando un editatore di testi (ad esempio, l’EDIT.COM del DOS), ha l’estensione “.ASM” e contiene oltre alle istruzioni mnemoniche anche le cosiddette pseudoistruzioni (istruzioni per l’assemblatore o direttive di assemblaggio).

Istruzioni e direttive rappresentano il linguaggio di programmazione che viene definito “linguaggio assembler”. L’assemblatore, in inglese “assembler”, è il programma (AST6.EXE) he converte il linguaggio assembler in formato opcode (codice oggetto). Riepilogando, i comandi che vogliamo impartire al nostro micro vengono scritti, tramite un editatore qualsiasi di testi ASCII, all’interno di un file detto sorgente e avente estensione .ASM. L’assemblatore converte questo file in un altro file denominato “oggetto”, caratterizzato dall’estensione .HEX e contenente in formato INTEL HEX tutti gli opcode dei comandi scritti in linguaggio assembler. Per assemblare un file sorgente dobbiamo seguire la seguente procedura: con il comando CD (Change directory) ci spostiamo all’interno della directory ST626, digitiamo “AST6” seguito dalle opzioni e dal nome del file (ad esempio, PROVA.ASM), infine premiamo il tasto invio.

Il risultato dell’assemblaggio è la creazione del file oggetto (ad esempio, PROVA.HEX). A questo punto, non ci resta che trasferire i comandi, correttamente convertiti in codici comprensibili al micro, all’interno del micro stesso e per fare ciò dovremo procedere alla sua programmazione.

IL PROGRAMMATORE

Il software di programmazione dei nuovi microcontrollori ST6260 e ST6265 è denominato ST626XPG.BAT ed è specifico per la famiglia ST626X, non può quindi essere utilizzato per le famiglie ST621X e ST622X. Il file ST626XPG.BAT è memorizzato all’interno della sottodirectory ST626 e viene definito file “batch” poiché contiene comandi DOS. I comandi contenuti sono: BEG, AFFICHE M=20, KIT626X (software di programmazione vero e proprio dei micro ST626X), END. Non esitiamo ulteriormente e avviamo il programma. Spostiamoci nella directory ST626, digitiamo ST626XPG e premiamo invio. Sul video compare la seguente dicitura “ST626X STARTER KIT, DEVICE SELECTION” seguita dall’elenco dei micro appartenenti alla famiglia ST626X e precisamente: ST62E60, ST62E60B, ST62T60, ST62T60B, ST62E65, ST62E65B, ST62T65, ST62T65B.

In queste sigle, la lettera E indica i micro con memoria programma EPROM, ovvero cancellabili, la lettera T indica i micro OTP, cioè programmabili una sola volta, e il suffisso B identifica i micro dotati di “EPROM CODE Option Byte”. Utilizziamo i tasti e per muoverci all’interno del menu e il tasto per confermare. A questo punto sul video compare il menu principale o di lavoro che è composto da 13 diversi comandi: TYPE, DEV, IOP, LOAD, RAM, FILE, PROG, VERIF, BLANK, OPT, READ, SPACE e EXIT.

ST626X_formato_mnemonico

ST626X_istruzioni_aritmetiche

Usiamo i tasti e per muoverci all’interno del menu di lavoro e il tasto per attivare il comando. Chi già lavora con l’ST6220 Starter Kit può osservare che la maggior parte dei comandi elencati svolge la stessa funzione di quelli presenti nel programmatore di ST621X e ST622X. In ogni caso, riepiloghiamo brevemente il significato di ciascuno di essi partendo dal comando TYPE. Esso consente la selezione del tipo di chip da programmare e, in sostanza, ripropone a monitor la videata di scelta sopra elencata. Il comando DEV visualizza gli indirizzi della memoria programma (massima e disponibile) del micro selezionato, ad esempio se quello in uso è un ST62E60 sul video compare: “DEVICE SETUP DATA, Device name: ST62E60, Device version: EPROM, Minimum memory address: 0000, Maximum memory address: 0FFF, Memory area available from 0000 to 0FF7, Memory area available from 0FFC to 0FFF”. Il comando IOP (Input Output Port) consente di selezionare la porta parallela del PC (LPT1 o LPT2) a cui è collegata la piastra di programmazione.

Il comando LOAD serve per leggere il file oggetto (estensione .HEX) e per copiarlo all’interno del “buffer” di memoria del programmatore. Il comando RAM, che consente di visualizzare e di modificare i dati presenti nel buffer, dispone di altri 6 sottocomandi: ADDR (indirizzo da editare), EDIT( modifica il byte), FILL (riempi i byte con un determinato valore), UP (sposta la videata in su di 128 byte), DOWN (sposta la videata in giù di 128 byte), EXIT (ritorna al menu principale).

mnemonica_microcontrollori_st626x

Il comando FILE serve per copiare il contenuto del buffer in un file .HEX che viene creato sull’hard-disk del PC. Per programmare il chip si usa il comando PROG: selezionandolo a video compare la seguente dicitura “Programming addresses: START=0000 END=0FFF Do you want to modify these addresses [Y/N]”. Digitando Y possiamo programmare parzialmente la memoria del chip, al contrario, rispondendo N programmiamo tutta la memoria del chip.

Il kit è disponibile da Futura Elettronica

Tags:

Leave a Reply