Guten Tag, ja, ich weiß: Thema hatten wir schon 1000x. Ich habe das meiste im Forum dazu durchgelesen, die Anforderungen von mir sind aber anders als bei den meisten anderen Projekten, etwas passendes konnte ich nicht finden. Um was gehts? Ich bastel an einer Verstärkerschaltung, (Hörbereich, also 20Hz-20kHz) diese kann bis 17Veff ausgesteuert werden und hat ein Eigenrauschen am Ausgang von <10µVeff. (Laut Spice) Die Lastimpedanz kann ganz verschieden sein, von ein paar Dutzend Ohm bis ein paar kOhm. Die Ausgangspegel bewegen sich durchaus auch mal irgendwo im unteren mV Bereich, es wäre als gut ein paar 100µV anzeigen zu können. Ziel ist eine Balkenanzeige von -90dB bis 0dB in 3dB Schritten -> 30 LEDs pro Kanal, kein (!!!) Showgerät sondern eine echte Messanwendung. Egal ob 20Hz oder 20kHz, was die Anzeige zeigt muss stimmen. Kennt jemand die alten Profi DAT Recorder von Sony oder die PPM von RTW? Exakt das ist das Ziel. Zusätzlich wäre eine Peakanzeige durch 7 Segment Displays der Wahnsinn, damit das aber einen Nutzen hat wäre eine Auflösung von 0,xdB nötig. Jetzt wird es richtig heftig. 3 Konzeptideen habe ich: 1: Analog: Es Gibt für den Zweck log -> Lin Kompressoren wie den THAT4301, der schafft 120dB-> 60dB: http://www.thatcorp.com/datashts/dn119.pdf So einen, Aktivgleichrichter + RC Zeitglied dahinter und eine Kette von LM3914 oder tatsächlich 30 Komparatoren pro Kanal. Präzise geht anders weil man immer heftig abgleichen müsste, die Spitzenwertanzeige kann man damit vergessen. 2: µC: Man könnte einen µC mit Analogeingang verwenden und die Werte in einer Wahrheitstabelle speichern. Die ADC Eingänge müssten 16Bit Auflösen können und mindestens 40kS/s Abtasten damit 20kHz Rekonstruiert werden können. 16 Bit integriert, ich habe nichts passendes gefunden, bei 12 Bit ist Schluss. Man kann den THAT4301 davor setzen dann kommt man mit 12Bit klar. Gerade wenn aber noch die Spitzenwerte angezeigt werden sollen bin ich mir sehr unsicher ob man das Signal schnell genug für 20kHz abtasten kann, der µC hat ja dann viel zu tun. Ich habe zwar schon mit µCs gearbeitet, es fehlt aber momentan noch an Wissen um das Abschätzen zu können. 3: FPGA: Ich vermute so machen es die Profis von RTW etc heute. Die Idee stammt von hier, das ist ziemlich genau was ich suche: http://www.beis.de/Elektronik/DPLCM/DPLCM.html Billiger 16Bit Audio ADC davor und den FPGA auswerten lassen. Der in dem Beispiel hat wohl so viele Pins das es ohne Multiplexen geht, bei den kleinen Signalen sicher kein Fehler. Die Frage ist halt ob ein blutiger Anfänger es hinbekommen kann den Code für den FGPA zu schreiben, ich vermute damit übernehme ich mich deutlich als Einsteiger? Habt Ihr vielleicht andere Ideen wie man das besser machen kann oder weiß jemand wie die Präzisen VU-Meter / PPM in der Zeit vor µC und co. realisiert waren? Vielen Dank! lg, Jan
> wie die Präzisen VU-Meter / PPM in der Zeit vor µC und co. > realisiert waren? Natürlich mit einem A277. Zur Not kaskadiert.
Was sprichte denn gegen einen externen ADC ? Die sind viel besser wie die internen.
Moin, Hier Beitrag "VU-Meter mit Attiny13a statt LM3916" hab ich schonmal sowas mit einem attiny13a vorexerziert. Gut, da sinds keine 90dB Anzeigeumfang. Aber wenn du einen STM32 mit I2S Port und einen entsprechenden Audio-ADC nimmst, sollte das locker machbar sein. Sogar als "Spektrumanalysator", weil du noch genuegend CPU-Bumms haben wirst, um ein paar Filter mitlaufen zu lassen. Gruss WK
Danke für Eure Hilfe! Wie gesagt, µC Anfänger deshalb viel mir das einschätzen schwer wie groß das Programm werden wird -> wie schnell abgetastet und intern verarbeitet werden kann. Aber gut bei 48Mhz sollte sogar ein von mir (schlecht) geschriebener Code schnell genug abgearbeitet werden können, auch mit Spitzenwert Anzeige ;-) Auf die Idee das es µCs mit I2S Port gibt bin ich garnicht gekommen, eigentlich perfekt dafür. Ich werde es so versuchen. Jan
Jan schrieb: > Ziel ist eine Balkenanzeige von -90dB bis 0dB in 3dB Schritten Jan schrieb: > Die ADC Eingänge müssten 16Bit Auflösen können Tja, hast das mal gerechnet? 20*log(2/65535) sind ca -90dB, 20*log(3/65535) sind aber schon -86.7dB. Allein deshalb reichen 16 bit nich. Wenn du jetzt noch beruecksichtigst dass die ENOB von so einem 16 bit Wandler vllt 14 bit sind bist du schon bei Rauschen von 2 bis 3 LEDs. Laeuft das bei dir unter Jan schrieb: > was die Anzeige zeigt muss stimmen ? Du brauchst 24 bit und am besten 96kHz. Mhmhm 24 bit 96kHz, das kommt mir bekannt vor... Machs wie derguteweka sagt. Und stell dich auf viele Designiterationen ein wenn du schon so fragst, -90dB Stoerunterdrueckung sind jetzt nicht gerade total einfach...
Vergiss einen ADC mit I2C, resp I2S, das ist Schrott, wegen Richtungsumschaltung. Nimm SPI.
Jan schrieb: > Wie gesagt, µC Anfänger deshalb viel mir das einschätzen schwer wie groß > das Programm werden wird -> wie schnell abgetastet und intern > verarbeitet werden kann. Das ist easy. Die Samples holst du dir per DMA rein, die stehen dann in einem Double Buffer. Du iterierst ueber den Buffer sobald er fertig ist und machst pro Sample ein MAC, dafuer musst du noch quantisieren oder am besten einen 64 bit oder floating point Akkumulator nehmen. Das Ergebnis speicherst du dir in ne Liste fuer die Peak anzeige und gibst es auf den LEDs aus. Die kann man evtl auch direkt am uc multiplexen, zB 4x8.
Gorch F. schrieb: > Vergiss einen ADC mit I2C, resp I2S, das ist Schrott, wegen > Richtungsumschaltung. Nimm SPI. ??? So ein Quatsch.
Jan schrieb: > Ziel ist eine Balkenanzeige von -90dB bis 0dB in 3dB > Schritten -> 30 LEDs pro Kanal, Bau's doch gleich richtig nach DIN45406 mit 220 LEDs: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.30.2 Jan schrieb: > Billiger 16Bit Audio ADC davor und den FPGA auswerten lassen Weder 16 bit noch FPGA, du brauchst einen der üblichen 24 bit Audio-ADCs und einen uC der dessen seriellen Stream von 1.2MByte/sec verarbeiten kann, das schaffen aber viele. Das Programm sollte natürlich im Kernstück in Assembler sein, mit Arduino wird das nichts. Viel Rechenaufwand ist ja nicht.
Michael B. schrieb: > Das Programm sollte natürlich im Kernstück in Assembler sein Tobias F. schrieb: > ??? > > So ein Quatsch.
Wieso denn 20*log(3/65535) statt 20*log(2/65535)? 16Bit Wandler gibt es praktisch nicht mehr, selbst die günstigen "können" 24Bit/96kHz, ist also kein Problem. Der z.B. sollte ja reichen: https://www.ti.com/lit/ds/symlink/pcm1808.pdf Echte 24Bit erreicht kein Wandler den ich kenne, selbst die super tollen High End Teile von Ti oder ESS nicht. reicht aber ja auch aus. Ja, die 16Bit wären der Optimalfall gerechnet. I2S ist ja ziemlich gängig bei Audio ADCs, die Frage ist nur wie kompliziert die Verarbeitung der Signale im µC sein wird. Ich hatte mich davor nie damit beschäftigt. >Und stell dich auf viele Designiterationen >ein wenn du schon so fragst, -90dB Stoerunterdrueckung sind jetzt nicht >gerade total einfach... Der Analogteil des Verstärkers schafft das locker, beim ADC halte ich mich an das Referenzlayout von Ti. Wird versucht. >Bau's doch gleich richtig nach DIN45406 mit 220 LEDs: Ich werde zwar 0603er SMD LEDs verwenden, so breit wird aber das Gehäuse garnicht. ;-) Die 55dB Dynamikumfang reichen mir auch bei weitem nicht. Wo liegt der Vorteil bei Assembler in der Anwendung? Jan
Jan schrieb: > Ziel ist eine Balkenanzeige von -90dB bis 0dB in 3dB > Schritten -> 30 LEDs pro Kanal Das sind dann schon mal 31 LEDs pro Kanal. Im Betreff schreibst du "Hochpräzises 90dB PPM". Für höchpräzise finde ich 3dB-Schritte schon sehr grob:
1 | dB Spannung |
2 | 0 17,0 V |
3 | -3 12,0 V |
4 | -6 8,52 V |
5 | -9 6,03 V |
6 | -12 4,27 V |
7 | -15 3,02 V |
8 | -18 2,14 V |
9 | -21 1,51 V |
10 | -24 1,07 V |
11 | ... |
Jan schrieb: > kein (!!!) Showgerät sondern eine echte > Messanwendung. Egal ob 20Hz oder 20kHz, was die Anzeige zeigt muss > stimmen. Was genau möchtest du damit messen? Gruß John
Dir ist klar, dass eine Pegelanzeige eine Integration über eine ZEit erfordert? Da sind hochschnelle DACs nicht unbedingt hilfreich, weil wieder dezimiert werden muss.
Analog OPA schrieb: > eine Integration über eine ZEit > erfordert? OP will PPM, also eine Peak-Anzeige. Die 10ms Integrationszeit aus der analogen Ära kann man sich sparen, da man in der digitalen Welt keine übersteuerten 10ms-Peaks will, die früher von der Bandmaschine angenehm plattgebügelt wurden.
Jan schrieb: > Wieso denn 20*log(3/65535) statt 20*log(2/65535)? Von 2 auf 3 ist halt ein LSB Unterschied. Damit ist halt der kleinste Schritt schon >3dB. Jan schrieb: > Echte 24Bit erreicht kein Wandler den ich kenne, selbst die super tollen > High End Teile von Ti oder ESS nicht. reicht aber ja auch aus. 22 Bit reichen locker fuer die Anwendung, 20 waeren wahrscheinlich auch noch in Ordnung. Wenn man ein wenig integriert noch weniger. John schrieb: > Im Betreff schreibst du "Hochpräzises 90dB PPM". > Für höchpräzise finde ich 3dB-Schritte schon sehr grob: Naja, er meinte wohl eher hoch akkurat... Tom schrieb: > OP will PPM, also eine Peak-Anzeige. Naja, das ist so natuerlich auch wieder fraglich. Dann muesste er naemlich massiv interpolieren um die echten peaks zwischen den Abtastwerten zu finden. Ein wenig Integration ist sicher okay ;)
>Das sind dann schon mal 31 LEDs pro Kanal. > >Im Betreff schreibst du "Hochpräzises 90dB PPM". >Für höchpräzise finde ich 3dB-Schritte schon sehr grob: Stimmt, clipping LED hatte ich nicht mitgerechnet. Die 0dB LED ist eine reine Spitzenwertanzeige ohne Verzögerung/Einschwingzeit. Im einfachsten Fall mache ich das einfach mit einem Komparator analog. Präzise wegen der 7 Segment Anzeige die den Spitzenwert (RMS) im 0.xdB Bereich zeigen soll. So wie hier gezeigt: http://www.beis.de/Elektronik/DPLCM/DPLCM.html Hier sieht man schön was ich mir vorstelle, der Sony PCM-7040 ist für mich eine Referenz für ein gutes -60dB bis 0dB PPM: https://www.youtube.com/watch?v=OVJnq4o6uLQ >Was genau möchtest du damit messen? Wie weit der Verstärker von der Vollaussteuerung 0dB, also vom clipping, entfernt ist. Deswegen PPM, die Spitzenwertanzeigen zeigen den Wert ohne Integrationszeit. >Dir ist klar, dass eine Pegelanzeige eine Integration über eine ZEit >erfordert? Da sind hochschnelle DACs nicht unbedingt hilfreich, weil >wieder dezimiert werden muss. Es gibt ja nur die Möglichkeit das Problem in SW zu lösen oder davor analog. (Aktivgleichrichter + Verzögerungsglied als minimum) Dann arbeitet die Spitzenwertanzeige nicht, ich glaube auch digital ist das genauer als mit der Analogschaltung davor? Ich überlege mir gerade den STM32 diverse Steuerungsaufgaben übernehmen zu lassen für die zuvor ein ATMEGA32 vorgesehen war, ein paar Relais ein bisschen SPI mit schieberegistern Tasterabfragen etc. Sollte er ja locker zusätzlich packen? Oder ist das eine schlechte Lösung? Jan
>OP will PPM, also eine Peak-Anzeige. Die 10ms Integrationszeit aus der >analogen Ära kann man sich sparen, da man in der digitalen Welt keine >übersteuerten 10ms-Peaks will, die früher von der Bandmaschine angenehm >plattgebügelt wurden. Genau, das langsame VU stammt ja auch aus der Zeit. ;-) >Von 2 auf 3 ist halt ein LSB Unterschied. Damit ist halt der kleinste >Schritt schon >3dB. Da hast Du recht, das hatte ich total übersehen. Da wird die 0.xdB Anzeige dahinter aber super kritisch, der AD Wandler muss dann schon edler sein. Geht das überhaupt vernünftig? >22 Bit reichen locker fuer die Anwendung, 20 waeren wahrscheinlich auch >noch in Ordnung. Wenn man ein wenig integriert noch weniger. Die sind aber exotischer als 24 Bit Audio Wandler, die 24Bit Wandler gibt es wie Sand am Meer. >Naja, er meinte wohl eher hoch akkurat... Wenn die Spitzenwertanzeige nicht läuft zumindest das. (-; >Naja, das ist so natuerlich auch wieder fraglich. Dann muesste er >naemlich massiv interpolieren um die echten peaks zwischen den >Abtastwerten zu finden. Ein wenig Integration ist sicher okay ;) Ist das wirklich kritisch wenn mit 96kHz/sec abgetastet wird, das Signal aber sowieso nur bis 20kHz betrachtet werden soll? Bedeutet ja ich habe bei 20kHz immernoch über 4 Abtastpunkte in der Sekunde. Deshalb die Clipping LED über einen schnellen Analogen Komparator. Jan
Jan schrieb: > Sollte er ja locker zusätzlich packen? Oder ist das eine schlechte > Lösung? Mach das, ist sinnvoll. Jan schrieb: > Die 0dB LED ist eine reine Spitzenwertanzeige ohne > Verzögerung/Einschwingzeit. Und die Anderen? Jan schrieb: >> Dir ist klar, dass eine Pegelanzeige eine Integration über eine ZEit >>>erfordert? Da sind hochschnelle DACs nicht unbedingt hilfreich, weil >>>wieder dezimiert werden muss. > > Es gibt ja nur die Möglichkeit das Problem in SW zu lösen oder davor > analog. Vergiss das, es ist Unsinn. Du musst nicht dezimieren aber selbst wenn waere es auch kein Problem. Jan schrieb: > Deswegen PPM, die Spitzenwertanzeigen zeigen den Wert ohne > Integrationszeit. Eine gewisse Integrationszeit gibt es immer. Sei es im ADC durch die sample & hold Stufe oder analog durch den Kondensator. Wenn du hochpräzise messen willst solltest du dir auch Gedanken darueber machen was zwischen deinen Samples passiert. Aber letztendlich wirst du bei 96kHz f_sample mit 20kHz f_BW keine Probleme haben. Eher noch durch Rauschen im niedrigen Pegelbereich.
Jan schrieb: > der AD Wandler muss dann schon edler sein. Geht das überhaupt > vernünftig? Ja, bei 22 Bit schaffst du die 0.1dB Schritte (ungefaehr) mit einen LSB bei -90dB. Jan schrieb: > Die sind aber exotischer als 24 Bit Audio Wandler, die 24Bit Wandler > gibt es wie Sand am Meer. Die sind aber auch nur 24 bit weil die 24 drauf steht. Was ich meinte sind effektive 22 bit. Ein 24 bit Wandler schafft das vielleicht, siehe ENOB (Effective Number of Bits) im ADC Datenblatt. Durch die Aussenbeschaltung kannst du auch "bits" verlieren. Nimm einen 24 bit audio ADC, das passt schon. Du kannst nur nicht erwarten dass das letzte Bit auch noch sinnvolle Information liefert. Ob du das von der Beschaltung her hinbekommst ist weiterhin offen, 90dB Stoerunterdrueckung sind halt eine Hausnummer. Jan schrieb: > Ist das wirklich kritisch wenn mit 96kHz/sec abgetastet wird, das Signal > aber sowieso nur bis 20kHz betrachtet werden soll? Bedeutet ja ich habe > bei 20kHz immernoch über 4 Abtastpunkte in der Sekunde. Deshalb die > Clipping LED über einen schnellen Analogen Komparator. Wuerde mir das mit dem Komparator ehrlich gesagt erstmal sparen, ist nur eine weitere Fehlerquelle. Ja, du hast bei 20kHz immernoch fast 5 Abtastwerte pro Periode. Allerdings kann man durch Ueberlagerung von Schwingungen auch recht steile Pulse hinbekommen, die du dann eben verpasst. Was moechtest du hoeren? Realistisch gesehen ist das kein Problem und du wirst ohne Interpolation oder andere Tricks ein sehr gutes Ergebnis bekommen. Wenn du jetzt allerdings hochpraezise mission-critical Messwerte haben willst solltest du zumindest darueber nachdenken und mal ein paar Simulationen dazu machen.
Moin, Jan schrieb: > Sollte er ja > locker zusätzlich packen? Oder ist das eine schlechte Lösung? Von der Performance her sicher locker. Nur kommts halt auch so ein bisschen drauf an, was du so an Programmierskills hast. Den ganzen ADC-,quadrier-,integrier-, "logarithmier"- und LED-Zauber lass' ich z.B. komplett im Interrupthandler laufen. Wenn der attiny nicht im Interrupthandler ist, fuehrt er das aus:
1 | endless_loop: ; this is the "main()" loop. |
2 | rjmp endless_loop |
Da koennte natuerlich auch jede andere CPU irgendwelche Relais klappern lassen. Sollte dann halt beim Timing nicht mehr auf die µs ankommen. Jan schrieb: > Da wird die 0.xdB > Anzeige dahinter aber super kritisch, der AD Wandler muss dann schon > edler sein. Wieso das denn? Das ist total billig. Jan schrieb: > Bedeutet ja ich habe > bei 20kHz immernoch über 4 Abtastpunkte in der Sekunde. Deshalb die > Clipping LED über einen schnellen Analogen Komparator. Also irgendwann ist ja mal gut mit dem Genauigkeitsfimmel. Verlaessliche Clippinganzeigen gehen gut rein analog: Ausgangssignal nehmen, mit nem Spannungsteiler um den Verstaerkungsfaktor runterteilen, davon das Eingangssignal abziehen, ggf. verstaerken. Alles analog. Wenn dabei was uebrig bleibt, clippt der Verstaerker. Gruss WK
>Und die Anderen? Gedacht ist das so: Die 30 LEDs zeigen mit den genormten Integrationszeiten für ein PPM den Wert an. Die Übersteuerungs LEDs zeigen an wenn die ~17Veff am Ausgang überschritten werden würden. Ich werde diese so abgleichen das sie Leuchten wenn die THD über 1% liegen, egal bei welcher Last. Der Anwender weiß die Pegel sind zu hoch und muss sie reduzieren. >Eine gewisse Integrationszeit gibt es immer. Sei es im ADC durch die >sample & hold Stufe oder analog durch den Kondensator. Wenn du >hochpräzise messen willst solltest du dir auch Gedanken darueber machen >was zwischen deinen Samples passiert. Aber letztendlich wirst du bei >96kHz f_sample mit 20kHz f_BW keine Probleme haben. Eher noch durch >Rauschen im niedrigen Pegelbereich. Der gesamte Verstärker hat eine Bandbreitenbegrenzung durch einen Eingangsfilter die bei ~250kHz (-3dB Punkt) anfängt zu wirken, einfach um die Eingangsstufe vor HF zu schützen. Die Clipping LED Auswertung ist bisher ein Fensterkomparator ohne Integrationszeit um jede Spitze egal bei welcher Frequenz zu erfassen. >Ja, bei 22 Bit schaffst du die 0.1dB Schritte (ungefaehr) mit einen >LSB bei -90dB. Perfekt, danke. Das klingt sehr gut! >Die sind aber auch nur 24 bit weil die 24 drauf steht. Was ich meinte >sind effektive 22 bit. Ein 24 bit Wandler schafft das vielleicht, >siehe ENOB (Effective Number of Bits) im ADC Datenblatt. Durch die >Aussenbeschaltung kannst du auch "bits" verlieren. Nimm einen 24 bit >audio ADC, das passt schon. Du kannst nur nicht erwarten dass das >letzte Bit auch noch sinnvolle Information liefert. Ob du das von der >Beschaltung her hinbekommst ist weiterhin offen, 90dB >Stoerunterdrueckung sind halt eine Hausnummer. Das dachte ich mir, die vollen 24Bit lassen sich ja Analog garnicht realisieren. Ich brauche einfach nur einen Wandler der 16Bit effektiv auflösen kann, der low cost PCM1808 mit seinem SNR von -99dB sollte dafür ja locker locker reichen. Oder habe ich einen Denkfehler? Analog habe ich schon sehr viel aufgebaut und gemessen, ich habe also durchaus Erfahrung im Layouten und kenne die kritischen Punkte. ADC und DACs waren bisher nicht dabei, deshalb halte ich mich soweit es geht an das Referenzlayout vom Hersteller des ADCs. Am meisten Sorgen macht mir das Programmieren denn da habe ich wenig Erfahrung wie man sicher merkt. Bin aber bereit mich da durchzubeißen. (-; >Wuerde mir das mit dem Komparator ehrlich gesagt erstmal sparen, ist >nur eine weitere Fehlerquelle. Ja, du hast bei 20kHz immernoch fast 5 >Abtastwerte pro Periode. Allerdings kann man durch Ueberlagerung von >Schwingungen auch recht steile Pulse hinbekommen, die du dann eben >verpasst. Die können ja optional auf der Leiterplatte bestückt werden, wenn es der ADC packt kann ich diesen Teil einfach nicht bestücken. >Was moechtest du hoeren? Realistisch gesehen ist das kein Problem und >du wirst ohne Interpolation oder andere Tricks ein sehr gutes Ergebnis >bekommen. Wenn du jetzt allerdings hochpraezise mission-critical >Messwerte haben willst solltest du zumindest darueber nachdenken und >mal ein paar Simulationen dazu machen. Es geht einfach um den hochwertigen Eindruck, das die Pegel wenn sie am Ausgang des Verstärkers identisch sind auch identisch angezeigt werden, eine "schöne" Anstiegs und Abfallzeit wie bei einem PPM... Es soll professionell wirken und sein. Mir würde auch reichen wenn man 0,1dB erst 10dB unter Vollaussteuerung auflösen könnte, je nachdem wie gut mir der Bereich um den ADC gelingt. >Da koennte natuerlich auch jede andere CPU irgendwelche Relais >klappern lassen. Sollte dann halt beim Timing nicht mehr auf die µs >ankommen. So kritisch ist das an der Stelle nicht, geht z.B. darum die Verstärkung mit 2 Tastern umzuschalten, ein paar 7-Segment Anzeigen etc. Alles Sachen die locker auch ein paar ms brauchen dürfen. Das kritischste könnte Multiplexen sein für die LED Anzeigen mit ein paar 100Hz. Der ADC ist leicht vom Digitalteil abgesetzt, Analog und Digitalmasse in seiner Nähe als Sternpunkt verbunden sodass der Digitalteil nicht in den Analogteil koppeln kann. Jan
Jan schrieb: > Ich brauche einfach nur einen Wandler der 16Bit effektiv auflösen kann, > der low cost PCM1808 mit seinem SNR von -99dB sollte dafür ja locker > locker reichen. Oder habe ich einen Denkfehler? Sieht vernuenftig aus. Jan schrieb: > Mir würde auch reichen wenn man 0,1dB erst 10dB unter Vollaussteuerung > auflösen könnte, je nachdem wie gut mir der Bereich um den ADC gelingt. Wird sich dann zeigen. Jan schrieb: > So kritisch ist das an der Stelle nicht, geht z.B. darum die Verstärkung > mit 2 Tastern umzuschalten, ein paar 7-Segment Anzeigen etc. Alles > Sachen die locker auch ein paar ms brauchen dürfen. Sollte kein Problem sein. Ehrlich gesagt ist auch die Messaufgabe nicht super zeitkritisch. Die 100k Samples/s sind schnell durchgenudelt denke ich. Du kannst die Anzeige ohnehin nicht jede ms aktualisieren weil der Betrachter dazu nicht schnell genug ist. Jan schrieb: > Das kritischste könnte Multiplexen sein für die LED Anzeigen mit ein > paar 100Hz. Da du ja nicht on-top noch PWM machen willst sind das auch nur wenige 100 Hz, vielleicht 400 oder so. Das ist garkein Stress. Unter Umstaenden kannst du das auch einen Timer erledigen lassen. Das einzige was wirklich Zeitkritisch ist ist die Daten vom I2S Bus holen und in den Buffer zu schreiben. Das musst du per DMA machen, dann passiert das im Hintergrund. Das ist ein bisschen tricky zu konfigurieren aber du findest im Internet sicher Beispielcode. Wieso besorgst du dir zum Testen nicht mal ein STM32F4Discovery? Die gabs ne Zeit lang sehr guenstig, findest bestimmt immernoch zu einem guten Preis. Da ist auch ein entsprechender ADC schon drauf. Jan schrieb: > Es geht einfach um den hochwertigen Eindruck, das die Pegel wenn sie am > Ausgang des Verstärkers identisch sind auch identisch angezeigt werden, > eine "schöne" Anstiegs und Abfallzeit wie bei einem PPM Kann mir vorstellen dass du dafuer recht viel rumprobieren musst mit Update-Intervallen, Anstiegszeiten usw.
>Sollte kein Problem sein. Ehrlich gesagt ist auch die Messaufgabe nicht >super zeitkritisch. Die 100k Samples/s sind schnell durchgenudelt denke >ich. Du kannst die Anzeige ohnehin nicht jede ms aktualisieren weil der >Betrachter dazu nicht schnell genug ist. OK, klingt super. Die Leiterplatte mit den LEDs wird ein Stück abgesetzt sein, die mit dem ADC muss logischerweise in die Nähe des Analogteils um eine perfekte Masseanbindung zu erhalten. (geplant sind 2 gestapelte Leiterplatten) Es würde sich anbieten den µC nicht unbedingt direkt in den Analogteil zu setzen, besonders nicht wenn Multiplexen im Spiel ist. Mal sehen wie ich dann die Übertragung über den I2C Bus löse, da gibt es sicher Möglichkeiten. >Das einzige was wirklich Zeitkritisch ist ist die Daten vom I2S Bus >holen und in den Buffer zu schreiben. Das musst du per DMA machen, dann >passiert das im Hintergrund. Das ist ein bisschen tricky zu >konfigurieren aber du findest im Internet sicher Beispielcode. Wieso >besorgst du dir zum Testen nicht mal ein STM32F4Discovery? Die gabs ne >Zeit lang sehr guenstig, findest bestimmt immernoch zu einem guten >Preis. Da ist auch ein entsprechender ADC schon drauf. Sicher das es das Board mit Audio ADC gibt? Ich konnte nur eins mit dem DAC CS43L22 finden. Jan
Jan schrieb: > Sicher das es das Board mit Audio ADC gibt? Ich konnte nur eins mit dem > DAC CS43L22 finden. Du hast voellig Recht, habe mich getaeuscht. Es hat hoechstens ein MEMS Mic, das per PDM (aehnlich I2S) angebunden ist. Was ich dir aber auf jeden Fall empfehlen wuerde ist die Software auf einem Eval Board zu testen. Du musst das Zeug ja eh programmieren. Zum Testen legst du einfach einen sinus im Speicher ab und konfigurierst das DMA so, dass es eben den sinus aus dem Speicher nimmt statt die Daten von I2S. Dann bekommst du ein Gefuehl dafuer wie schnell du beim Verarbeiten sein musst und wie schwierig das ganze ist. Auch merkst du ob dein gewaehlter stm32 dafuer passt, da gibt es naemlich viele verschiedene.
>Was ich dir aber auf jeden Fall empfehlen wuerde ist die Software auf >einem Eval Board zu testen. Du musst das Zeug ja eh programmieren. Zum >Testen legst du einfach einen sinus im Speicher ab und konfigurierst das >DMA so, dass es eben den sinus aus dem Speicher nimmt statt die Daten >von I2S. Dann bekommst du ein Gefuehl dafuer wie schnell du beim >Verarbeiten sein musst und wie schwierig das ganze ist. > >Auch merkst du ob dein gewaehlter stm32 dafuer passt, da gibt es >naemlich viele verschiedene. Geplant ist den PCM1802 ADC in die Nähe des Analogbereichs zu setzen (logisch) und den µC davon abgesetzt, am besten bei den Bedienelementen und den LEDs. Den Analogteil + ADC kann ich dann mit einem Evalboard zum entwickeln verbinden, wenn das läuft kann ich eine Leiterplatte dafür Designen die den µC und die Anzeigen etc. beinhaltet. Gibt es schöne Möglichkeiten den I2S Bus über ~20cm Leitung zwischen 2 Leiterplatten zu führen ohne das Reflexionen ein ernsthaftes Problem werden? Wie terminiert man so einen Bus mit schnellen Anstiegszeiten am besten? Das schöne ist, die µCs gibt es ja teilweise mit I2S + 2x SPI, ich brauche nicht zu multiplexen sondern kann die LEDs des PPM mit Schieberegistern bedienen. Sicher aus EMV Sicht kein Fehler. Bisher sieht der ADC Bereich aus wie im Anhang, vor die TL072 OPVs kommt ein Spannungsteiler -> 25V^ auf 1,5V^. Damit nutze ich den Bereich bis zur Vollaussteuerung des ADCs genau aus. Für den Feinabgleich denke ich an 2 Trimmer an jeweils einem AD Eingang des STM32, über die kann dann ein leichter Offset auf Digitaler Ebene auf das Signal gelegt werden. Pegelunterschiede durch ungleiche Widerstände im Spannungsteiler oder des ADCs kann ich ja so am edelsten ausgleichen. Jan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.