Hallo,
ich bin Regelungstechniker und beschäftige mich gerade mit FPGA's, da
ich diese in ferner Zukunft für komplexe Regelungen einsetzen möchte.
Leider bin ich noch ganz am Anfang. Ich dachte mir für den Einstieg
wären ein paar einfache Audio-Signalverarbeitungs-Projekte ganz
interessant. Nun komme ich bei der Hardware ein wenig ins straucheln, da
Audio nicht gerade mein Spezialgebiet ist.
Ich möchte mir nun für erste Übungen den Audio-Ausgang des PC's
benutzen. Das Signal mit einem Vorverstärker auf einen passenden Pegel
bringen und dann digitalisieren und parallel in den FPGA bringen.
Mein Problem ist nun die Dimensionierung des Vorverstärkers bzw. die
Quantisierung des ADC's.
Laut Internet liefert der Ausgang der Soundkarte irgendwas zwischen
0.707V und 2V Spitze-Spitze. Aber, an welcher Last (4Ohm, 8Ohm,
32Ohm...)? Dazu kann ich einfach keine Informationen finden.
Wenn man einen 16bit ADC verwendet, legt man den Vorverstärker dann so
aus, dass 2^16 dem Ausgang der Soundkarte 2Vss entsprechen oder lässt
man da in der Praxis noch ein paar Bit Luft?
Also, lange Rede kurzer Sinn: Wie tastet man ein Audiosignal am
sinnvollsten ab?
lg
Gibt es da nicht schon genug Chips, die das selber machen?
Viele habe doch einen I2S Ausgang, der dann wunderbar vom FPGA benutzt
werden kann. Und in den Datenblättern zu den Chips sind doch meist auch
Standard-Beschaltungen mit dabei.
Eine einfache Suche brachte z.B. diese Modell:
http://www.ti.com/lit/ds/symlink/pcm1860.pdf
Darin ist auch ein Schaltungsvorschlag.
Fpga K. schrieb:> I2S passt nicht zu "parallel in den FPGA" führen.
Ich empfände I2S aber auch als tolle Schnittstelle für ein FPGA
Audio-Projekt. Und man hätte damit schon mal eine kleine überschaubare
und weiterverwendbare Designaufgabe die sich zudem toll simulieren
ließe. Und die könnte man im nächsten Schritt gleich für S/PDIF
aufbohren...
Zudem hätte man erst mal das ganze Analoggelecke mit Brummschleifen und
wasweißichnochalles komplett und verlustfrei umgangen.
Lothar M. schrieb:> Ich empfände I2S aber auch als tolle Schnittstelle für ein FPGA> Audio-Projekt. Und man hätte damit schon mal eine kleine überschaubare> und weiterverwendbare Designaufgabe die sich zudem toll simulieren> ließe.>> Zudem hätte man erst mal das ganze Analoggelecke mit Brummschleifen und> wasweißichnochalles komplett und verlustfrei umgangen.
So wie ich den TO verstehe will er ja gerade mit seinem FPGA in die
schmutzige Regelungstechnik, da fällt er eher früher als später in den
Analogmorast. Ob ihn die fixen Sampleraten von Audio-Codecs passen wäre
auch so ne Frage.
Aber als Spielwiesen kann er mit dem passenden Board alle drei Varianten
parallel aufbauen (CODEC/Parallel ADC/ Sigma Delta ADC) und
gegeneinander optimieren. Dann sollte er fit sein eigene
Regelungstechnik hardwaremäßig aufzubauen.
Lattice hat was ausführlicheres für Sigma Delta und FPGA:
http://www.latticesemi.com/en/Products/DesignSoftwareAndIP/IntellectualProperty/ReferenceDesigns/ReferenceDesign03/SimpleSigmaDeltaADC.aspx
Ach ja, es gibt auch FPGA's mit integrierten ADC beispielsweise bei
Xilinx mit dem XADC in den Serie 7 fpga's .
laborwesen schrieb:> Laut Internet liefert der Ausgang der Soundkarte irgendwas zwischen> 0.707V und 2V Spitze-Spitze. Aber, an welcher Last (4Ohm, 8Ohm,> 32Ohm...)? Dazu kann ich einfach keine Informationen finden.
Das ist ein Line-Out, also muss die Last irgendwas im 10kOhm Bereich
sein. Aber der genaue Wert ist vollkommen nebensächlich, weil dein ADC
soweiso einen hochohmigen Eingang hat...
> Wenn man einen 16bit ADC verwendet, legt man den Vorverstärker dann so> aus, dass 2^16 dem Ausgang der Soundkarte 2Vss entsprechen oder lässt> man da in der Praxis noch ein paar Bit Luft?
Wenn du jetzt tatsächlich mit Audio rummachst, dann lässt man da
tatsächlich Reserve, es kann ja immer noch was Lauteres ankommen.
Und es gilt: 6dB = halbe Amplitude = 1 Bit. Ob da jetzt also 2V oder 1V
maximal aus dem Ausgang herauskommen macht letztlich also "nur" 1 Bit
aus...
Bitwurschtler schrieb:> So wie ich den TO verstehe will er ja gerade mit seinem FPGA in die> schmutzige Regelungstechnik, da fällt er eher früher als später in den> Analogmorast.
Aber dann würde ich für den Anfang mal einen simplen 12-Bit SPI-ADC und
passend dazu einem 12-Bit SPI DAC nehmen. Denn nach einem 16-Bit-Wandler
bleibt bei vielen sowieso nicht arg viel mehr übrig...
Fpga K. schrieb:> Schade bei solchen CODECS ist aber das der FPGA hinsichtlich> Signalverarbeitung nur die steuerworte sendet, Filterung und so also> nicht so im Vordergrund steht. Was aber der TO- gerade wünscht:
So ist es. Ich ahne schon, dass ich irgendwann um den Einsazt von FPGA's
nicht herum kommen werde. Um mich schon ein wenig darauf vorzubereiten
möchte ich vorab schon ein wenig üben. Da es wie bereits gesagt um
Regelungstechnik geht ist mir wichtig, dass die Übungen schon ein
bisschen in diese Richtung gehen.
Bitwurschtler schrieb:> So wie ich den TO verstehe will er ja gerade mit seinem FPGA in die> schmutzige Regelungstechnik, da fällt er eher früher als später in den> Analogmorast. Ob ihn die fixen Sampleraten von Audio-Codecs passen wäre> auch so ne Frage.
Die Sampleraten von Audio-Codecs sind für mich schon okey. Es geht
vorerst nur ums üben. Es geht noch nicht um ein konkretes
regelungstechnisches Projekt.
Bitwurschtler schrieb:> Aber als Spielwiesen kann er mit dem passenden Board alle drei Varianten> parallel aufbauen (CODEC/Parallel ADC/ Sigma Delta ADC) und> gegeneinander optimieren. Dann sollte er fit sein eigene> Regelungstechnik hardwaremäßig aufzubauen.
Der Vorschlag gefällt mir schon mal sehr gut. Genau darum geht es mir.
Ich möchte eine "Spielwiese" haben an der man möglichst viel Erfahrungen
für kommende Projekte sammeln kann.
Lothar M. schrieb:> Bitwurschtler schrieb:>> So wie ich den TO verstehe will er ja gerade mit seinem FPGA in die>> schmutzige Regelungstechnik, da fällt er eher früher als später in den>> Analogmorast.> Aber dann würde ich für den Anfang mal einen simplen 12-Bit SPI-ADC und> passend dazu einem 12-Bit SPI DAC nehmen. Denn nach einem 16-Bit-Wandler> bleibt bei vielen sowieso nicht arg viel mehr übrig...
Also bei 12 statt 16 bit stimme ich dir zu.
Ob SPI oder parallelinterface entscheidet die Samplerate, da scheint ja
die Audio-Raten (96kSamples ist wohl heute üblich?!) passen sollte das
auch ein SPI schaffen.
Persönlich ist mir Parallel-IF lieber weil man damit auch in den
zweistelligen Megasample-bereich reinkommt und man sich die (hier
eigentlich triviale) Deserialisierung spart.
Aber wenn es in der Regelungstechnik "üblich" ist dann sollte man sich
auch einen SPI-Wandler anschauen.
Und nachher schaun ob man den externen SPI-IC nicht über ein simples
Sigma-Delta im FPGA ersetzt bekommt. Genügend Experimentierlust
vorrausgesetzt.
Ihr habt mich überzeugt. Ich werde nun einen 12bit ADC verwenden.
Allerdings spiele ich mit dem Gedanken an Stelle des ADC's einen µC mit
internem 12bit ADC zu verwenden. Das hätte den Vorteil, dass die
Kommunikation zum FPGA frei programmierbar wäre. Außerdem kann man den
µC für andere Zwecke (z.B. Display) sicherlich auch ganz gut verwenden.
laborwesen schrieb:>> Laut Internet liefert der Ausgang der Soundkarte irgendwas zwischen> 0.707V und 2V Spitze-Spitze. Aber, an welcher Last (4Ohm, 8Ohm,> 32Ohm...)? Dazu kann ich einfach keine Informationen finden.
Nein? Das habe ich seinerzeit höchstpersönlich in die Wikipedia
geschrieben:
Siehe Wikipedia Soundkarte und gfs den unten im Text verklinkten
Artikel.
Um es kurz zu machen, kann die Soundkarte in günstigen Fällen einen 32
Ohm-Kopfhörer (einigermaßen) treiben.
4 Ohm kommen schon elektrotechnisch nicht hin, wie man sich leicht
überlegen kann :-)
Es sei denn Creative bringt demnächst die Soundblaster GForceXT mit
450Watt und SpeakOn-Anschlüssen raus.