Condividi
Andare in basso
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Scheda PCM6432 per TDA1541

il 8/7/2019, 14:55
Ovvero, come far funzionare un TDA1541 fino a 192kHz.

Lo scopo di questo argomento è quello di illustrare una nuova scheda, che chiameremo PCM6432, da collegare tra la scheda HDAC e il ricevitore I2S (di solito, una scheda USB).

Scheda PCM6432 per TDA1541 48230714147_1fd3f9ed66_b_d

Chi ha realizzato l'HDAC l'ha collegato ad una scheda USB (una XMOS nel 99% dei casi) di provenienza generica. Esempi tipici di schede USB sono quelle prodotte da DIYINHK (ad esempio questa), oppure la WaveIO (questa).

Queste schede USB hanno in comune il fatto di uscire con un segnale che segue il protocollo I2S, in particolare con frequenza del bit clock (BCK) di 64*fs.

Per capire bene cosa fa la scheda PCM6432, bisogna prima capire il protocollo I2S.

I2S, QUESTO SCONOSCIUTO
Del protocollo I2S se ne parla spesso nei circoli audio, in quanto si tratta del protocollo utilizzato per trasferire audio digitale tra chip o schede all'interno dei vari apparecchi come cd player, lettori di rete, dac. Ovunque ci sia audio digitale, è presente al 99,99% il protocollo I2S.

Tale protocollo nasce alla fine degli anni '70 del secolo scorso, ma viene consolidato solo nei primi anni '80 dalla Philips, che lo usa nei suoi lettori CD. In particolare, per far parlare il filtro digitale SAA7220 con il dac TDA1541. Nel corso degli anni tale protocollo è diventato uno standard di fatto, per via della sua potenza e flessibilità. Il funzionamento può essere descritto in questo modo: ogni campione audio è composto da n bit, ad esempio 32. I bit viaggiano su un solo filo, temporalmente uno dopo l'altro. Passa prima il canale sinistro e poi il destro. Considerando un flusso stereo, abbiamo quindi in totale 32 bit moltiplicato 2 canali, ovvero 64 bit per ogni campione.

Scheda PCM6432 per TDA1541 48230613516_b2d774c18c_o_d

Nella figura qui sopra, i bit sono quelli sulla riga "SDIN/SDOUT". In base al verso del segnale i bit possono essere in uscita o in ingresso. In un DAC che riceve, la linea si chiamerà SDIN, viceversa in una scheda USB che trasmette, la linea si chiamerà SDOUT.

Dal momento che chi riceve non sa a priori di quanti bit è costituito il campione, serve un altro segnale. Nel diagramma si tratta della linea WCLK, che sta per word clock. Il WCLK (abbreviato WCK) è basso durante il passaggio dei bit del canale sinistro, ed è alto durante i bit del canale destro. Ciò è abbastanza evidente nel diagramma. E' chiaro che tale segnale definisce anche di quanti bit è composto il campione.

Per ogni ciclo del WCK abbiamo un campione audio (considerando un singolo canale), e quindi il WCK definisce la frequenza di campionamento, che abbreviamo con fs. Se stiamo ricevendo un brano campionato a 44,1kHz, il WCK cambierà stato 44.100 volte al secondo. Quanti bit passeranno in un secondo di riproduzione? Dipende da quanti bit è composto ciascun campione. Se il campione è da 32 bit e abbiamo due canali da ricevere, ovvero 64 bit, in un secondo abbiamo 44.100 * 64 = 2.822.400 bit.

Ed ecco il primo numero magico: 2.822.400 che abbreviato significa 2,8 MHz.

Tale frequenza di 2,8 MHz è quella del bit clock (BCK), che è poi la terza linea che ci serve per il protocollo I2S.

Ricapitolando, l'I2S è composto da 3 linee:

- SD (linea dati)
- WCK (word clock, o fs)
- BCK (bit clock)

I parametri necessari per definire un flusso I2S sono la frequenza di campionamento, WCK, il numero di bit per campione (o parola), e il numero di canali. Conoscendo questi tre parametri, si ricava facilmente la frequenza del BCK che è data nbit * nch * fs, dove nbit = lunghezza di parola, nch = numero di canali (di solito 2, sinistro e destro), fs = frequenza di campionamento.

Nello standard ormai consolidato la lunghezza di parola adottata per l'I2S è 32. Ovvero, ciascun campione è considerato da 32 bit, anche quando in realtà la sorgente ha una risoluzione inferiore. Se viene letto un brano da CD, che come sappiamo è composto da parole lunghe 16 bit, il flusso I2S sarà comunque da 32 bit con i bit meno significativi settati a zero. Ciò era già valido anche nei lettori degli anni '80, infatti dall'uscita del filtro digitale SAA7220 sulla linea del BCK si rileva una frequenza di 2,8 MHz. In tal caso si dice che il flusso I2S è da 64*fs (ricordate sempre che sono 2 canali che viaggiano).

(segue)


Ultima modifica di bandAlex il 9/7/2019, 10:17, modificato 1 volta
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 8/7/2019, 19:29
Il protocollo I2S prevede quindi 2 clock: uno per incamerare i bit (BCK) e uno per indicare la cadenza sinistro-destro (WCK). Quest'ultimo rappresenta anche la frequenza di campionamento.

Spesso i segnali dell'I2S vengono battezzati con sigle diverse. Qui sotto ad esempio il BCK diventa SCK e il WCK diventa WS (che sta per word select):

Scheda PCM6432 per TDA1541 48233189857_8fc9b16dc9_o_d

Qui si nota bene che il bit presente su SD viene acquisito durante il fronte negativo (cioè la discesa da alto a basso) del BCK. La stessa cosa è valida per il WCK.

Un'altra cosa importante che si nota è che i bit entrano dal più significativo (MSB) al meno significativo (LSB). I tecnici della Philips pensarono che ciò avrebbe reso il protocollo ancora più universale: in questo modo al ricevitore non importa sapere di quanti bit è composta la parola, ma incamera quelli che può gestire e ignora i rimanenti. Stessa cosa per chi trasmette, che non deve preoccuparsi di sapere quanti bit può gestire il ricevitore. Capito che furboni quelli della Philips?

Un'altro dettaglio importante è che il campione successivo è ritardato di un ciclo di BCK. O meglio, traslato. Ciò da tempo al ricevitore (che di solito è un dac) di memorizzare il dato e di presentarlo all'uscita.

Scheda PCM6432 per TDA1541 48233411271_8f11555e8b_o_d

Qui sopra ho evidenziato tale "ritardo" in rosso.

Bene, ora che siete esperti di I2S, possiamo passare all'analisi del problema: far funzionare un TDA1541 fino a 192kHz di frequenza di campionamento.

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 9/7/2019, 00:53
L'ENTITA' DEL PROBLEMA
Perchè il TDA1541 non può riprodurre, neanche in modalità NOS, ovvero senza oversampling, brani con fs superiore a 96kHz? La risposta a questa domanda è scritta nel datasheet della Philips:

Scheda PCM6432 per TDA1541 48235623722_f5dc9c7ee0_o_d

Quelli indicati nel datasheet sono dei limiti invalicabili, oltre i quali il chip smette di funzionare. In particolare, ho evidenziato quello che interessa a noi, il limite relativo al BCK di 6 MHz.

Facendo due conti, si vede subito che una fs max di 96kHz è proprio dovuta a questo muro di 6 MHz sul BCK. Infatti, 64 * 96000 = 6,1 MHz. Per riprodurre un brano a 192kHz, il BCK deve poter arrivare a 64 * 192000 = 12.288.000 Hz, ovvero 12,3 MHz.

Apparentemente, sembra un problema insolubile. In realtà, il TDA1541 nasconde dentro di se' una possibile soluzione. Si tratta di una modalità di funzionamento ereditata dal suo predecessore, il TDA1540, con la quale i dati del canale sinistro e destro viaggiano su linee separate e vengono elaborati simultaneamente. Si tratta del conosciuto "simultaneous mode", che raddoppia la linea dati e consente così di dimezzare la frequenza del BCK. Originariamente nel TDA1540 era usata perchè il protocollo I2S non era ancora finalizzato, ma anche perchè le elettroniche erano troppo lente per arrivare a frequenze di funzionamento vicine alla decina di megahertz. Nel TDA1541 tale modalità fu mantenuta per compatibilità. E' chiaro che passando al simultaneous mode non è possibile entrare nel chip con l'I2S ma occorre usare un altro protocollo non standard, e come formato il complemento a due. Si tratta di qualcosa che fa diventare il chip praticamente inutilizzabile senza una elaborata elettronica aggiuntiva, visto che per farlo funzionare in tale modalità le normali schede USB o SPDIF non vanno più bene.

Il simultaneous mode che io sappia è stato usato finora soltanto da una piccola azienda, la Audial di Belgrado. Il loro prodotto si basa sull'utilizzo di un DSP e tutto il lavoro è svolto quindi via software, tramite apposita programmazione del firmware del chip XMOS.

In sostanza, usando il simultaneous mode si dimezza la frequenza del BCK (e del system clock, che in quella modalità è un segnale obbligatorio).  Ma, come ho accennato prima, esiste anche un altro metodo per dimezzare la frequenza del BCK, che poi è il metodo usato dalla mia scheda PCM6432. Il nome della scheda non è casuale, e svela in parte il sistema usato per raggiungere l'obiettivo: dimezzare i bit in transito.

QUANDO I BIT SONO TROPPI
Anche se ridurre il numero di bit potrebbe spaventare la maggior parte degli audiofili (che in genere tendono a preferire più bit e più kilohertz), in questo caso si tratta della classica mano santa che porta un sacco di vantaggi. Come ho scritto prima infatti il protocollo I2S veicola 32 bit per canale come standard, ma questo non vuol dire che sia obbligatorio. Se si ha un dac a 16 bit come il TDA1541 è del tutto inutile usare l'I2S con parole di 32 bit, perchè qualunque sia il numero di bit in ingresso, il TDA1541 ignorerà tutti i bit successivi al n. 16. Inoltre, i 32 bit per canale ci obbligano a usare per il BCK una frequenza che è il doppio di quella che sarebbe sufficiente, rendendo irraggiungibile una fs di 192kHz.

Ci sono anche altri vantaggi a usare per il BCK una frequenza più bassa (la metà), di cui parleremo in seguito.

Per il momento, mi preme sottolineare che, per quanto ne sappia, tale metodologia per sfruttare al massimo un TDA1541 non è mai stata usata, e quindi noi siamo i primi ad aver sviluppato un sistema concettualmente abbastanza semplice da poter essere realizzato con l'utilizzo di comuni porte logiche e shift register, ovvero del tutto in hardware, senza l'utilizzo di DSP e di programmazione software.

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 9/7/2019, 11:30
Ho modificato il titolo dell'argomento in "Scheda PCM6432 per TDA1541". Questa schedina infatti può essere usata con qualunque scheda dac basata sul TDA1541 e che ha l'ingresso in I2S. Basta inserire la PCM6432 tra una scheda USB (o SPDIF) e la scheda dac, ed et-voilà: il TDA1541 funzionerà fino a 192kHz di fs.

Ma che cambiamenti sonori introduce questa scheda? La scheda di per se' è assolutamente trasparente, nel senso che non modifica in alcun modo il flusso I2S, ma semplicemente lo trasforma da 64*fs (come è normalmente) a 32*fs, dimezzando la frequenza del BCK.

Come dicevo nel post precedente, ci sono dei vantaggi a dimezzare la frequenza del BCK, e questo in effetti comporta delle variazioni sonore percepibili. Come è possibile che lo stesso identico flusso digitale possa avere dei risultati diversi in base alla frequenza del BCK?

Ci sono diverse cose che possono influire sulla qualità della conversione D/A, e una di queste è il jitter.

Scheda PCM6432 per TDA1541 48239100907_a2abe4e1cc_z_d
Il jitter è la deviazione di un segnale periodico dal suo ideale andamento temporale, e si misura in frazioni di secondo, di solito pS (pico secondi, millesimi di miliardesimo di secondo). Il jitter è introdotto dalle linee di trasmissione, dai cavetti spdif (non ottici), dai ricevitori e trasmettitori, e dagli stessi convertitori D/A (e A/D, ovviamente). E' particolarmente rilevante nei segnali di clock che regolano il timing dei chip digitali.

In particolare il TDA1541 è sensibile al jitter sulla linea BCK, in quanto l'elettronica interna al chip converte il dato in analogico e lo presenta all'uscita nel momento della transizione sul fronte negativo dell'ultimo impulso di BCK del campione.

Ad ogni impulso del BCK i bit del flusso audio vengono memorizzati all'interno di uno shift register del TDA1541, e questo avviene per gli impulsi dal n. 1 al n. 16. All'impulso n. 16, i bit accumulati nel registro vengono convertiti in analogico e sull'uscita avremo il corrispondente valore di corrente del campione audio. E' questa la fase critica dove il timing del BCK è fondamentale, in quanto uno spostamento temporale del campione può generare una sorta di modulazione di fase che si ripercuote sulla qualità di ascolto.

Un'immagine vale più di mille parole:

Scheda PCM6432 per TDA1541 48239040756_dac167c568_z_d

Il jitter è normalmente presente su qualunque segnale digitale, e di solito non rappresenta un problema. Nelle telecomunicazioni il jitter è importante in quanto se supera una certa soglia il ricevitore può interpretare il dato in maniera errata, e ciò fa aumentare considerevolmente il tasso di errore della linea e bloccarne il funzionamento. Nell'audio la questione è più controversa, in quanto le frequenze in gioco sono molto più basse. Di norma, il segnale digitale più veloce in un dac o in un lettore è il master clock, che di solito è sui 20 MHz. Nelle telecomunicazioni si arriva ai GHz, e quindi tassi di jitter che per l'audio sono insignificanti negli apparati telecom sono devastanti.

Dagli esperimenti fatti da vari ricercatori, in campo audio il jitter che può affliggere la conversione D/A è del tutto inudibile fino a circa 200 pS, ma questo valore è controverso, in quanto gli effetti sono sottili e difficilmente quantificabili. Da misure effettuate su vari apparecchi commerciali, si è visto che il jitter varia da qualche decina di pS, a qualche decina di nS. Notate il cambio di scala del limite più alto: nano-secondi, ovvero mille volte più grande.

Quando si parla di jitter, la cosa fondamentale da capire è che esso è del tutto innocuo durante tutto il percorso del segnale digitale: diventa importante solo nel momento della conversione, ovvero nel punto finale del tragitto. Subito prima della conversione in analogico, ovvero nel momento critico, si possono adottare degli accorgimenti in grado di "ripulire" il segnale digitale dal jitter (ma non di eliminarlo completamente), in modo da ridurne gli effetti.

(segue)


Ultima modifica di bandAlex il 10/7/2019, 22:37, modificato 1 volta
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 9/7/2019, 13:55
A prescindere dagli eventuali accorgimenti usati per abbattere il jitter, è comunque valida la regola generale che:

- più basse sono le frequenze in gioco, meno problematico sarà il jitter

Questa regola è abbastanza intuitiva in quanto al diminuire della frequenza aumenta la lunghezza d'onda del segnale (sono una il reciproco dell'altra), e quindi il rapporto tra jitter e lunghezza d'onda diminuisce. In pratica, al diminuire della frequenza il jitter rappresenta una porzione sempre più piccola di variazione rispetto al segnale.

E quindi, una scheda come la PCM6432, dimezzando la frequenza del BCK e a parità di jitter, non può che "far bene" al TDA1541. Ciò va contro la credenza comune degli audiofili, dove a frequenze più alte si associa una qualità più alta di riproduzione, mentre in realtà non sempre è così. Tale convinzione deriva dalla gara all'oversampling fatta dai costruttori negli anni '80 e '90, quando dietro in effetti c'era una motivazione tecnica, quella di allontanare il più possibile le immagini indesiderate presenti subito dopo i 22kHz e dovute a una frequenza di campionamento del CD decisamente al limite della decenza. Se in origine si fosse adottata una frequenza leggermente più alta, 60kHz, o meglio 88kHz, è probabile che non avremmo mai sentito parlare di oversampling e di filtro digitale. Sarebbe bastato un semplice filtro analogico a bassa pendenza dopo il dac, senza rotazioni di fase eccessive e una risposta temporale quasi perfetta.

Invece la storia è andata diversamente. A causa della scelta errata in partenza da parte di Philips/Sony (dovuta a motivi economici e per non aumentare troppo la dimensione fisica del disco), si passò all'oversampling 4x, poi all'8x, e infine al 16x, e ogni aumento della frequenza era visto come un miglioramento tecnologico da parte degli utenti. L'oversampling 4x era ampiamente sufficiente ad allontanare i residui della conversione ben oltre la banda audio, ma il marketing richiedeva continue novità. Anche perchè, in tutta franchezza, il digitale in quegli anni non è che suonasse poi così bene, e gli audiofili erano alla ricerca costante del sacro graal che migliorasse le cose. Invece, ci sono voluti quasi vent'anni prima del diradarsi della nebbia creata da regole commerciali senza senso.

Ho un po' divagato...

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 9/7/2019, 15:04
Scheda PCM6432 per TDA1541 48240227506_34dcb9b845_o_d
Schema elettrico della scheda PCM6432
flibix
flibix
Golden Ears
Golden Ears
Messaggi : 235
Data d'iscrizione : 25.08.11

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 9/7/2019, 23:22
Sono quasi emozionato nel leggerti, bravo Alex sempre chiaro, semplice e concreto. 
Dai sempre a tutti la possibilità di capire di che cosa si sta parlando e del perchè. con grande umiltà.
Se non è talento questo.....
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 10/7/2019, 14:21
@flibix ha scritto:Sono quasi emozionato nel leggerti, bravo Alex sempre chiaro, semplice e concreto. 
Dai sempre a tutti la possibilità di capire di che cosa si sta parlando e del perchè. con grande umiltà.
Se non è talento questo.....

Grazie flibix!
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 10/7/2019, 15:34
CHIRURGIA APPLICATA ALL'I2S
Intervenire su uno stream digitale, e per giunta in tempo reale, non è cosa semplice senza ricorrere a metodologie moderne come DSP e firmware associato. Ma il costo in termini di sviluppo di una piattaforma DSP non si giustificherebbe in questo caso, visto che l'obiettivo è alla portata di una manciata di chip comunissimi che costano pochi centesimi.

Dal punto di vista concettuale si tratta di trasformare un flusso con BCK = 64 * fs in uno con BCK = 32 * fs. Naturalmente non è possibile semplicemente sostituire il BCK dimezzandone la frequenza: deve essere rispettato il sincronismo con gli altri due segnali. E quindi se fBCK = fBCK / 2, a parità di WCK, la larghezza degli impulsi della linea SD deve raddoppiare, come si vede nel diagramma riportato. Nell'esempio si ipotizza un flusso iniziale con parole di 4 bit, con il valore uguale per entrambi i canali in binario di 1 0 0 0. A trasformazione avvenuta, saranno scartati i 2 bit meno significativi (ovvero dimezziamo il n. di bit) con frequenza del BCK dimezzata:

Scheda PCM6432 per TDA1541 48249006441_ec768856ec_o_d

Il metodo per ottenere questo risultato è il seguente: durante l'arrivo dei bit del canale sinistro all'uscita si mandano i bit del canale destro precedentemente memorizzati in uno shift register, però a frequenza dimezzata. Quando invece arrivano i bit del canale destro, questi si accumulano a velocità normale in uno shift register, e contemporaneamente si mandano all'uscita a velocità dimezzata quelli del canale sinistro precedentemente accumulati.

Quindi principalmente si hanno due shift register a 16 bit, uno per canale. Sono gli AHC164 nei quadrati B e C in basso a destra nello schema. Ci sono 4 chip, in quanto non ci sono registri a 16 bit, ma occorre usarne 2 da 8 in cascata per ciascun canale.

Scheda PCM6432 per TDA1541 48249297562_c6dc14e121_o_d

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 11/7/2019, 12:12
BLOCCO B e C
Quindi i blocchi B e C sono due memorie FIFO da 16 bit, una per il canale sinistro e una per il destro. La memoria FIFO può essere paragonata ad una coda, dove i bit si accumulano uno dietro l'altro ed escono nella stessa sequenza con cui sono entrati. Nel nostro caso, le velocità di ingresso e uscita per lo stesso blocco coincidono, in quanto il clock è unico, e sono determinate dal

BLOCCO E
che commuta due frequenze di clock: una corrispondente al BCK originale del flusso I2S, e l'altra che è la metà, BCK/2. In base allo stato del WCK (sinistro/destro), il blocco E invia a B e C il clock, alternandolo tra BCK e BCK/2. Mentre, ad esempio, B legge i bit in ingresso a frequenza BCK, C manda in uscita i bit a frequenza BCK/2 e viceversa.

BLOCCO F
Tale blocco è sostanzialmente un commutatore con 2 ingressi e una sola uscita. I bit provenienti da B e C passano attraverso il blocco F, che seleziona quale dei due blocchi deve andare in uscita, in base allo stato del WCK. I bit provenienti dall'altro blocco sono ignorati. Ovviamente, tutto ciò è fatto in modo che in uscita da F ci sia sempre il flusso con frequenza BCK/2.

BLOCCO D
E' un flip-flop di tipo D, configurato per funzionare come divisore di frequenza. Al suo ingresso entra il BCK e alla sua uscita si ha BCK/2. E' coadiuvato dalla importante presenza di IC7, di cui parleremo dopo.

BLOCCO A
E' un'altra FIFO, serve a ritardare il WCK di 16 bit clock. La presenza di questo blocco è necessaria, in quanto a noi serve mantenere, del flusso I2S, solo i bit più significativi. Se non ci fosse questa FIFO, la scheda funzionerebbe lo stesso, ma in uscita ci ritroveremmo con i bit MENO significativi del flusso, con risultati cacofonici.

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 11/7/2019, 14:20
Mancano da vedere due parti, quella relativa a IC10/IC17, e quella relativa a IC19.

IC19 è uno stabilizzatore LDO, che alimenta tutto il circuito della scheda. Dal connettore di uscita K1 (quello che è collegato all'HDAC) arriva sul piedino 1 la tensione di +5V che alimenta la scheda. Provvidenzialmente, sull'HDAC era già prevista questa cosa (bisogna cortocircuitare un ponticello a fianco del connettore di ingresso) e quindi non è stato necessario pensare ad una alimentazione esterna.

ALIMENTAZIONE
L'integrato IC19 è un TC1185 con bassissima tensione di drop-out, in package SOT23-5, quindi piccolissimo. Esso fornisce a tutti gli IC la necessaria tensione di alimentazione di 3.3V. Tutta la logica è a 3.3V, in modo da contenere il ground-bounce. Sempre per limitare la propagazione dei disturbi generati dagli stessi IC, e così contenere il jitter, la linea di alimentazione a 3.3V è stata suddivisa in gruppi, e ogni gruppo è isolato da una ferrite bead e un condensatore di bypass ceramico da 1uF.

Naturalmente, se qualcuno dovesse usare la PCM6432 con altri dac diversi dall'HDAC, può alimentare la scheda con una tensione di +5V sul piedino 1 del connettore K1 prelevandola da altre fonti. La richiesta di corrente è irrisoria.

IC10/IC17 servono a ritardare il segnale SD in uscita (DATA) di un BCK, per riallinearlo correttamente.

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 11/7/2019, 22:17
Ho lasciato per ultimo IC7, in quanto è la parte più complicata da descrivere. Poichè la presenza di IC7 è strettamente legata a quella di IC20, dobbiamo prima vedere come funziona quest'ultimo.

Scheda PCM6432 per TDA1541 48259393442_6486399409_d

Il  funzionamento di un flip-flop di tipo D è il seguente: ad ogni impulso di clock (CK) il dato presente all'ingresso D viene memorizzato sull'uscita Q. Di uscite ce ne sono due, Q e Q negata (quella con il trattino sopra la Q, che qui chiamiamo !Q). Q negata riporta il valore opposto a Q, quindi se Q è alta !Q è bassa e viceversa.

Supponiamo che all'inizio Q sia bassa (cioè di valore 0), e quindi che !Q sia alta. Dallo schema si vede che !Q è collegata all'ingresso D. Ciò vuol dire che al primo impulso di clock il valore di D, che è alto cioè 1, verrà passato sull'uscita Q. Di conseguenza ora su Q avremo 1 e su !Q avremo 0. Al successivo impulso di clock il valore di D, che ora è 0,  passerà su Q, e quindi !Q diventerà 1. Ad ogni impulso su CK, le uscite Q e !Q si scambiano lo stato, e praticamente ciò vuol dire dividere per due la frequenza all'ingresso di CK. Poichè su CK arriva il BCK (trascuriamo la presenza di IC3 che ora non è importante), su Q avremo BCK/2.

Scheda PCM6432 per TDA1541 48259480281_e1de9b0235_z_d

Dal diagramma in alto si vede che BCK e Q (cioè BCK/2) sono in fase. Ciò è importante per il funzionamento del circuito. Il fatto che BCK e BCK/2 debbano essere in fase però comporta un serio problema. Che succede se all'inizio del ciclo l'uscita Q di IC20 invece di stare al valore 0 si trova già al valore 1? Vediamo il diagramma:

Scheda PCM6432 per TDA1541 48259528441_570de21352_z_d

Come si vede, se l'uscita Q di IC20 parte "col piede sbagliato", BCK e BCK/2 saranno in opposizione di fase tra loro. Normalmente, per un divisore di frequenza ciò non ha importanza ma nel nostro caso ciò ha conseguenze gravissime. Dal momento che il BCK/2 è parte dell'I2S in uscita dalla scheda, al dac arriverà un flusso I2S compromesso, con la polarità del bit clock errata. Non solo, poichè il BCK/2 alimenta per metà del tempo il clock dei blocchi B e C, che sono le FIFO che immagazzinano i dati per poi rilasciarli in tempo successivo, anche il timing della linea DATA dell'I2S in uscita sarà compromesso. Un macello.

E' quindi fondamentale che IC20 sia correttamente in fase con il BCK.

Un clock sull'orlo di una crisi di nervi
Che probabilità c'è che si verifichi questa situazione distruttiva? Affidarsi al fatto che all'accensione della scheda IC20 si resetti da solo e la sua uscita Q sia a zero sarebbe già un azzardo, ma basterebbe un semplice reset all'accensione per riportare le cose a posto. Purtroppo, ciò non sarebbe sufficiente. Infatti, che succede se il flusso I2S si interrompe perchè l'utente ha cambiato brano e la frequenza di campionamento è cambiata? Succede che il timing proveniente dalla scheda USB (o SPDIF) si resetta, mentre IC20 memorizzerebbe comunque l'ultimo stato in cui si è fermato, e quindi ripartire con Q al valore di 1 invece di zero. Si può calcolare la probabilità di tale evenienza: poichè gli stati possibili di Q sono due, abbiamo il 50% di probabilità. Quindi, passando da un brano a 96kHz a uno, diciamo, di 44.1kHz, potrebbe succedere che invece del brano che desiderate sentiate solo del rumore bianco. Oppure un orco ululante entrare nelle vostre orecchie. Non è una bella cosa, io ne so qualcosa.

Per fortuna c'è lui, IC7
La cosa peggiore che può capitare quando si prova un nuovo circuito, è che accada qualcosa di inaspettato. Qualcosa per cui non sei preparato e che mette alla prova il tuo sistema nervoso. Bisogna avere una grande forza d'animo, perchè inizialmente c'è lo scoramento più assoluto. Cinque minuti prima tutto funzionava, e ora... come è possibile?

Dopo aver passato quasi due giorni interi di fronte all'oscilloscopio, stavo per alzare bandiera bianca. Poi, staccando e riattaccando il cavetto proveniente dalla scheda USB, mi si è accesa la lampadina: il solo fatto di staccare/attaccare faceva ritornare le cose a posto. E allora voleva dire che il circuito era ok, ed era una questione di sincronizzazione. L'unico segnale critico da questo punto di vista era il BCK/2, e ho cominciato a ragionare su una possibile soluzione.

Una possibilità era quella di resettare IC20 ad ogni nuovo ciclo del WCK. Anche se probabilmente ciò avrebbe funzionato, la cosa non mi piaceva in quanto potenzialmente in grado di peggiorare le prestazioni a livello di jitter e rumore sulla linea più importante: il BCK/2. Il reset doveva avvenire solo quando necessario.

Per farla breve, sfruttando l'uscita Q6 di IC4, che corrisponde al WCK anticipato di un bit clock, ottengo l'intercettazione di una finestra temporale molto breve, lunga quanto un ciclo di BCK, all'inizio di ogni una nuova parola. In quella finestra, se il BCK/2 si trova nello stato sbagliato, IC7 da un calcio a IC20 (sfruttando l'ingresso di preset di quest'ultimo) e lo rimette in riga. Semplice, pulito e indolore.

(segue)
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 11/7/2019, 23:31
Scheda PCM6432 per TDA1541 48260370367_0a530df9f9_z_d

Scheda PCM6432 per TDA1541 48260370242_67c8dfea51_z_d

Scheda PCM6432 per TDA1541 48260370037_d7305059ae_z_d

Scheda PCM6432 per TDA1541 48260301016_954fdfdc4a_z_d

Scheda PCM6432 per TDA1541 48260300371_ea76c08d28_z_d

Scheda PCM6432 per TDA1541 48260300086_6bfaccab84_z_d

Scheda PCM6432 per TDA1541 47957891157_3f9077d504_z_d

Scheda PCM6432 per TDA1541 47957933021_6f3c038d4c_z_d

Scheda PCM6432 per TDA1541 47957931986_60b1e1c442_z_d

Scheda PCM6432 per TDA1541 47957890267_82d0ed31f6_z_d

Scheda PCM6432 per TDA1541 48260416001_72269b1e3f_z_d
b.veneri
b.veneri
Fragola
Fragola
Messaggi : 1569
Data d'iscrizione : 29.07.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 12/7/2019, 11:48
Grande!  applausi applausi applausi

--


Benedetto - Now playing: AF-6  Scheda PCM6432 per TDA1541 Dscn3910
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 12/7/2019, 14:16
@b.veneri ha scritto:Grande!  applausi applausi applausi

flowers
dankan73
dankan73
pesca
pesca
Messaggi : 840
Data d'iscrizione : 20.10.11

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 12/7/2019, 19:49
popcorn
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 12/7/2019, 22:40
La scheda PCM6432 è grande 75 x 50 mm, ed è stata disegnata tenendo conto delle regole basilari per contenere il jitter e minimizzare i percorsi di segnale. Per mantenere il ground plane intatto ho deciso di optare per una 4 layer.

Scheda PCM6432 per TDA1541 48267553356_540d8966c2_o_d

Il lato componenti.

Scheda PCM6432 per TDA1541 48267652822_314c93cf1b_o_d

Questa scheda è l'ideale complemento per chi ha realizzato un HDAC. Ma anche per chiunque abbia un dac basato sul TDA1541 e voglia estendere la capacità fino a 192kHz di frequenza di campionamento.

In settimana prossima arrivano le pcb, ne assemblerò un paio e pubblicherò la part list in una sezione dedicata.

Poi, ci sarà un'altra scheda che sarà il completamento di questa, che gestirà 2 ingressi I2S. Farà parte del progetto HDAC+, insieme ad un'altra scheda, quella dedicata al display per la visualizzazione della frequenza fs. L'HDAC+ avrà pure la scheda principale rivista, per accogliere le novità portate avanti in questi mesi.

Spero di aver fatto cosa gradita a tutti coloro interessati a questo meraviglioso dac che è il TDA1541.
password
password
Golden Ears
Golden Ears
Messaggi : 1389
Data d'iscrizione : 03.12.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 06:50
flowers flowers
b.veneri
b.veneri
Fragola
Fragola
Messaggi : 1569
Data d'iscrizione : 29.07.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 08:30
band
flowers flowers

--


Benedetto - Now playing: AF-6  Scheda PCM6432 per TDA1541 Dscn3910
Dirty Harry
Dirty Harry
pesca
pesca
Messaggi : 991
Data d'iscrizione : 16.06.11

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 10:19
@bandAlex ha scritto:Poi, ci sarà un'altra scheda che sarà il completamento di questa, che gestirà 2 ingressi I2S. Farà parte del progetto HDAC+, insieme ad un'altra scheda, quella dedicata al display per la visualizzazione della frequenza fs. L'HDAC+ avrà pure la scheda principale rivista, per accogliere le novità portate avanti in questi mesi.
Spero di aver fatto cosa gradita a tutti coloro interessati a questo meraviglioso dac che è il TDA1541.
Attendiamo fiduciosi... smile
Si prelude ad una nuova stagione con il saldatore in mano ed alla ricerca di cabinet... cool

--


"Un uomo dovrebbe conoscere i propri limiti..."
Giulio
Giulio
nespola
nespola
Messaggi : 469
Data d'iscrizione : 17.06.11

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 10:23
@bandAlex ha scritto:
Poi, ci sarà un'altra scheda che sarà il completamento di questa, che gestirà 2 ingressi I2S. Farà parte del progetto HDAC+, insieme ad un'altra scheda, quella dedicata al display per la visualizzazione della frequenza fs. L'HDAC+ avrà pure la scheda principale rivista, per accogliere le novità portate avanti in questi mesi.

Quindi anche per chi come me non ha un HDAC, conviene comunque assemblare una PCM6432 e tenerla in sospeso fino all'HDAC+? A proposito, HDAC+ sarebbe il DAC usante due TDA1541 che mi dicevi?
bandAlex
bandAlex
Golden Ears
Golden Ears
Messaggi : 6068
Data d'iscrizione : 29.04.11
Località : Roma

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 11:12
@Giulio ha scritto:Quindi anche per chi come me non ha un HDAC, conviene comunque assemblare una PCM6432 e tenerla in sospeso fino all'HDAC+? A proposito, HDAC+ sarebbe il DAC usante due TDA1541 che mi dicevi?

Se hai intenzione di farti un HDAC+, allora ti conviene aspettare la scheda, uguale a questa, ma con il selettore degli ingressi, sempre che tu sia interessato ad avere la possibilità di entrare nel dac da due sorgenti diverse (USB, SPDIF). Altrimenti va bene anche questa.

Giulio
Giulio
nespola
nespola
Messaggi : 469
Data d'iscrizione : 17.06.11

Scheda PCM6432 per TDA1541 Empty Re: Scheda PCM6432 per TDA1541

il 13/7/2019, 23:31
@bandAlex ha scritto:
@Giulio ha scritto:Quindi anche per chi come me non ha un HDAC, conviene comunque assemblare una PCM6432 e tenerla in sospeso fino all'HDAC+? A proposito, HDAC+ sarebbe il DAC usante due TDA1541 che mi dicevi?

Se hai intenzione di farti un HDAC+, allora ti conviene aspettare la scheda, uguale a questa, ma con il selettore degli ingressi, sempre che tu sia interessato ad avere la possibilità di entrare nel dac da due sorgenti diverse (USB, SPDIF). Altrimenti va bene anche questa.

Ok, aspetto.
Torna in alto
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum