Torna alla pagina   HOME        Torna alla pagina  PROGETTI

Controllo di volume e bilanciamento con ST6220, CS3310, e visualizzazione su display LCD

Presento un ulteriore controllo di volume e bilanciamento tra 2 canali audio. Può essere usato come preamplificatore,essendo disaccoppiato dalla sorgente e dal carico tramite operazionali.  Lo schema del progetto è derivato direttamente da un altro mio circuito,ed utilizza quindi gli stessi componenti. In questo circuito, però, è inserito uno stadio che permette di visualizzare su display LCD il livello di   volume. Il display in questione è del tipo a 8 caratteri su una riga.

Descrizione dello schema elettrico 

Il progetto è diviso in 2 schemi: il primo riguarda gli stadi di ingresso ed uscita, la parte di controllo con il microprocessore ed il CS3310. Vediamo che ci sono dei componenti passivi per permettere al processore di lavorare correttamente. I pulsanti, come indicato nello schema, servono per alzare/abbassare il volume,  oltre ad ottenere la funzione di bilanciamento tra i 2 canali. Gli operazionali servono per ottenere un accoppiamento ottimale con la sorgente dalla quale preleviamo il segnale audio, e con il carico, che può essere un qualsiasi stadio di potenza.   La parte audio vera e propria è di fatto gestita dal CS3310, che è  un integrato nato apposta per queste applicazioni, ed ha un campo di lavoro di 127 db  (da -95 a + 31db). Esso viene pilotato da un byte lungo 16bit . I segnali di controllo sono 3 : CS (Circuit Select),  CLK (Clock)  e  DI (Data Input).   Ho volutamente limitato questa escursione tramite software, in modo da avere come attenuazione massima -40db, e come amplificazione massima +6db.   All'accensione, subito dopo il setup del processore, verrà inviato al CS3310 un byte che imposterà il volume di partenza a -40db.   Questo valore verrà poi conservato come valore minimo.  Contemporaneamente verrà impostato sul display il valore "00  00  ", relativo appunto al livello dei 2 canali . Da sottolineare che l'aumento è dato direttamente in db, cioè ogni variazione di una unità corrisponde esattamente e 1 db. Da ciò si deduce che l'amplificazione/attenuazione si ottiene in maniera molto dolce, e non in modo repentino.   Relativamente a questo schema, possiamo vedere che gli operazionali e il CS3310 sono alimentati con tensione duale (+5v e -5v); il solo ST62 è alimentato con tensione singola di 5v.   Dallo schema si può vedere inoltre che il micro è collegato a dei pulsanti (che permettono di agire sul segnale audio),  ed inoltre i pin Pa0 - Pa1 - Pa2 - Pa3 sono collegati a un connettore (P10), insieme alle tensioni di alimentazione e alla massa.

cslcd.jpg (131987 byte)

 

Questo connettore permette il collegamento con il secondo schema. Parlando di questo, bisognerà spendere 2 parole sul display LCD, che qui vediamo collegato in maniera diversa dal solito. Pilotare i display LCD normalmente richiede molte risorse hardware, nel senso che ci sarebbero molti collegamenti da effettuare con ilmicro.   In  effetti, se pilotato con bus a 4 bit, servirebbero almeno 6 pin (4bit + 1RS + 1 E); se pilotato con 8 bit,servirebbero 10 pin (8bit + 1RS + 1E)... e non abbiamo considerato il registro RW !  In pratica, i pin del ST6220 non basterebbero, e bisognerebbe passare al micro più grande. Di seguito ho schematizzato queste 2 configurazioni, per chiarire un pò meglio quanto detto.

lcd4bit.JPG (20288 byte)

 

lcd8bit.JPG (23367 byte)

 

Adottando la soluzione da me proposta, si pilota il display con 4 pin in tutto; ciò richiede ovviamente un software più complicato, ma ci permette di conservare libero qualche pin, per applicazioni future.   In pratica, il display dovrebbe essere pilotato in maniera parallela.  Noi lo facciamo lo stesso, adottando però un piccolo artificio:utilizziamo lo shift register 74164, al quale "spediamo" in maniera seriale il byte che ci interessa visualizzare sul display, e per questo usiamo solo 2 pin. Ci penserà poi lo shift register  a convertire il "dato" da seriale a   parallelo,  così che il display verrà poi pilotato correttamente. Di seguito ho riportato in maniera schematica questa configurazione.

lcd164bit.JPG (23095 byte)

Questo è lo schema elettrico del circuito:

lcd.jpg (35326 byte)

Per ciò che riguarda il display LCD, io ne ho utilizzato uno da 8 caratteri su una riga, equipaggiato con processore HD44780. Questo è uno standard molto diffuso nei display lcd. Si può usare anche un display con maggior numero di caratteri disponibili, ma dovendo visualizzare 2 numeri composti da 2 cifre,quello utilizzato mi pare sufficiente. A ogni modo è sostituibile senza problemi, purchè un altro modello utilizzi lo stesso processore. Una nota particolare è quella di regolare il trimmer V1 per il miglior contrasto. Infatti , se mal regolato, può dare tutti i quadratini dei caratteri completamente neri, o, all'opposto, il display sembra completamente spento. Consiglio di regolarlo a metà corsa, e alla prima accensione tararlo per il miglior contrasto.    Tramite il connettore di cui parlavamo in precedenza, arrivano su questa scheda i 4 pin per pilotare il display.     Inoltre arrivano le tensioni di alimentazione.  La tensione negativa -vcc non è utilizzata, ma l'ho comunque prevista,  perchè alcuni display richiedono una tensione negativa per il contrasto.   Non riporto nel dettaglio le connessioni del display che ho utilizzato , perchè ne esistono molte versioni. 

In linea di massima,  almeno per tutti i display che io ho utilizzato, i pin presenti sono 14 , più altri 2 se il display è del tipo "retroilluminato".   Nel caso di questo mio progetto i pin svolgono le seguenti funzioni:

pin1 =  collegamento a massa

pin2 = +vcc, alimentazione positiva

pin3 = Vo, regola il contrasto del display

pin4 = RS, registro che indica al processore interno se i dati in arrivo devono essere visualizzati o sono una  istruzione di controllo

pin5 = RW (read/write) indica se dobbiamo spedire dei dati verso il display, oppure se dobbiamo leggerli dal display

pin6 = E (Enable)  abilita il display al funzionamento

Gli altri pin , dal 7al 14,  (cioè da  qa a qh   rappresentano il bus di collegamento, di 8 bit

(Nota: nello schema da me riportato,  i pin 4 e 6 ,cioè RS e E, li ho indicati con a0 e a1)

Di seguito un  paio di foto di uno dei prototipi da me realizzati.

cslcd29.JPG (49394 byte) cslcd29a.JPG (55303 byte)

 

A parte i collegamenti con l'alimentazione duale, ci sono i collegamenti con la sorgente e con il finale di potenza, che devono essere effettuati necessariamente con cavetto schermato. I collegamenti con i pulsanti di controllo, invece, possono essere effettuati anche con comune cavetto, anche molto sottile, viste le basse correnti in gioco.  Non è necessario il collegamento con cavo schermato in quanto eventuali disturbi dovuti a lampade al neon, reattori, starter e trasformatori vengono filtrati in maniera software dal programma, e non influiscono quindi sui controlli effettuati dal processore.

Cliccando qui si possono scaricare i file circad per realizzare il progetto. Sono i dati relativi ai miei prototipi: chi vuole può ovviamente disegnare la scheda come vuole, partendo dagli schemi elettrici che sono comunque giusti. Non ho riportato il file .pcb relativo allo stampato della schedina dove è presente il display, dato che, come detto, la piedinatura del display può essere differente .

Di questo progetto posso fornire il micro programmato.  Chi necessita di informazioni e/o aiuto può scrivermi all'indirizzo: ducamax@yahoo.it .