Forum: FPGA, VHDL & Co. Soundkarte für FPGA-Experimente nutzen.


von laborwesen (Gast)


Lesenswert?

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

von PittyJ (Gast)


Lesenswert?

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.

von Fpgakuechle K. (Gast)


Lesenswert?

laborwesen schrieb:

> Das Signal mit einem Vorverstärker auf einen passenden Pegel
> bringen und dann digitalisieren und parallel in den FPGA bringen.

PittyJ schrieb:
> Viele habe doch einen I2S Ausgang, der dann wunderbar vom FPGA benutzt
> werden kann.

I2S passt nicht zu "parallel in den FPGA" führen.
Wenns seriell sein soll kann man auch gleich die AD - Wandlung per Sigma 
Delta machen

http://www.diva-portal.org/smash/get/diva2:650302/FULLTEXT01.pdf

Beitrag "PWM und Delta Sigma mit FPGA"

http://www.fpga4fun.com/PWM_DAC.html

Ansonsten gibt es viele FPGA-Boards die bereits einen adio-codec 
mitbringen:
https://www.mikrocontroller.net/articles/Liste_von_FPGA_Eval_boards

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:

laborwesen schrieb:
> da
> ich diese in ferner Zukunft für komplexe Regelungen einsetzen möchte.

Als Schaltungsbeispiel für den ADC Teil hab ich auf die schnelle nur ein 
Eval-Kit von Maxim gefunden:
https://datasheets.maximintegrated.com/en/ds/MAX1320EVKIT.pdf


MfG,

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch Moderator
von Bitwurschtler (Gast)


Lesenswert?

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 .

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

: Bearbeitet durch Moderator
von laborwesen (Gast)


Lesenswert?

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.

von Bitwurschtler (Gast)


Lesenswert?

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.

von laborwesen (Gast)


Lesenswert?

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.

von Jonas B. (jibi)


Lesenswert?


von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.