Home
Accesso / Registrazione
 di 

Alla scoperta dei D.S.P. Terza puntata 1/4

processori dsp texas instruments

Per conoscere ed imparare ad utilizzare questi nuovi processori che stanno rivoluzionando il sistema di elaborazione delle informazioni digitali. Una serie di articoli dedicati alla programmazione dei chip TMS320C5X della Texas Instruments, appartenenti ad una delle più flessibili e diffuse famiglie di DSP. Terza puntata. Nella scorsa puntata abbiamo visto quali sono i principali blocchi funzionali disponibili all’interno dei processori di segnali digitali riferendoci, per i particolari, al TMS320C50 della Texas Instruments.

Proseguiamo l’analisi dei D.S.P. con la descrizione dei diversi modi di indirizzamento della memoria per constatare che ne esistono alcuni veramente interessanti. Iniziamo subito il nostro viaggio all’interno del TMS320C50 e vediamo cosa accade al dispositivo durante la fase di accensione. Come prima operazione, il D.S.P. legge lo stato del piedino MP/MC e si predispone per funzionare come microprocessore se tale pin è allo stato logico basso, oppure come microcontrollore se il pin è a +5 volt. Nel primo caso il D.S.P. abilita il blocco di memoria ROM interna, nel secondo caso questa zona viene rimossa e il dispositivo legge i dati da una ROM esterna. L’area appena definita come ROM contiene il programma di inizializzazione del D.S.P, i vari protocolli di comunicazione con il Personal Computer e gli indirizzi sia della memoria che dei vettori di interrupt.

La lettura del pin MP/MC avviene solo nella fase di prima accensione; è tuttavia possibile cambiare il modo di funzionamento anche via software agendo sul terzo bit del registro PMST. All’atto della prima accensione, o dopo un impulso di Reset, la RAM a singolo accesso non è ancora residente all’interno del chip, lo diviene non appena settiamo a uno il bit denominato RAM contenuto nel registro PMST. Anche la zona di DARAM B0 non è abilitata all’accensione, per attivarla occorre portare a 1 il bit CNF, disponibile anch’esso nel registro PMST.

dsp_decodifica_istruzione

Ricapitolando, le prime istruzioni da impartire al D.S.P. devono essere quelle di configurazione, un esempio di sequenza di istruzioni iniziali può essere: OPL #010h,PMST e SETC CNF. La prima istruzione seleziona la SARAM (Single Access Ram), mentre la seconda abilita il blocco B0 della DARAM. Sempre nella fase di reset, tutti i vettori di interrupt vengono collocati nella parte alta della memoria di programma e ad ogni vettore viene dedicato uno spazio di due “Words” in cui scrivere le istruzioni di “salto” alla relativa routine di interrupt. Come default il TMS320C50 memorizza i vettori di interrupt partendo dalla locazione 0 hex. Quest’ultimo indirizzo di partenza dell’area di interrupt può essere spostato in altre posizioni di memoria semplicemente agendo sul registro PMST. L’istruzione adeguata per compiere questo spostamento è la OPL; ad esempio digitando OPL #5800h,PMST carichiamo nella parte alta del PMST, ovvero nell’IPTR, il numero 5800 hex. Da questo momento ogni vettore di interrupt verrà mappato a partire dall’indirizzo di memoria 5800 hex.

LE ISTRUZIONI DI BRANCH

Durante lo svolgimento del programma, se le istruzioni sono sequenziali, il registro PC (Program Counter) viene incrementato di una o di due unità a seconda del tipo di istruzione. Il processore D.S.P. abbandona il normale flusso di processo delle istruzioni se incontra un “Branch” (salto condizionato) o un’istruzione di chiamata ad una subroutine. Nel primo caso nel PC viene trasferito l’indirizzo della locazione di memoria specificata dall’istruzione, mentre per le subroutine il contenuto del PC viene salvato in una zona di memoria RAM denominata Stack. Quando il D.S.P. termina l’esecuzione delle istruzioni contenute nella subroutine il comando di RET forza nel PC il contenuto della prima zona di Stack e il programma può riprendere dal punto in cui si era interrotto.

dsp_condizioni_branch

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 24 visitatori collegati.

Ultimi Commenti