www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA Spartan 3A Audio Ausgang


Autor: Stan, Kyle & Co. (Gast)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Guten Tag!

Ich realisiere z.Zt. ein Projekt mit Xilinx ISE 10.1 für das Spartan 3A 
Starter Kit.

Ich möchte den, auf dem Board vorhandenen Audio-Ausgang nutzen. Dort 
werden dann Kopfhörer angeschlossen.

Ich möchte hier gerne ein einfaches 1KHz - Signal ausgeben. Das signal 
wird einfach durch den FPGA erzeugt und an den Audioausgang 
(kopfhöreranschluss) übertragen.

Jedoch weiß ich nicht, wie man die Lautstärke beeinflussen kann?

Kann mir hier jemand einen Tipp geben? In diversen Handbüchern hab ich 
leider nichts gefunden.

Danke

Autor: Iulius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fallen da mehrere Möglichkeiten ein, aber welche davon funktioniert 
kann ich nicht sagen...

a) Ausgangspins verändern im ucf-file. Standardmäßig sind das glaube 
3,3V mit 20mA. Kann aber sein das andere Teilnehmer der Bank das stört 
wenn man es verringert.

b) eine Art Puls verwenden. Statt dauerhaft 1Khz anzulegen lässt du 
kurze Pausen zwischendurch.
Logischerweise musst du dann die Frequenz erhöhen, bspweise 2khz mit 
einem duty-cycle von 25%.
Kann aber nicht sagen wie das nachher klingt, eventuell nicht 100%ig so 
wie erwartet.

c) geht immer : Kopfhörer mit regelbarer Lautstärke verwenden

Autor: Andreas F. (chefdesigner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit mir bekannt, geht es bei diesem Board nur digital raus. Somit 
muss man alles (Amplitude, Phase, Frequenz) in einen 1-Bit-Strom 
übersetzen.

Man geht z.B. mit 10MHz raus und toggelt 1 und 0 - damit bekommt man die 
Nulllinie.


Gibt man mehr 1, als 0 aus, steigt der Mittelwert und umgekehrt.

Damit wird der Amplitudenverlauf gezeichnet.

Autor: Stan, Kyle & Co. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das klingt alles schonmal sehr nachvollziehbar. Danke erstmal!

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf dem Board, ich hoffe wir reden vom gleichen Board,
 ist ein LTC2624 four Channel DAC.

Leider nicht an der Kopfhörer Buchse angeschlossen.

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mit dem Spartan 3A schon einfaches Audio erzeugt. (Signaltöne 
bei User-Aktivität). Die Ausgänge sind auch leistungsstark genug, um 
kleine Miniaturlautsprecher antreiben zu können.

FPGA -> R25 Ohm und einen 32er Piezo.

Autor: Gustl Buheitel (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht sowas nicht mit einem Sinus-ROM und dann eine PWM? Zum glätten kann 
man noch einen Kondensator vor den Ausgang hängen. So funktioniert das 
hier wunderschön am Celoxica RC10. Das hat auch eine Klinkenbuchse ohne 
DA-Wandler.

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl Buheitel schrieb:
> Geht sowas nicht mit einem Sinus-ROM und dann eine PWM?

Andreas F. schrieb:
> Somit muss man alles (Amplitude, Phase, Frequenz) in einen 1-Bit-Strom
> übersetzen.

Die PWM macht ja genau diese Übersetzung in einen 1-Bit-Strom.

Aber ein anderes Modulationsschema als Andreas vorgeschlagen hat:

Andreas F. schrieb:
> Man geht z.B. mit 10MHz raus und toggelt 1 und 0 - damit bekommt man die
> Nulllinie. Gibt man mehr 1, als 0 aus, steigt der Mittelwert und umgekehrt.

Diese Modulation nennt sich delta-Sigma.

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stan, Kyle & Co. schrieb:
> Jedoch weiß ich nicht, wie man die Lautstärke beeinflussen kann?

Im digitalen in dem du die Amplitude von deinem Signal reduzierst (z. B. 
mit einer Fixpunkt Multiplikation und passender Wertbereichsanpassung).

Sobald aber ein Anspruch an Audioqualität besteht, ist das nicht mehr 
trivial, da du ja so die erreichbare Amplidutenauflösung reduzierst.

Iulius schrieb:
> a) Ausgangspins verändern im ucf-file. Standardmäßig sind das glaube
> 3,3V mit 20mA. Kann aber sein das andere Teilnehmer der Bank das stört
> wenn man es verringert.

Die Treiberstärke des FPGA Pins anpassen. Kreative Variante :-)

Leider kann man die Treiberstärke nicht vom FPGA Design aus verändern, 
sondern nur beim Place&Route fix einstellen.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso wird dadurch die Amplitudenauflösung reduziert? Es werden doch nur 
oben einige digits nicht angesteuert.

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Wieso wird dadurch die Amplitudenauflösung reduziert? Es werden doch nur
> oben einige digits nicht angesteuert.

Ja, genau. Das bedeutet, dass du bei gleichbleibender Wortlänge (Durch 
den DAC am Ausgang begrenzt) nicht mehr den ganzen Bereich nutzen 
kannst. Bei kleinen Lautstärken reduzierst du so markant die genutzte 
Auflösung deines DACs.

Darum möchte man in den meisten Fällen (Solange ein analoger 
Endverstärker genutzt wird) die Lautstärkeanpassung nach dem DAC machen 
(Oder z. B. durch steuern der DAC Referenzspannung), um die verfügbare 
Schrittzahl des DAC optimal auszunutzen.

Wie gesagt, für kleine Übungsaufgaben auf einem Eval-Board ist das nicht 
relevant :-)

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Ok, ich gebe ja zu, mit einem DAC mit 32bit Wortbreite ist mein 
Meckern schon eher fehl am Platz:

http://www.akm.com/akm/en/product/datasheet1/?part...

(Da intern dann ein delta-Sigma Modulator läuft, will ich trotzdem einen 
Hörtest machen :-) )

Autor: Sigma-Delta-Wandler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph Z. schrieb:
> (Da intern dann ein delta-Sigma Modulator läuft, will ich trotzdem einen
> Hörtest machen :-) )
Das klingt so, als ob Du diesbezüglich etwas Negatives erwartest. (?)

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sigma-Delta-Wandler schrieb:
> Das klingt so, als ob Du diesbezüglich etwas Negatives erwartest. (?)

Als Ingenieur will man Fakten nicht nur Datenblattwerte :-)

Nein, ich erwarte nichts negatives. Das würde ich auch als 
unprofessionell erachten (Es ist immer wieder ein Kampf mit mir selber 
sich nicht von den Erwartungen oder Vermutungen verleiten zu lassen).

Autor: Andreas F. (chefdesigner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph Z. schrieb:
> Andreas F. schrieb:
>> Somit muss man alles (Amplitude, Phase, Frequenz) in einen 1-Bit-Strom
>> übersetzen.
> Die PWM macht ja genau diese Übersetzung in einen 1-Bit-Strom.
> Aber ein anderes Modulationsschema als Andreas vorgeschlagen hat:

> Andreas F. schrieb:
>> Man geht z.B. mit 10MHz raus und toggelt 1 und 0 - damit bekommt man die
>> Nulllinie. Gibt man mehr 1, als 0 aus, steigt der Mittelwert und umgekehrt.
> Diese Modulation nennt sich delta-Sigma.

So ist es. Ich hatte es nur in einfacheren Worten darstellen wollen.

Autor: Gustl Buheitel (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist denn der Unterschied zwischen delta-sigma und pwm?

Beispiel:

Delta-sigma bei 50% und 1MHz: 01
Pwm bei 50% 8bits 4MHz: 00001111

Ist es wirklich alleine die Anordnung? Also dass 75% bei delta-sigma ein 
1011 und aber auch ein 0111 oder 1101 sein kann während es bei der PWM 
immer 0111 ist. Hat delta-sigma deshalb Vorteile wie dass man ein 
glätteres Signal erhält und auch keinen so großen Kondensator braucht am 
Ausgang?

Danke!

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl Buheitel schrieb:
> Geht sowas nicht mit einem Sinus-ROM und dann eine PWM?
Ganz genau.
> man noch einen Kondensator vor den Ausgang hängen.
Ist nicht unbedingt nötigt, weil der Kopfhöhrer selber einen Tiefpass 
darstellt. Bei einem heitgen FPGA bringt man die PWM mit 200 MHz raus.

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Experte schrieb:
> Gustl Buheitel schrieb:
>> Geht sowas nicht mit einem Sinus-ROM und dann eine PWM?
> Ganz genau.
>> man noch einen Kondensator vor den Ausgang hängen.
> Ist nicht unbedingt nötigt, weil der Kopfhöhrer selber einen Tiefpass
> darstellt. Bei einem heitgen FPGA bringt man die PWM mit 200 MHz raus.

Ich würde nicht den TP im Kopfhörer verwenden, weil dies zu 
nichtlinearen Verzerrungen führt. Ausserdem werden so Tonhöhen im 
Bereich Ultraschall generiert, die der KH emitiert und die das Gehör 
belastet. Zudem wird unnötig Leistung verbraten. Sauber ist es, den KH 
nur mit audiblen Frequenzen anzusteuern, also vorher geeignet zu 
filtern.

Autor: Rolf S. (audiorolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl Buheitel schrieb:
> Beispiel:
>
> Delta-sigma bei 50% und 1MHz: 01
> Pwm bei 50% 8bits 4MHz: 00001111
>
> Ist es wirklich alleine die Anordnung?

Aber natürlich. Überlege mal: Die 00001111 sind doch von viel geringerer 
Frequenz und weniger gut zu filtern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.