Hallo Leute, für ein Audioprojekt benötige ich aus einem FPGA eine PWM mit mindestens 100 kHz und 16 Bit Auflösung. Wenn ich das mit normalen Zählregistern und Vergleichern löse, bräuchte ich wohl eine Taktfrequenz von über 6,5 GHz. Also wohl eher unrealistisch. Habe im Netz gelesen, dass es teilweise aber Leute geschafft haben, doch PWMs in der Art zu realisieren unter Zuhilfenahme von DDR Blöcken oder irgendwelche Schiebeketten. Habe das Prinzip aber nicht wirklich verstanden. Hat evtl. jemand einen Beispielcode in VHDL / Verilog wie man so etwas für einen "normalen" FPGA (z.B. Spartan oder Kintex) umsetzt? Danke, Markus
Dir ist schon klar, dass es um ein Ziel zu erreichen mehrere Ansätze gibt... eine DA-Wandlung bedeutet nicht automatisch PWM. Sondern auch R2R oder halt Codec oder einfach nur DAC.
Bert schrieb: > für ein Audioprojekt benötige ich aus einem FPGA eine PWM mit mindestens > 100 kHz und 16 Bit Auflösung. Das heißt also "mindestens" 65536*100kHz = 65536000000 Hz = 6,5 GHz interne PWM Taktfrequenz. > Hat evtl. jemand einen Beispielcode in VHDL / Verilog wie man so etwas > für einen "normalen" FPGA (z.B. Spartan oder Kintex) umsetzt? Garantiert nicht. Wie war nochmal die eigentliche Aufgabe?
:
Bearbeitet durch Moderator
Ich würde gerne ein Netzteil / Class-D Amp mit galvanischer Trennung in einem bauen. Die Idee ist ein PushPull-Design, wo ich Primärseitig mit einer DC-Spannung reingehe und regel die PWM primärseitig so, dass sekundärseitig nach Filterung das Audiosignal übrig bleiben soll und ich nicht noch eine extra HalfBridge/FullBridge brauche. Da ich zwei aufeinander abgestimmte PWMs generieren muss will ich das in einem FPGA lösen.
Zusätzlich würde ich gerne eine Rückkopplung mit einem Trenntrafo realisieren, den ich primärseitig mit einem AD-Wandler abtaste und mit einem Regler dann das Signal passend regle. Wie realistisch mein Vorhaben ist, weiß ich nicht, aber ich will es mal probieren.
Ich finde das etwas fehlgeleitet. Wenn du in den Fehlerverstärker einen audio-modulierten Fehlstrom einbringen willst benötigst du prinzipiell eine analoge Spannung, die dein Audiosignal generiert. Ob du das über PWM machst oder DAC oider R2R+Impedanzwandler oder was auch immer ist vollkommen egal. Die Idee nen Audio-ClassD mit einem Stepdown oder was auch immer zu machen ist prinzipiell ok, bedenke aber, dass es eine mit aktiver Diode sein muss (= Halbbrücken-Ausgang) Um die Halbbrücke kommst du nicht drum rum.
In manchen uC erhöhen sie die Auflösung dadurch, dass sie neben der klassischen Counter PWM noch eine zuschaltbare Verzögerungslinie haben (z.B. bei den Piccolos von TI heißt das High Resolution PWM). Man bräuchte also den klassischen Ansatz mit Timer/Compare und dann noch Verzögerungszeiten durch zuschaltbare hintereinandergeschaltete Gatter.
Quatsch... das ist einfach der falsche Ansatz für das Problem....
> Habe im Netz gelesen, dass es teilweise aber Leute geschafft haben, doch > PWMs in der Art zu realisieren unter Zuhilfenahme von DDR Blöcken oder > irgendwelche Schiebeketten. Habe das Prinzip aber nicht wirklich > verstanden. Wo hast du das gelesen?
Baldrian schrieb: >> Habe im Netz gelesen, dass es teilweise aber Leute geschafft haben, doch >> PWMs in der Art zu realisieren unter Zuhilfenahme von DDR Blöcken oder >> irgendwelche Schiebeketten. Habe das Prinzip aber nicht wirklich >> verstanden. > > Wo hast du das gelesen? Der Ansatz erscheint mir ziemlich unrealistisch. Vmtl glaubt der TO auch, 1kW Audio per PWM über einen ETD-39 Ferritübertrager schicken zu können. Diese Idee ist ja nicht neu, aber immer noch falsch.
Wer 16Bit Audio mit 100kHz PWMs machen will, gehört so oder so auf den Mond geschossen.
Bert schrieb: > unter Zuhilfenahme von DDR Blöcken oder irgendwelche Schiebeketten. Du meinst die SerDes Blöcke.
Auch wenn ich mir ziemlich sicher bin, dass dieses Projekt niemals zu Ende gebracht wird, hier ein paar Dinge die mir spontan einfallen: Anstatt PWM könntest du dir PDM anschauen. Bei den interessanten, "mittleren" Frequenzen ist die nötige Zählerfrequenz deutlich kleiner als bei PWM, ist auch sehr einfach mit einem FPGA. Du könntest dir vielleicht auch mal den Stm32f334 anschauen, da der mehrere Phasenverschobene Counter hat, die im Endeffekt bei Standardtakt wie ein Counter mit 4.6GHz benutzt werden kann. Ansonsten musst du dich noch in Filter und Dinge wie Noiseshaping einlesen.
Lothar M. schrieb: > Bert schrieb: >> unter Zuhilfenahme von DDR Blöcken oder irgendwelche Schiebeketten. > Du meinst die SerDes Blöcke. Mit SERDES werden es aber eher keine 6Gb gewesen sein, die der TE ja benannt hat. Das sollten dann schon Gigabit-Transceiver sein und ja- mit denen kann man hoch aufgelöste PDM betreiben. Das braucht man aber nur für z.B. RADAR und sicher nicht fürs Audio. :-) Die Rechnung, eine PWM durch Überabtastung mit 65536 von 100kHz auf 6Gbit aufbohren zu müssen, um 16 Bit Auflösung zu bekommen ist auch ziemlich falsch. Das ist für die Höhen nicht ausreichend und für Bässe überdimensioniert. Wenn schon, würde man im worst case auch 15.5 Bit x 16kHz benötigen, bei entsprechender Filterung - wenn man so rechnen will - und da landen wir bei unter 1Gbit. Lustigerweise kämen dann sogar die SERDES in Betracht. :D Das macht aber kein Mensch so, sondern man moduliert kontinuierlich den Datenstrom und nicht nur rechteckig mit der Grundfrequenz. Ergebnis PDM, wie schon erwähnt. Ein taugliches 16 Bit Audio als PDM erfordert etwa 3MBit (DSD64). PWM setzt man nur bei einfachen Anwendungen ein, wo man sehr hoch überabtasten kann, also geringe Bandbreiten braucht, oder die PWM-Frequenz exakt bekannt sein muss, um sie z.B. messtechnisch wieder abziehen zu können, oder aber hohe Leistungen mit geringen Frequenzen geschaltet werden müssen und man die Umschaltverluste nicht haben will.
@ Jürgen Schuhmacher (engineer) Benutzerseite >Das macht aber kein Mensch so, sondern man moduliert kontinuierlich den >Datenstrom und nicht nur rechteckig mit der Grundfrequenz. Ergebnis >PDM, wie schon erwähnt. Ein taugliches 16 Bit Audio als PDM >erfordert etwa 3MBit (DSD64). Aber du willst die Leistungsendstufen mal sicher nicht mit 3 Mbit/s schalten ;-)
Die Sonntagabendthemen in diesem Forum sind die Besten! Ich haue mal ein paar Ideen raus: @TE : Es gibt 24Bitx192kHz Wandler für unter 20,- das Stück. Wer braucht da einen FPGA? Den könnte man doch auf 16Bit und 100kHz runtertakten, wenn es so dreckig sein soll. @Jürgen: Was ist denn bei Dir "tauglich" und für welchen Zweck? DSD-Audio ist inzwischen als Mythos enttarnt. @Falk: Die PWM (oder auch die PDM) wird selbverständlich VOR der Endstufe gefiltert. @user: PDM ist nichts anderes als Delta-Sigma-Modulation.
@ Edi M. (elektromeister) >@Falk: Die PWM (oder auch die PDM) wird selbverständlich VOR der >Endstufe gefiltert. Dann hat man aber keine Klasse-D Endstufe, wie sie der OP bauen will. "Ich würde gerne ein Netzteil / Class-D Amp mit galvanischer Trennung in einem bauen."
Netzteil und Class-D-Amp schliessen sich meiner Meinung nach von der Zieldefinition her aus. Ein Netzteil muss eine viel höhere Bandbeite wegregeln, als ein Audio-Verstärker, während dieser wiederum genauer sein muss. Aussder haben beide unterschiedliche Lasten: Class-D mit Gleichstromanteil möchte Ich mal sehen.
@Bert Mal zurück zum Problem: Warum so kompliziert? Wenn du einen Übertrager hast, dann kannst du die Netzspannung gleichrichten und arbeitest mit einer Zwischenkreisspannung von 325V. Die Trennung macht der Trafo. Warum Vollbrücke? Der größere Trafo für eine Halbbrücke kostet weniger als der Aufwand eine Vollbrücke zu designen. Für Halbbrücken gibt es viele fertige Designs, wie man so etwas macht. Die musst du nur auf die höhere Spannung aufbohren und fertig. Naja, so einfach ist es nicht. Für die hohen Spannungen und die hohe Schaltfrequenz wird die Hardware schon sehr anspruchsvoll. Das Problem, dass du hast ist, das du die Vorstellung hast, du bräuchtest für gute Audioqualität die hohe Schaltfrequenz und die hohe PWM Auflösung wie von der CD. Das ist aber nicht so. Ich kenne die genauen Grenzen nicht, aber man kann sicher auch mit 12bit Auflösung arbeiten und durch die Rückkopplung auf eine gute Qualität zu kommen. Der Trick nennt sich Dither. https://de.wikipedia.org/wiki/Dithering_(Audiotechnik) Damit kommst du auf ganz andere Anforderungen von deinem System. Damit wird das schon machbar, ist aber eine enorme Herausforderung. Ich empfehle dir klein anzufangen. Bau das System mit einer Zwischenkreisspannung von 40V auf und teste. Das muss genauso laufen. Danach kannst du auf die hohe Spannung und Leistung aufbohren. Gruß, Jens
Bert schrieb: > würde gerne ein Netzteil / Class-D Amp mit galvanischer Trennung in > einem bauen. Hey hey, über so was hatte ich auch mal kurz nachgedacht, vor 20 Jahren, und verworfen weil der Trafo zu viele Schmutzeffekte reinbringt. Immerhin ist Audio gleichspannungsfrei. Nimm einfach einen etablierten klassischen Class-D Verstärker der sein Ausgangssignal per Gegenkopplung regelt und vergiss dein FPGA und deine 6.5GHz. Seit froh, wenn überhaupt ein Ton rauskommt. Die Störeinflüsse durch andere Rahmenbedingungen sind grösser. Auf Sekundärseite sitzt der Analogeingang, Dreieckgenerator und Vergleicher des Ausgangssugnals zwecks Rückkopplung,, zur Primärseite werden nur die Schaltsignale übertragen, z.B. durch Optokoppler. Wenn das geht, kannst du dir immer noch Gedanken über entzerrende Signalverarbeitung durch Vorverzerrung per FPGA machen.
Mit einem Dreieickgenerator wird das kein Audio von hoher Qualität, da muss man etwas mehr tun. Ich kann aus unterschiedlichen Gründen da nicht näher zu Stellung nehmen, aber bei manchen Herstellern sind die Daten und Funktionsweisen ihrer digitalen Audioendstufen ja mehr oder weniger bekannt und wenn man sich z.B. Hy..x und Ic....er und Konsorten ansieht, dann arbeiten die mit sehr intelligenten Ansteuerungen und Modulationsverfahren. Messen bildet! Und dann kann man den Strom auch direkt aus der Steckdose beziehen, sprich Schaltnetzteil und Modulationsstufe zusammenfassen. Die Regelung muss halt schneller sein, als die Netzoberwellen, die man man nicht wegfiltern kann und oberhalb einer gewissen Frequenz kann man eigentlich recht gut filtern, ohne Dynamik zu verlieren, zumal man nach ein paar Phasen ja weiss, was das Netz in den nächsten Millisekunden so tun wird. Dann muss man nur noch wissen, was die Lautsprechermembran gerade macht, was sie demnächst machen soll und was der Strom durch die Wicklungen dazu für eine Meinung hat. Die ganzen Infos kommen dann in einen Topf, werden "durchgerührt" und zu einem Informationspäckchen "gefaltet" und dann an die Regelung übermittelt. Solche Audio-PDM-Stufen arbeiten auf mittleren Leistungen hoch bis 600kHz -bei hohen Leistungen immerhin noch 300kHz (jeweils für die minimale Pulslänge).
Falk B. schrieb: > Aber du willst die Leistungsendstufen mal sicher nicht mit 3 Mbit/s > schalten ;-) Das war mehr als Beispiel für das Thema "16 Bit Qualität" gedacht, allerdings würde er bei PWM in der Tat mit entsprechenden Taktraten fahren müssen, um an die Genauigkeit heranzureichen. Durch die starre Nutzung der 100kHz entsteht ja eine Faltung mit den entsprechen Daten und damit immer eine Grundwelle von 100kHz und die hat eine sehr begrenzte Bandbreite. Damit kriegst Du nicht mal Bässe gut genug raus. Edi M. schrieb: > @Jürgen: Was ist denn bei Dir "tauglich" und für welchen Zweck? > DSD-Audio ist inzwischen als Mythos enttarnt. Im Bezug auf welches Thema, ist DSD als Mythos enttarnt? DSD ist im Prinzip das, was aus der analogen Audio-CD rauskommt. > @user: PDM ist nichts anderes als Delta-Sigma-Modulation. Jaein. Nur weil es manchmal Birnen als Dessert gibt ist "Obst" nicht automatisch "Nachspeise", will heissen, es gibt PDM-Verfahren, die nicht auf klassischer Delta-Sigma-Erzeugung basieren.
Bert schrieb: > Zusätzlich würde ich gerne eine Rückkopplung mit einem Trenntrafo > realisieren, den ich primärseitig mit einem AD-Wandler abtaste und mit > einem Regler dann das Signal passend regle. Du möchtest also die Leistungsseite mit einem Trafo rückkoppeln? Dir ist bewusst, was ein Trafo aus solchen Rechtecksignalen macht? Was da rauskommt, dürfte mit dem, was Deine Lautsprecher machen, herzlich wenig zu tun haben. Was willst Du dann dort regeln? Durch eine solche Regelschleife entstünde alles andere, als eine genau Führung des Lautsprechers. Wahrscheinlich kriegst Du einen Signalhorngenerator, der mit der Phasenverzögerung durch den Trafo schwingt und fieept. Möglicherweise sogar Ultrasschall. Viel Spass, Ich bin hier weg.
Audiomann schrieb: > Du möchtest also die Leistungsseite mit einem Trafo rückkoppeln? Dir ist > bewusst, was ein Trafo aus solchen Rechtecksignalen macht? Wie knackig ein Rechteck ist, hängt lediglich von der maximal möglichen Frequenz und Faktoren wie Streuinduktivität ab. 100kHz Rechteck macht jeder normale Schaltnetzteilübertrager ohne Probleme mit. Der kommt auf der Sekundärseite auch wieder so heraus, wie du ihn hereinschickts. Von Trafos im Sinne Eisenblech hat er sicher nicht geredet. Der sagt gar nichts mehr zu 100kHz ;-)
MurksMurksMurks schrieb: > 100kHz Rechteck macht jeder normale Schaltnetzteilübertrager ohne > Probleme mit. Der kommt auf der Sekundärseite auch wieder so heraus, wie > du ihn hereinschickts. Naja, ein Rechteck hat beliebige Oberwellen und die werden ganz sicher irgendwo limitiert. Ich kenne aus praktischen Erfahrungen eigentlich zwei Typen von Übertragern: weitgehend lineare mit eher weichen Kernmaterialien, die man für Audio einsetzen kann, weil die Kennlinie auf unter 1-2 dB genau ist (Streuinduktivitäten und - kapazitöten mit einbezogen) und solche, die man für digitale Übertragungen verwendet, welcher aber sehr viel ungenauer sind.
Für digitale Übertragung brauchst Du aber auch keine so hohe Genauigkeit. Etwas rundere Flanken sind ausserdem fürs EMV besser
>Etwas rundere Flanken sind außerdem fürs EMV besser
Ja, aber mitunter schlecht auszuwerten, da Jitter-anfällig. Die
Übertrager lassen sich im Übrigen mit Kapazitäten überbrücken und damit
HF-leitend machen.
> Ja, aber mitunter schlecht auszuwerten, da Jitter-anfällig.
Aha. Interessant. Wie kommst du darauf ?
Duennwandiger Troll schrieb: > Aha. Interessant. Wie kommst du darauf ? Das ist eigentlich anschaulich klar: Je flacher eine Flanke ist, desto mehr macht eine Störung an Hub aus. http://www.96khz.org/oldpages/jitterinaudiosystems.htm Im Prinzip gibt es drei Fälle: Anstiegszeit Störung >> Anstiegszeit Signal, erzeugt einen zufälligen Fehler, der wie Signal-dithering wirkt, also bei einem Takt zu starken aber hochfrequenten Phasenänderungen führt, die man mit einer PLL filtern kann und oft muss, weil eine PLL erforderlich wird. Anstiegszeit Störung << Anstiegszeit Signal, erzeugt einen zufälligen Fehler, der wie eine Frequenzmodulation wirkt, also bei einem Takt zu schwachen aber niederfrequenten Phasenänderungen führt, die man mit einer PLL nicht filtern kann und oft auch nicht muss, weil die Änderung gering ist. Anstiegszeit Störung ~~ Anstiegszeit Signal -> "Phasenlotterie", die man nur wenig filtern kann, aber praktisch immer muss, d.h. man hat die Anforderung, eine PLL zu nutzen und trotzdem noch ein schlechtes Signal. Gerade die gering-frequenten Störungen machen einen kontinuierlichen Fehler, den man mit noch so viel PLL-Filterung nicht rausbekommt. Im Gegenteil: Man kann die beaufschlagte Störung förmlich messen. Ganz extrem bei einem sehr flach ansteigenden Signal- Um dem Problem zu begegnen, macht man Flanken immer schön steil = hohes dV/dt und verwendet Schmitt-Trigger-Eingänge mit hohem dy/dV, weil dann der zusätzliche Pegel zu einem kleineren dy/dt = Zeitversatz im Baustein führt. Ziel ist also, immer auf Fall2 zu bleiben, den aber klein zu halten. Dann geht es bei vielen Anwendungen ohne eine Taktfilterung und bei starken Störungen mit einer überschaubaren Filterung.
Beitrag #6977125 wurde von einem Moderator gelöscht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.