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
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 SchrittenJan 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...
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.
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.2Jan 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.
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