Regolatore a 3.3V

Jun 11, 2010 50 Replies

F. Bertolazzi ha scritto:

Eccomi. In linea generale sono abbastanza d'accordo con te. Guarda caso, proprio l'anno scorso ho fatto una cosa molto simile a quella di Marco. Una cosa del genere non richiede CPU, ma solo I/O, quindi si potrebbe fare totalmente in hw. Il problema è appunto fare/avere l'hw adatto.

Purtroppo i micro a 8bit hanno anche periferiche un po' sempliciotte, in casi come questo servirebbe il DMA.

Nel mio caso ho usato un AT91SAM7S, (sempre ARM7) che aveva la SPI per leggere da SD e una porta I2S che usavo per i DAC. Entrambe avevano il DMA. Leggevo i file da SD (con il DMA) direttamente nel buffer che veniva sparato ai DAC (sempre in DMA).

La CPU non faceva praticamente nulla tutto il tempo, si svegliava solo quando il buffer di uscita era vuoto.

_|/ Francesco Sacchi - Develer S.r.l., R&D dept. |\ http://www.develer.com/ - http://www.bertos.org

Il 13/06/2010 11.20, Francesco Sacchi ha scritto:

Stessa situazione. Uso due seriali sincrone: una per leggere la SD e l'altra per scrivere nel DAC.

Il DMA non l'ho mai utilizzato :( Io ho usato le fatfs per leggere dal filesystem della scheda, poi dovevo leggere l'header del file wave per verificarne il contenuto e infine manipolare i campioni letti per renderli digeribili al DAC.

Probabilmente anche io potrei andare a dormire un po', ma avevo verificato che non era poi così tanto il tempo in cui la CPU non riempiva il buffer di uscita.

Marco

Francesco Sacchi:

Beh, gli ATXmega ne hanno uno assai sofisticato. Solo che poi, alla fine, non costano tanto meno di un Luminary.

Appunto, forse il risparmio si può realizzare giusto sulle alimentazioni.

Marco Trapanese:

Header? File? chi ha mai parlato di ciò? ;-)

Se ci sono da fare queste operazioni, vuol dire che non viene soddisfatta l'unica condizione che avevo posto, ovvero che non ci fosero da fare elaborazioni.

La mia ipotesi non è così campata in aria, dato che potresti caricare i dati sulla SD direttamente col processore, che prende i dati e l'alimentazione da una USB ed effettua le elaborazioni richieste durante il caricamento. Il playback, a quel punto diventa banale e può essere fatto via hardware.

Sono sicuro che hai ottimi argomenti per preferire la tua soluzione, le mie sono ipotesi buttate lì senza sapere nulla sul tuo segretissimo progetto ;-) e quindi mi sembra abbastanza inutile continuarne a parlare.

Non avevo premesso "se non devi farci alcuna elaborazione"?

Appunto. Come sai lo faccio volentieri, da cosa nasce cosa, ma ora c'ho da lavorare. :-)

Ah, il tuo 95% era dato dal fatto che il tuo coso non fa nulla di nulla, insomma è spento per il 95% del tempo, non che riesce a spedire campioni al DAC nel 5% del tempo e per il resto aspetta che si sia svuotato un buffer. Cerca di selezionare meglio le informazioni che dai e come le dai. :-|

Marco Trapanese:

Come fai a dirlo, se non usi il DMA?

Magari invece dell'SS16 metti uno shootky un pelo più robusto, tipo SS24

Devi stare attento a come gestisci le masse.

Disegna il tuo carico e guarda "fisicamente" dove scorrerà la corrente. Se nella sua maglia ci sono i ritorni dello switcher hai buone probabilità di fischi e menate varie! E' uno step-down. Non sottovalutare il diodo di ricircolo! Eventualmente sacrifica un po' di rendimento mettendo un piccolo snubber in parallelo al diodo, e prendi la controreazione -direttamente- sul condensatore di uscita: quest'ultima pista falla passare lontana dalla bobina cercando di non incrociare altre piste (magari su altri layer), e se proprio devi incrociare fallo a 90° ( :D :D due faccine per i più maliziosi! :D :D )

Visto che il 2595 è un D2PAK a 5 pin, il cui case è a massa, circonda il tuo circuito di rame: sul layer dove metti i componenti cerca di rimanere compatto e poi fai un bel pad dall'altro lato sotto a tutto il blocco dc-dc. Già che ci sei puoi "cucire" con le vias i due mini piani di massa ricordando che, all'incirca, se d è la distanza tra due vias *punti di cucitura*, la lunghezza d'onda oltre la schermatura fa qualcosa è circa d *

20 (es. 1 cm -> 2GHz). In questo modo ottieni anche l'area necessaria del dissipatore con facilità.

Il blocchetto di rame così creato lo colleghi alla massa del circuito tramite un unica connessione, alla quale non deve esser collegato niente di disturbabile.

Ciao CG

Il 14/06/2010 20.27, CG Audio Laboratories ha scritto:

[cut]

Grazie dei consigli. Ho salvato il post e cercherò di seguirlo quando mi cimenterò. Eventualmente posterò il layout così da avere qualche consiglio!

Ciao e grazie ancora Marco

Il 14/06/2010 11.17, F. Bertolazzi ha scritto:

Io, prima. Ho detto che devo eseguire file wave, che quindi è un file per definizione e contiene l'header:

formatting link

Forse non ci intendiamo sul significato di "elaborazioni". Non devo "elaborare" il segnale audio nel senso di applicare filtri, riverberi o altro... devo solo leggere il file dal file system (FAT), verificare che l'header del file wave sia corretto e adeguare la lettura dei dati in funzione di cosa c'è scritto (mono, stereo, frequenza, ecc...).

Poi posso iniziare a leggere i campioni.

Naaaa... il cliente mette la SD nel suo portatile, da Windows ci copia sopra i file wave che preferisci (assieme ad altri dati) e poi la rimette nella scheda.

Infatti, vedi sopra :) Ma non sono argomentazioni contro la tua soluzione in quanto tale, sono piuttosto limitazioni dovute al tipo di applicazione che non potendola descrivere completamente in questa sede è ovvio che alcuni aspetti non li vedi.

Ma infatti anche per me è utile fare queste discussioni, c'è sempre da imparare.

Oh yes. Forse mi ero espresso male... ma appunto è così: è spento (o meglio in stand-by) quando succede qualcosa (ingresso, interrupt RTC ecc) si sveglia e avvia la riproduzione del file audio relativo, abilita l'uscita DMX ecc...

Ci proverò :( Marco

Il 14/06/2010 11.21, F. Bertolazzi ha scritto:

Semplice: avevo utilizzato dei pin di uscita che muovevo per misurare il tempo necessario al caricamento del buffer e al suo svuotamento.

Marco

Marco Trapanese:

Se non usi il DMA è chiaro che la CPU deve fare il lavoro del DMA e che quindi è sempre attiva. Come è chiaro che, se devi fare elaborazioni sui dati (tipo leggere una FAT o buttar via l'header di un file Microsoft Wave) non puoi mandare l'uscita della SD direttamente al D/A.

Se un giorno volessero fare una versione a batteria, ricordati degli ATXmega.

Il 17/06/2010 13.06, F. Bertolazzi ha scritto:

Ok! Sto giusto aspettando un occasione per utilizzarli ;) Marco

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required