Silenziare linee digitali

May 14, 2011 15 Replies

Ciao,



ho una schedina con a bordo un LM3S1918 (quarzo 8 MHz, clock 50 MHz) e comunica con un AD5663 (doppio DAC a 16 bit) tramite seriale sincrona a



25 MHz. A seguire uno stadio a op-amp per filtrare l'audio e infine un TDA7376B

Quando le linee della seriale sincrona sono in funzione ( = sta riproducendo dell'audio) si avverte un leggero ronzio. E' avvertibile solo a volumi bassissimi, praticamente inutilizzabili ai fini pratici. Però vorrei migliorare comunque la situazione.



Questa la parte di layout relativa alla zona di interesse:



formatting link



Le 3 linee evidenziate sono clock, data e cs. Abbastanza corte e con spigoli non retti.



Il chippettino è il DAC e il SOIC-8 a sinistra l'op-amp. Entrambi hanno il loro 100 nF di bypass. In alto, sul muro sopra il monitor c'è il TDA7376, la cui GND è "separata" dal resto e presa in prossimità dell'alimentazione.


Con quel poco che ho potuto vedere con l'oscilloscopio si notano dei piccoli spike, ~50 mV pp) che vagano anche sull'alimentazione in corrispondenza dei "burst" di comunicazione. Questa infatti non è continua ma ovviamente vengono inviati i dati ogni 1/44100 secondi.


Secondo voi da queste poche informazioni si può intuire se inserendo delle piccole R in serie alle linee digitali potrei risolvere? A parte violentare una scheda per provarci, ho altri mezzi per andare più a colpo sicuro?



Grazie! Marco


Marco Trapanese ha scritto:

Per me il problema non è di accoppiamento ma di caduta sull'alimentazione metterei degli elettrolitici mignon sui positivi dei chip.

Il 14/05/2011 13.58, Marco Trapanese ha scritto:

ciao, mi ricordo.

volume sw, giusto ? un ronzio costante ed indipendente dal volume.

vedo i valori e non capisco come hai dimensionato il filtro opamp; a parte questo, io lo avrei dimensionato per alzare l' impedenza di ingresso, e poter mettere un ulteriore polo (RC) tra DAC (che ha uscita a bassa impedenza) e filtro opamp, in modo da ridurre la corrente iniettata attraverso R17_C27 nell' uscita degli opamp. poi, sfruttando al massimo le R19 (inserite per adattare i livelli di tensione tra dac e pw_amp) avrei messo 2 ceramici tra gli ingressi del pw_amp e la sua S-GND, vicinissimi ai pin del pw_amp: oltre ad introdurre un ulteriore polo (siamo al 4=B0 ordine !) elimina tutto il rumore rf in ingresso, _anche_quello_raccolto_dalla_traccia_S-GND_ .

infatti, forse non e' la lunghezza, ma le capacita' di ingresso della dac.

no, sopra il monitor (27') c' e' la tenda della finestra.

ecco, non ho capito come girano la P-GND e la S-GND .

nel uC non si possono ridurre le correnti di out degli I/O ? e lo slewrate ?

--=20 saluti lowcost

Il 14/05/2011 16:09, lowcost ha scritto:

Si, ma ronzio dovuto sicuramente alla comunicazione SPI tra il micro e il DAC. Attivando l'ampli audio (no stdby, no mute) senza fornire alcun dato al DAC l'uscita è silenziosa.

L'op-amp è un filtro sallen-key attorno ai 18 kHz se ben ricordo, dovrei riguardare i conti.

Ci sono ma sull'ingresso negativo. Non ricordo che schema avevo postato, l'ultimo fa uso appunto del TDA7376 e gli IN+ arrivano dall'uscita dell'op-amp mentre gli IN- hanno un C da 1u verso gnd come da datasheet.

Mumble... una cosa però non mi torna. Se sento il ronzio significa che è in banda audio. Non essendoci ADC o moltiplicatori significa anche che è entrato direttamente in banda audio (non è un alias insomma).

Se quello che ho detto è corretto perché dovrei risolvere continuando a filtrare? Se è sovrapposto alla banda utile devo rimuoverlo all'origine, dopo non me lo tolgo più.

Mi sa che era lo schema vecchio. Se riesco più tardi o domani posto quello aggiornato.

Ti anticipo che sul TDA7376 non c'è la P/S gnd ma un unico pin di GND.

Già provato ;) La corrente minima è 2 mA, mentre non ho possibilità di limitare lo slew-rate (almeno da quello che so).

Marco

[...]

Ingressi differenziali? In single-ended la tensione che si localizza sul "gap" tra le masse (l'hai misurata?) la ritrovi amplificata in uscita.

-- M.

Il 14/05/2011 14.24, E|_Ciula ha scritto:

bisognerebbe vedere il tracciato ma un elettrolitico temo sia troppo lento per questa situazione

-ice-

Il 14/05/2011 16:31, Marco Trapanese ha scritto:

Ecco qua:

formatting link

Marco

Il 14/05/2011 19:55, maestrale1971 ha scritto:

Gli ingressi del TDA sono differenziali, ma li sto usando in single-ended collegando l'ingresso negativo a GND.

Vedi schema appena postato.

La tensione a cavallo del GAP misurata con il multimetro si attesta attorno agli 0,1 mV. Ho provato a collegare direttamente con un corto filo due punti vicini (nella zona del gap) ma non è cambiato nulla.

Marco

Il 14/05/2011 16:31, Marco Trapanese ha scritto:

Rettifico, se imposto la corrente a 8 mA posso abilitare lo slew-rate control, ma di fatto non cambia nulla.

Marco

Il 14/05/2011 16:31, Marco Trapanese ha scritto:

Aspetta aspetta aspetta.

Quando ho fatto la prova di attivare l'ampli-audio senza pilotare il DAC anche la lettura dalla SD card era inibita! I dati PCM infatti vengono letti da una SD, elaborati un pochetto (qualche moltiplicazione per il volume) e poi dati in pasto al DAC.

Ho quindi provato a caricare il buffer RAM (pochi ms di audio) senza più aggiornarlo. Quindi la comunicazione con il DAC era sempre attiva, mentre la SD non veniva più letta. Ronzio sparito!

Per essere ancora più sicuro ho modificato la lunghezza del buffer e dei pacchetti di lettura dalla SD: il ronzio cambia.

La cosa strana è che la SD è dalla parte opposta, sotto al micro e con piste ancora più corte. A questo punto propendo non più per un accoppiamento audio ma per un disturbo sull'alimentazione dovuto all'accesso alla memoria.

Ora devo scappare a pranzo, nel pomeriggio provo ad aggiungere qualche condensatore al tantalio in parallelo ai 100 nF vicino alla SD. E' strano il fatto che la stessa scheda con un ampli-audio diverso (un toshiba analogo) non dava il minimo problema...

Marco

Anche io ho avuto delle noie con l'alimentazione delle SD tempo fa: sul 3,3V che alimentava l'SD e un interfaccia ethernet (ENC28J60), il NIC andava in palla quando veniva infilata la scheda "a caldo". Sostituendo l'elettrolico da 10uF in prossimità del pin di alimentazione della SD con un 47uF è sparito qualsiasi problema

I PSRR, se specificati, sono analoghi? A mio parere con 100nF fai poco, oppure gli effetti si vedono a malapena. Per fare un prova secondo me dovresti abbondare!

Ciao CG

Il 15/05/2011 11:43, CG Audio Laboratories ha scritto:

Il Toshiba TA8254BHQ specifica un "Ripple Rejection Ratio£ di 55 dB a

100 Hz. Mentre l'attuale TDA7376B un "Supply Voltage Rejection" sempre a 100 Hz di 45 dB (che sale a 55 a 10 kHz).

Ci sto provando ora! Marco

Il 15/05/2011 9.58, Marco Trapanese ha scritto:

confermo che conviene restare a 2mA sugli I/O.

ci sono parecchie prove che puoi fare, solo modificando il sw, per capire quanto influisce il jitter sul LDAC, lo stato a riposo dei segnali SSI, i dati inviati alla dac, e altre cosette per capire l' origine del rumore.

esistono parole per descrivere il ronzio ?

il cap su IN- del pwamp deve andare alla stessa gnd di IN+ (la gnd della dac) altrimenti il pwamp amplifica il suo rumore, da lui generato sulla sua gnd di potenza; inoltre, per non compremettere la SVR, gli ingressi dovrebbero vedere la stessa impedenza, possibilmente bassa.

forse 1uF sugli ingressi e' esagerato, la Ft sarebbe

Il 15/05/2011 20:15, lowcost ha scritto:

Così sono.

Hai letto gli altri messaggi? Probabilmente prima avevo preso un abbaglio: sembra che la seriale incriminata non sia quella verso il DAC ma quella verso la SD. E visto che sta da tutt'altra parte rispetto alla sezione audio ritengo che possa trattarsi di un problema relativo all'alimentazione.

In effetti l'ho un po' trascurata lì intorno. Ho però provato ad aggiungerci un bel condensatore in parallelo al solito 100 nF (sull'alimentazione della SD intendo) e a portarci direttamente con un pezzo di filo i +3v3 presi dal regolatore, senza successo però.

E' simile a un z-zz-z-zz ritmico molto rapido. Modificando la dimensione del buffer audio e dei suoi "settori" (che vado a caricare di volta in volta) questo ronzio cambia, segno che è legato appunto alla seriale verso la SD e non quella del DAC (che invece è invariabile a 44100 Hz).

Qui è un po' sbagliato quello che ho fatto: la GND dei C30/C31 è presa vicinissima al TDA. Mentre la GND relativa al DAC+opamp è presa "prima del gap".

Anche qui: ho provato a collegare localmente del "due" gnd, di fatto annullando il gap ma non è cambiato di una virgola.

Così dovrebbe essere, la zout dell'op-amp la considuriamo trascurabile e su entrambi i rami c'è il C da 1u.

La Ft è volutamente così bassa perché in alcune applicazioni viene usata la banda "subaudio" per realizzare effetti di vibrazioni o altre diavolerie.

Ho utilizzato normalissimi ceramici...

Dipende molto dal tipo di AP e dall'applicazione. Attualmente le stanno utilizzando con la 0R0. Ma se dovesse servire preferisco lasciarmi la possibilità di sostituire una resistenza senza troppi problemi.

Inizialmente c'era il suo bel regolatore (REFxxxx) con tanto di filtro ecc... Poi ho provato a rimuoverlo e la qualità non è cambiata di una cippa. Non sono genovese, però.... ;) Non si tratta di un hifi, questo è chiaro.

Il LDAC me lo sono portato dietro per sicurezza, ma utilizzo la modalità software. Ovvero scrivo un canale, scrivo l'altro e agganciato a un interrupt del micro aggiorno le uscite DAC.

Si potrebbe senz'altro fare meglio con il PWM hardware, però ho già tutte le linee PWM impegnate a fare altro e la qualità audio è più che sufficiente.

Ciao e grazie! Marco

Il 15/05/2011 16:30, Marco Trapanese ha scritto:

Niente. Ho anche provato con un bell'elettrolitico da 270 uF a basso ESR ma non si apprezza la minima variazione nel disturbo.

Marco

Il 16/05/2011 7.42, Marco Trapanese ha scritto:

na

per capire se e' rumore di alimentazione che entra dalla vref, potresti preparare un file, per la SD, che contiene due lunghe sequenze di dati, per avere alcuni secondi di audio: una prima parte che mette la dac fissa a 0,3V , la successiva che mette la dac fissa a 3V ; se il rumore entra dalla vref, lo sentirai poco durante la prima parte, e 10 volte piu' forte durante la seconda.

--=20 saluti lowcost

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required