mikrocontroller.net

Forum: FPGA, VHDL & Co. Genaue Taktfrequenz


Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich habe nur eine kurze Frage:
Für ein Audioprojekt benötige ich eine sehr genaue Taktfrequenz von
24,576 Mhz für meinem FPGA. Ist soetwas mit wenig Aufwand machbar? Wenn
nicht, dann muss ich einen neuen Ansatz suchen, deswegen frag ich lieber
ganz am Anfang nach, bevor ich wieder von vorne anfangen kann..
Wenn ich mich nicht täusche, habe ich in zusammenhang mit CD-Player mal
eine Taktfrequenz von 49,1... Mhz gesehen. Finds leider nichtmehr. Ist
das vielleicht wenn man die Frequenz genau ausschreibt das doppelte
meiner benötigten Frequenz? Dann müsste ich ja eigentlich leicht an so
einen Quarz oder was auch immer ran kommen.

Gruß Michi

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es sein, daß die Frequenz sich aus 512 * Abtastfrequenz bei 48
kHz ergibt ? Dann wäre es beim reinen CD Betrieb entsprechend
weniger.....also 22.5792 MHz.

Gruß Thomas

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Taktfrequenz ergibt sich aus 512*48khz. Irgendwo habe ich im
Zusammenhang trotzdem eine zahl mit 49,1 Mhz gelesen. Vielleicht auch
beim D/A Wandler, da der ja mit ner ziemlich hohen Taktrate betrieben
wird. Hat jetzt jemand ne idee, wie ich zu der Frequenz komm?

Mir ist gerade noch eine Frage eingefallen, die ich hier einfach mal
mit rein Stelle:
Wenn ich einen PWM Generator habe, der an einem Trafo eine eigene
Windung besitzt, die z.B. 12 abgibt. Dahinter befindet sich ein
Tiefpass, das heißt doch, dass ich zwischen den Ausgangpins dann eine
regulierbare Spannung habe. Würde es nun funktionieren, dass ich 2
solche PWM Generatoren in reihe schalte? Sie sind ja durch einezele
Trafowindungen galvansich getrennt. Würde es nun gehen, dass ich an
einem PWM-G 4V und am anderen 6V einstelle und dann insgesammt 10V
anliegen?
Die Frage ist vielleicht kompliziert formuliert, aber mir fällt grad
nix besseres ein (-: Hoffe ihr versteht es trotzdem.

Gruß Michi

Autor: Stefan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Reichelt gibt es z.B. einen Quarzoszillator mit 6,14400 MHz. Das ist
ja genau ein viertel der benötigten Frequenz. Wenn dein fpga dlls
eingebaut hat, kannst du damit intern diese Frequenz vervierfachen und
brauchst keine zusätzlichen externen Plls o.ä. dazu.
Ansonsten z.B. hier
http://www.andyquarz.de
einen mit beliebiger Frequenz für 15EUR anfertigen lassen.

Gruß,
Stefan

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
24,576= 2^13 * 3 kHz
eine der Frequenzen (die 2,4576 ist auch so ein Standardquarz), die zum
einfachen Herunterteilen auf glatte Frequenzen zum Beispiel für Uhren
oder Baudraten gedacht ist. Der Faktor drei könnte von der
amerikanischen Netzfrequenz 60 Hz stammen.

Autor: Christian Schoch (kriki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt QuarzOSZILLATOREN mit 24.576 MHZ bzw. 49.152 MHZ.
Normalerweise sollten dir aber die 24.576Mhz genügen, die 49MHz.

Die Frequenz ist das vielfache von 48kHz. (128,256,512 ...)

Was für ein Projekt wirds denn ??? Hab letztens was gemacht mit CPLD
und AES3 Receiver.

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke! Habe die Quarze jetzt bei Reichelt gefunden, haben ja ne
recht nette Auswahl.

Was das Projekt angeht soll es ein einfacher D/A Wandler werden, der
aber später auf höchste Klangqualität getrimmt werden soll. Laut
Simulationen sollte dies auch gut möglich sein. Das Problem ist nur,
dass ein sehr genauer Quarz benötigt wird. Die Daten des Wandlers
werden sich auch sehen lassen können:

Auflösung:  36 bit
Samplingfrequenz:  768 khz

Es wird am Eingang eine maximale S-Frequenz von 192khz und eine
Auflösung von 24bit zugelassen, die dann beide hochgerechnet werden.
Zur Zeit arbeite ich noch am dem Teil des FPGA der für das nachrechnen
der Kurvenform beim Upsampling verantwortlich ist, da ich nicht einfach
den Mittelwert bilden will. Die Ergebnisse sind bis jetzt auch schon
ganz ordentlich. Mal schauen, was da noch so bei rauskommt^^

Gruß Michi

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag zusammen,

ich hatte vor kurzem ähnliche Gedanken. Undzwar wollte ich eine
digitale Endstufe bauen, die auch über eine digitale Quelle gespeißt
wird, da zumindest bei mir fast alle Geräte über einen digitalen
Ausgang verfügen (CD, DVD, DVB, PC, SAT usw.). Für einen Phonoeingang
müsste dann halt ein AD-Wandler her, aber das ist mir lieber, als alle
Signale durch die billig DA-Wandler meiner Geräte zu schicken....

Das Problem, warum ich dann davon abgesehen hab war, dass ich nicht
wusste, wie ich es lösen sollte!? Da ich auch 96khz/24bit Signale
verarbeiten wollte, war mir klar, dass ich mit PWM nicht weit kommen
würde, da ich eine irsinnig hohe Taktfrequenz benötigen würde (mehrere
Gigaherz), sofern ich nicht irgendwas total falsch verstanden hab.
Deshalb passt hier meine Frage sehr gut rein. Wie schaffst du oder
andere hier m Forum es, digitale Signale (SPDIF usw.) in ein
Steuersignal für eine Endstufe zu Wandeln?
Würde mich über eure Hilfe sehr freuen

MfG Sebastian

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michi:
Ist das ein Tippfehler oder meinst Du das mit den 36Bit Auflösung
ernst?

Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bei Reichelt gibt es z.B. einen Quarzoszillator mit 6,14400 MHz. Das
ist
ja genau ein viertel der benötigten Frequenz. Wenn dein fpga dlls
eingebaut hat, kannst du damit intern diese Frequenz vervierfachen und
brauchst keine zusätzlichen externen Plls o.ä. dazu."

Die 6,144MHz könnten zuwenig für die PLLs in FPGAs sein. Ein Cyclone
von Altera braucht mindestens 14MHz für die PLL. Kann sein, daß es bei
anderen Baureihen von Altera oder Xilinx anders ist.
Aber eine Alternative hab ich gefunden: Quarzoszillazor mit 22.1184MHz
von Reichelt und mit PLL durch 9 teilen und mal 10 ergibt genau die
gewünschte Frequenz von 24,576MHz.

Viele Grüße
TobiFlex

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

@TobiFelx
danke für deine bemühungen, der Oszi wäre einen Versuch wert. Leider
hab ich die PLL´s noch nie benutzt. Mal schauen, ob die zum laufen
bekomme, sollte aber eigentlich nicht so schwer sein, oder? Liefern
PLL´s eigentlich ein genaues Ausgangssignal, um so wenig Jitter wie
möglich zu erhalten?

@Markus
Die 36 bit sind kein Tippfehler, genausowenig wie die Samplingfrequenz
von 768khz, wobei ich die vielleicht auf 386 reduzieren werde, da die
PWM-Taktung sonst zu hoch wird und die Verzerrungen zu stark
ansteigen.

@Sebastian
Dein Problem hatte ich auch, doch ich wollte keine Endstufe, sondern
nur ein D/A Wandler bauen, was in diesem Fall einen großen Unterschied
steht. Ich werde kurz meinen Aufbau schildern, aber keine garantie,
dass es so funktioniert, da ich erst einzelne Teile getestet oder
simuliert habe...
Also, das Eingangssignal wird auf 36bit hochgerechnet (so sollte auch
noch eine digitale Lautstärkereglung möglich sein) und dann in 6 Felder
á 6bit zerlegt. Jedes Feld wird nun bei einer Taktfrequen von 24,576Mhz
zu einem PWM-Signal gewandelt, was dann 386khz entsprechen würde
(49,152Mhz waren vorgesehen). Jedes Signal wird dann durch einen Filter
geschickt und je nach Feldwertigkeit wird danach die Ausgangsspannung
geteilt. Die fertigen 6 Ausgangsignale werden dann addiert und man
erhalt ein Ausgangsignal mit 36bit Auflösung und 768khz, sofern ich
nichts wichtiges übersehen hab^^

Die oben angeführte Feldwertigkeit sagt aus, das wie viele "6bit
Teile" das Feld vom MSB entfernt sind. Das vom LSB aus gesehen erste
Feld ist somit 5 Felder entfernt und das höchstwertigste bit in diesem
Feld ist nur 1/2^30 des MSB Wert, somit wird das Ausgangssignal dieses
Feldes durch 2^30 geteilt.
Hoffe ich hab mich jetzt auf die kürze ned verrechnet...

Gruß Michi

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und man erhalt ein Ausgangsignal mit 36bit Auflösung und 768khz,
>sofern ich nichts wichtiges übersehen hab^^

Ja, die Physik glaube ich.

Darf ich fragen in welchen Spannungsbereich Du Dich mit Deinem
D/A-Wandler bewegst? 0-10V? 0-1000V?

Ich bezweifle sehr daß Du hier "echte" 36 Bit Auflösung hinbekommst
(du wärst dann übrigens der erste). Selbst käufliche 24-Bit-D/A-Wandler
haben nur echte 19 Bit Auflösung.
Die Spannungsstufen Deines Wandlers liegen im Pikovoltbereich.

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michi:
Ich denke, Du hast im wesentlichen zwei Dinge übersehen:

1.) Du mußt die einzelnen Stufen aufeinander abgleichen. Wenn Du das
nicht machst, dann bekommst Du Lücken bzw. Überdeckungen an den
Nahtstellen. Dies führt dazu, dass Du alle Stufen auf 1 Bit genau
abgleichen mußt. Arbeitet die erste Stufe z.B. mit 5V, dann ist 1 Bit
etwa 70pV, d.h. die 5V müssen nicht ungefähr 5V sein, sondern es müssen
genau 5,00000000000V sein. Dazu nimmst Du einfach Dein 12-stelliges
Voltmeter und gleichst die Spannung ab.

Solltest Du die Spannung aus Wechselstrom erzeugen, dann muß die
Restwelligkeit natürlich ebenfalls klein genug sein.

2.) Ein PWM-Signal besteht quasi nur aus 1en und 0en und daran ändert
sich von selbst auch nichts. Wenn Du 1 0 ausgibst, dann ist das halt 1
0 und nicht 0,5. Um die 0,5 zu erhalten mußt Du erstmal einen Tiefpaß
dahinterschalten. Dieser braucht aber eine gewisse Zeit, bis er
eingeschwungen ist, das geht nicht innerhalb einer Periode. Wie lange
genau hängt vom verwendeten Filtertyp bzw. den Filterparametern ab.
Angenommen Du wiederholst die Werte 10mal, dann kannst Du statt 384kHz
eben nur noch mit 38,4kHz die Werte ausgeben.


Außerdem gibts natürlich noch tausend Detailprobleme:
- Wie groß ist das Rauschen? Größer als 1 Bit?
- Wie ist das Temperaturverhalten? Die einzelnen Stufen arbeiten mit
unterschiedlichen Spannungen und damit auch mit unterschiedlichen
Leistungen und werden sich daher unterschiedlich erwärmen.
- Das Leiterplattendesign ist sicher nicht einfach. Du darfst ja so gut
wie kein Übersprechen zwischen den Leitungen haben.

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.