Home
Accesso / Registrazione
 di 

Il trattamento dei segnali audio con il DSP - 4

 trattamento dei segnali audio con il DSP

Il modo di overflow (“traboccamento” dell’accumulatore quando il risultato di un’ operazione supera la capacità massima dello stesso) viene predisposto in modo normale e viene semplicemente segnalato dal rispettivo bit OV nel registro ST0. PDLY .SET 550h Dichiarazione di costante PDLY che definisce l’INTERVALLO DI RITARDO ovvero, per intenderci, la distanza tra una testina e l’altra. LACC #1000 ... LAR AR7,#1000h Creazione del buffer circolare.

All’interno del nostro TMS esiste un’area RAM utilizzabile sia come zona programma che come zona dati; in particolare, la SARAM (Single Access RAM, RAM ad accesso singolo) che può essere utilizzata come buffer circolare. Nel nostro caso tale buffer risulta allocato a partire dall’indirizzo 1000hex fino a 1FFFhex. Questi indirizzi vengono definiti dagli appositi registri CBSR1 e CBER1. Le istruzioni di accesso al buffer circolare usano uno dei registri ausiliari come puntatore; nel nostro esempio viene utilizzato il registro ausiliario AR7 che, tornando all’esempio del tamburo magnetizzabile, può essere paragonato al motore che fa girare il tamburo. LACC #PDLY .....

riverbero_principio_fisico

Caricamento del registro indice INDX con l’appropriato valore PDLY che diventerà utile in seguito per stabilire il PASSO DI LETTURA nel buffer circolare. Per intenderci, quest’ultimo parametro coincide, nell’esempio del tamburo, alla distanza tra le testine che, per semplicità, viene mantenuta costante. CLRC INTM Attivazione dell’ interrupt.

A questo punto, il DSP esegue “nulla”, difatti continua a girare tra le due etichette (LABEL) WAIT in attesa che arrivi un interrupt dal D/A oppure dal confratello A/D: i dati appaiono alla porta seriale (DXR - DRR) che a sua volta genera l’interrupt vero e proprio, e conduce il DSP ad eseguire le routines RECEIVE o TRANSMIT.

Ciò che invece sostituisce il gruppo di testine magnetiche di registrazione e riproduzione complete dei rispettivi amplificatori ed amenicoli vari, è contenuto nella routine di ricezione (RECEIVE). MAR *, AR7 Ogni volta che un campione del segnale audio si rende disponibile dal convertitore si determina che il motore del tamburo è il registro AR7 cioè quello che si occuperà degli indirizzamenti successivi. LACC DRR, 16 Si legge dalla porta seriale lato ricezione DRR il campione e lo si pone nell’accumulatore che ricordiamo è composto da 32 bit. E’ necessario però posizionarlo nella parte alta, spostandolo di 16 bit. SAR AR7, TEMP Memorizziamo ora la posizione del “motore” AR7 in una locazione temporanea, all’ indirizzo definito in TEMP. ADD *0-, 15

Vi ricordate del PASSO DI LETTURA? Con questa istruzione al contenuto del registro AR7 viene sottratto il valore contenuto in INDX ( *0- ) e poi realizziamo, in un colpo solo, le operazioni di lettura di un campione precedentemente posizionato: “TEMP indirizzi prima”. Quindi: attenuazione di 6dB (,15), cioè il numero viene caricato nell’accumulatore alto, spostato di 15 posti, e ritrovato nell’accumulatore alto come se fosse spostato a destra di un posto ovvero attenuato di 6dB con somma del tutto in accumulatore (ADD). L’ istruzione che segue (OPL #1000h, AR7) ha il compito di confinare AR7 all’interno del buffer evitando perciò che il suo contenuto vada oltre i limiti del buffer stesso. Il programma prosegue ora con altre istruzioni che realizzano la ripetizione del processo finora descritto per le analoghe riflessioni. Si può notare che ogni istruzione successiva di ADD è caratterizzata da uno spostamento via via decrescente (,14 - ,13 - ,12) in modo da provvedere alle rispettive attenuazioni necessarie a generare l’effetto.

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

Ultimi Commenti