Guten Abend,
ein Stereo (Audio) ADC digitalisiert das Ausgangssignal eines Audio
Verstärkers, das entstehende I2S Signal wird in einen STM32 gegeben und
dort ausgewertet. Ein großes VFD (GU256-64-900A) zeigt den Pegel in dBu
sowie den maximalen Pegel mit hold Funktion nach dem Bargraph Prinzip.
Ein Klassisches VU und PPM. Datenblatt vom Display:
http://www.qscomp.cz/Pdf/GU256X64-900A.pdf
Klingt erstmal einfach, ich frage mich aber ob das für einen Anfänger zu
schaffen ist? Mir fällt es gerade sehr schwer einen Passenden uC
auszuwählen, wichtig ist nur das er mit dem Clock den der Audio ADC
sehen will (wohl die klassischen 22.5792 MHz) arbeitet. Ansonsten gibt
es nicht viel zu tun, ein paar Taster abfragen, 4 Relais schalten und
Dinge auf dem Display anzeigen. Alles was ein Atmega8 auch könnte.
Wie schätze ich ab welchen uC ich am besten verwenden kann? Ganz toll
wäre einer der an 5V läuft denn das Display und der ADC arbeiten mit
dieser Spannung, man spart die Pegelwandler.
Danke!
Gruß,
Jan
Was haben die 22.5792 MHz des ADC mit den µC der Anzeige zu tun wenn das
Signal über I2S herreinkommt? Die Clockrate für SCK liegt doch bei 44.1
kHz bei 1.4112 MHz richtig?
Ich kenne keinen STM32 der 5V direkt treiben kann.
>Was haben die 22.5792 MHz des ADC mit den µC der Anzeige zu tun wenn das>Signal über I2S herreinkommt? Die Clockrate für SCK liegt doch bei 44.1>kHz bei 1.4112 MHz richtig?
S/PDIF verwendet 32Bit Wortbreiten bei 2 Kanälen und 44,1kHz sind es
2.8224Mhz. Die meisten modernen ADCs wollten aber ein paar Dutzend Mhz,
wählt man eine niedrigere Abtastrate nutzen die dann Oversampling.
Geschickt wäre halt wenn man den Clock vom uC übernehmen könnte bzw. aus
seinem clock teilen. Die beiden werden sich einen Quarz teilen, das
macht es einfacher.
Ein anderer uC wäre auch denkbar wobei ich den ADC sowieso über ADUMs
trennen will, die machen auch die Pegelanpassung.
Gruß,
Jan
Datenblatt würd ich das jetzt nicht nennen, da fehlt ja völlig das
Protokoll.
> A full data sheet is available.
Das musste dir erstmal besorgen.
Ansonsten brauchst du jetzt nicht unbedingt einen externen ADC.
Ein interner 12Bit ADC reicht erstmal für eine Anzeige.
Das würde die Sache schonmal erleichtern.
Mw E. schrieb:> Ansonsten brauchst du jetzt nicht unbedingt einen externen ADC.> Ein interner 12Bit ADC reicht erstmal für eine Anzeige.
Klar, für eine 12Bit-Anzeige (entspricht einem Dynamikumfang von 72dB)
reichen 12 Bit...
Moin,
Jan schrieb:> Klingt erstmal einfach, ich frage mich aber ob das für einen Anfänger zu> schaffen ist?
Da ist die Antwort doch sonnenklar: Es kommt auf den Anfaenger an.
Klar wirds Anfaenger geben, die das schaffen. Es wird auch
Master-of-electrical-Gedoens-Absolventen mit 1er Abschluss geben, die
das nicht schaffen.
Ob du's schaffst, wirst nur du selber beantworten koennen.
Gruss
WK
Die Anzeige soll 90-100dB Dynamik darstellen können. Deshalb wird ein
mindestens 16 Bit Wandler benötigt. Für die Peak Detection muss das
auslesen auch sehr schnell sein, damit wird eine Clipping Anzeige
gemacht.
Mit mehreren Codecs, deren Wandelbereiche sich ergaenzen,
kannst du auch spielend einen Dynamikbereich von 120 dB
erreichen. Da duerften dann selbst die Profis staunen!
Dummbeutel schrieb:> Da duerften dann selbst die Profis staunen!
Davon ist wohl auszugehen. Wenn irgendeine Lösung die Grenzen der in
diesem Universum geltenden Physik sprengt, da bleibt den Profis ja nur
das Staunen...
Das ist schon seit der Einbit-Kompression Dauerthema. Und man kommt aus
dem Staunen gar nicht mehr raus, seitdem es die Maker und Arduidioten
gibt...
Was die alles rausfinden, um die Grenzen dieser langweiligen Physik zu
sprengen, deren Anhänger ja sowieso nur Alte Säcke und eher ein
mittelalterlicher Orden der Ewiggestrigen sind. Hochachtung...
c-hater schrieb:> Klar, für eine 12Bit-Anzeige (entspricht einem Dynamikumfang von 72dB)> reichen 12 Bit...
Dat soll ja auch erstmal ein Anfängerprojekt werden und kein
Studioequipment.
Da reichts erstemal ein STM32 Discovery zu schnappen und das Display
ranzuhäkeln, der Rest ist Software.
Wenn das dann läuft kann man sich die Baustelle von I2S und einem
eigenen PCB aufmachen.
Wenn es euch leichter fällt denkt einfach das ich ein Eval Board von
meinem ADC benutze, die Daten also mit den 90dB Dynamik beim uC
ankommen.
90dB sind für Audio ADCs nichts, das haben schon die CD-Player aus den
80ern geschafft.
Jan schrieb:> 90dB sind für Audio ADCs nichts, das haben schon die CD-Player aus den> 80ern geschafft.
Soso dann mach mal....
Als Anfänger sind schon mehr als 80 db anspruchsvoll. Zumal dann ja auch
noch das Problem mit dem Messen dazukommt. Du hast vermutlich keine AP
zur Verifikation zur Verfügung. 16bit entspricht übrigens ziemlich genau
96db.
Thomas
Ich bin uC Anfänger, Analogschaltungen sind mein Hobby. Da bin ich
zuversichtlich zumindest diesen Teil zu schaffen. Es geht nur um das
Programmieren und die Wahl des uCs.
Moin,
Jan schrieb:> Es geht nur um das> Programmieren und die Wahl des uCs.
Du kannst davon ausgehen, dass wenn der uC einen I2S Port hat, er auch
dicke von der Performance her fuer ein VU Meter reicht.
Gruss
WK
Dergute W. schrieb:> Du kannst davon ausgehen, dass wenn der uC einen I2S Port hat, er auch> dicke von der Performance her fuer ein VU Meter reicht.
Wenn er zumindest einigermaßen kompetent programmiert wird, sollte man
wohl ergänzen...
Arduino, ick hör' dir trappsen...
>Du kannst davon ausgehen, dass wenn der uC >einen I2S Port hat, er auch dicke von
der >Performance her fuer ein VU Meter reicht.
Ok, Danke!
>Was hat ein ADC im CD Player verloren?
Missverständlich ausgedrückt. Damals waren bei der AD/DA Wandlung eben
auch schon 90dB (oder 96dB) Dynamik drin. Vermutlich schon in den 70ern
als man die ersten Aufnahmen gemacht hat.
mit einem STM32 F4 oder F7 Discovery kannst du problemlos eine FFT
laufen lassen( mit peak hold )
du hast direkt ein display und einen vernünftigen Audio ADC onboard
Glaube sogar eine App-Note macht das fast von alleine ...
Jan schrieb:> Klingt erstmal einfach, ich frage mich aber ob das für einen Anfänger zu> schaffen ist? Mir fällt es gerade sehr schwer einen Passenden uC> auszuwählen, wichtig ist nur das er mit dem Clock den der Audio ADC> sehen will...
Geh systematisch vor. Also zuerst mal eine Art Übersichts-Schaltplan,
was du realisieren willst. Schau dich dann nach dir passenden
Stereo-ADC's bzw. Codecs um. Die wollen je nach Samplerate bestimmte
(krumme) Taktversorgung haben. Also sieh dich auch nach den dafür
nötigen Quarzoszillatoren um.
Als nächstes guck, welche Controller eineen "SAI" Peripheriecore haben.
Bei gewöhnlichen I2S kann es dir nämlich passieren, daß das nur
aufgebohrte SPI sind und daß die dann nur 16 bittig arbeiten, keinen
Fifo haben usw. Also lies das jeweilige Manual und dort den Abschnitt
zum SAI und zu I2S gründlich.
Danach kannst du entscheiden, ob dir Chip und Manual gefallen oder eher
nicht.
W.S.
Jan schrieb:> 90dB sind für Audio ADCs nichts, das haben schon die CD-Player aus den> 80ern geschafft.
und nur sehr wenige habens je gehört! (PS CD 16 bit 96dB)
Überlegen wir mal,
Stiller Raum, Hörschwelle um 40dB leises Weckerticken
dazu also um deine 90dB zu hören sollte man die 40dB überschreiten,
ergibt bis 130dB
kann man schaffen aber nicht jeder Lautsprecher und ein Genuß ist es
nicht.
Oberhalb von 60dB wird Messtechnik anspruchsvoll, kann nicht jeder!
@Jan
Schau mal ein Evalboard mit STM32F407VETx an, der hat I2S und mit <10€
ist das brauchbar.
CubeMX erleichtert die Konfiguration.
I2S als Slave nimmt dann die Datem vom ADC in dessen Atkt entgegen.
DMA schiebt sie ins RAM und schon kann die Display-Methode aufbereiten.
Beitrag "STM32F407 Black und Arduino"
Fred der Dummschwaetzer schrieb:> Ist man damit sehr viel schneller und kostengünstiger unterwegs als ein> verknöcherter alter Dummbeutel.
Wenn ich Bibliotheken und Libraries benutze, dann solche die sich
in mein Projekt einpassen lassen. Und nicht umgekehrt.
Damit bin ich in der Summe noch sehr viel schneller fertig,
als wenn ich mir diesen unsaeglichen C-- Murks antun muesste.
(Wo dann die Performance hinten und vorne nicht stimmt.)
Auf kostenguenstig bin ich nicht besonders angewiesen.
Ich kann die Preise auf den Kunden umlegen.
Programmiertip: Wartendes Pollen auf das Ende einer DMA-Uebertragung
ist nicht besonders performant.