Hallo, ich möchte einen Funktionsgenerator mit einem Mega88 via PWM als DAC und DDS realisieren. Um nun das Ausgangssignal von der PWM zu entkoppeln bedarf es ja eines Tiefpassfilters. Was ist nun korrekt: DDS---[Tiefpass]-----[Verstärker]-----o Ausgangssignal DDS---[Verstärker]-----[Tiefpass]-----o Ausgangssignal Und warum ? Danke !
:
Verschoben durch User
korrekt ist es erstmal die Frage nicht ins GCC Forum zu stellen
Uups, sorry da war ich wohl im falschen Tab ...
Ich würde auch sagen vorher. Mit dem Verstärker verstärkst du erstmal alles. Der Aufwand nach dem Verstärker wieder alles zu glätten dürfte damit höher ausfallen.
Ich versuche mal eine Begründung: Es ist auf jeden Fall vor dem Verstärker besser, denn der Verstärker könnte eine gezielte Höhenanhebung haben, wenn er nur endlich schnell ist relativ zum Signal. Außerdem wird natürlich der unerwünschte Anteil der Schaltfrequenz stärker auch auf die Versorgungen übertragen. Zusätzlich könnte man auch am Ausgang noch einmal filtern, aber unerwünschte Signalanteile sollte man so nah an der Quelle wie möglich dämpfen oder unterdrücken, das macht die ganze Schaltung "ruhiger", auch was EMV angeht.
Naja sagte ich doch ;) er verstärkt im schlechtesten Falle alles.
zu den obigen begründungen kommt noch hinzu, dass man durch den verstärker energie hineinpumpt, die dann später durch den filter auf den müll geworfen wird
ahnungsloser schrieb: > Hallo, > ich möchte einen Funktionsgenerator mit einem Mega88 via PWM als DAC und > DDS realisieren. Das geht nicht!!! Entweder Du machst eine Signalerzeugung nach dem DDS-Verfahren oder per PWM - beides geht nicht. Falls Du trotzdem meinst es so realisieren zu können, dann poste mal ein Prinzip-/Blockschaltbild, damit man sehen kann, wie Du Dir das gedacht hattest (als Beispiel - bei DDS brauchst Du zumindest einen Offset-Wert (bestimmt u.a. die Ausgangsfrequenz), einen 'breiten' Addierer, ein Signal-Speicher (RAM/ROM), usw. - das ganze dann natürlich graphisch dargestellt). > Um nun das Ausgangssignal von der PWM zu entkoppeln bedarf es ja eines > Tiefpassfilters. > Was ist nun korrekt: > > DDS---[Tiefpass]-----[Verstärker]-----o Ausgangssignal > > DDS---[Verstärker]-----[Tiefpass]-----o Ausgangssignal Was nun die weitere 'Behandlung' eines noch digitalen DDS-Signals anbelangt, so hängt es davon ab, wo das Signal herkommt. In Deinem Fall soll es ja wohl ein ATmega88 sein. Wenn man keine Sorge tragen muss/kann, das dass digitale Ausgangssignal in der (High- und Low-)Amplitude variiert, dann kann man direkt ein entsprechendes Tiefpass-Filter nachschalten. Anschließend erfolgt die evtl. nötige Impedanzwandlung via Verstärker/OpAmp. Wer lediglich Sinussignale ausgeben möchte, der sollte es evtl. (und idealerweise) in Betracht ziehen bei Anlog Devices (www.analog.com) nach fix und fertigen DDS-Chips zu suchen (AD98xx-Serie), die man dann via µC steuern kann.
Hör mal auf zu schreien! Natürlich geht das. Dem PWM-DAC ist es schnurzegal woher die Werte stammen. BTT: Ein klassisches kommt drauf an ist die richtige Antwort. Brauchst Du eine belastbare Ausgangsspannung? -> Verstärker (z.B. OP) hinten dran. Damit kannst Du evtl. auch gleich das Filter realisieren. Wenn das egal ist, kannst den Verstärker auch vorne dran machen, dann muss er nicht so viel können und ist u.U. einfacher aufzubauen. Wie so oft fehlen genaue Anforderungen!
Karl schrieb: > Hör mal auf zu schreien! Natürlich geht das. Dem PWM-DAC ist es > schnurzegal woher die Werte stammen. Ich schreie nicht. Ich stelle lediglich fest, bzw. korrigiere wo nötig. Beim DDS-Verfahren gibt's keine PWM und schon gar nicht einen ominösen PWM-DAC! Und wer im Zusammenhang mit DDS auf einmal von einem PWM-DAC redet scheint möglicherweise (bzw. sogar höchstwahrscheinlich) nicht genau zu wissen, wie die DDS funzt. Natürlich ist es auch möglich, dass wir evtl. alle das selbe meinen, aber einige einfach nicht den richtigen Terminus benutzten. Eine (beliebige) Signalform via PWM-Signal zu erzeugen ist eine völlig andere Vorgehensweise als es ein DDS-Generator macht! Wer's nicht glaubt, sollte sich die Grundlagen/Prinzipien einfach noch mal anschauen.
Raimund Rabe schrieb: > Karl schrieb: >> Hör mal auf zu schreien! Natürlich geht das. Dem PWM-DAC ist es >> schnurzegal woher die Werte stammen. > > Ich schreie nicht. Ich stelle lediglich fest, bzw. korrigiere wo nötig. > > Beim DDS-Verfahren gibt's keine PWM und schon gar nicht einen ominösen > PWM-DAC! Und wer im Zusammenhang mit DDS auf einmal von einem PWM-DAC > redet scheint möglicherweise (bzw. sogar höchstwahrscheinlich) nicht > genau zu wissen, wie die DDS funzt. Was geht denn mit dir ab? Das Verfahren um Wellenformen zu erzeugen(DDS) hat doch nichts mit der Wandlung nach Analog zu tun. Man kann sogar eine DDS haben und gar keinen DAC (wenn man die Kurvenform dann in einen Speicher schreibt). Und "omönis" ist ein PWM-DAC wohl auch kaum! Hauptsache du weißt, wie die DDS "funzt". > Eine (beliebige) Signalform via PWM-Signal zu erzeugen ist eine völlig > andere Vorgehensweise als es ein DDS-Generator macht! Nicht zwangsläufig. Wenn man die PWM Frequenz als Träger benutzt, der anschließend rausgefiltert wird (Tiefpass), geht das durchaus. > Wer's nicht > glaubt, sollte sich die Grundlagen/Prinzipien einfach noch mal > anschauen. Ja, gleichfalls!
Raimund, das geht wirklich. Habe ich selbst schon öfters gemacht. Ist halt eine billig-Lösung, aber wenn die PWM-Frequenz hoch genug ist, klappt es ganz gut. Atmel AVR314 und andere: Beitrag "Re: Sinus generieren - welcher AVR am besten?" erst suchen, dann schreiben. Der Vorteil beim erst-verstärken-dann-filtern ist, dass die Endstufe digital (Class-D) sein kann und deshalb einen hohen Wirkungsgrad hat.
Thomas B. schrieb: > Erst verstärken, dann filtern. > http://de.wikipedia.org/wiki/Friis-Formel Ja mei, wer sagt denn, dass Rauschen überhaupt relevant ist. Für mich sagt die Formel nicht mehr als "nicht unnötig früh abschwächen/filtern". In der Praxis gibts den Verstärker für den 10-fachen Pegel halt nicht, oder nicht mit der erforderlichen Anstiegszeit. Der Filter am Ausgang müsste mit Bauteilen mit deutlich schlechteren Paremetern aufgebaut werden (und damit lassen sich die Baugruppen nicht mehr verschieben). Das Ding wird 10x so groß. ... Für das Anforderungsprofil: frühzeitig filtern, auf jeden Fall vor der "Endstufe". Auch noch ein Aspekt: Die Endstufe mit Filter ganz am Ende verteilt jede Menge HF und versaut dir - in der Praxis - so ziemlich alle Spannungen. Damit erzeugst du vermutlich mehr Fehler als wenn du die Sache frühzeitig "langsamm" machst.
Simon K. schrieb: > Raimund Rabe schrieb: >> Karl schrieb: >>> Hör mal auf zu schreien! Natürlich geht das. Dem PWM-DAC ist es >>> schnurzegal woher die Werte stammen. >> >> Ich schreie nicht. Ich stelle lediglich fest, bzw. korrigiere wo nötig. >> >> Beim DDS-Verfahren gibt's keine PWM und schon gar nicht einen ominösen >> PWM-DAC! Und wer im Zusammenhang mit DDS auf einmal von einem PWM-DAC >> redet scheint möglicherweise (bzw. sogar höchstwahrscheinlich) nicht >> genau zu wissen, wie die DDS funzt. > Was geht denn mit dir ab? Warum sollte mit mir etwas 'abgehen'?!? Ich bin die Ruhe selbst. Scheinbar im krassen Gegensatz zu anderen. ;-) > Das Verfahren um Wellenformen zu erzeugen(DDS) hat doch nichts mit der > Wandlung nach Analog zu tun. Das ist soweit noch korrekt. > Man kann sogar eine DDS haben und gar > keinen DAC Auch bis hier habe ich noch kein Problem damit. > (wenn man die Kurvenform dann in einen Speicher schreibt). Ab hier gehe ich nicht mehr konform, oder Du hast es anders gemeint?! Beim DDS liegt die Kurvenform bereits im Speicher (ROM oder meinetwegen auch RAM) vor. Es wird nicht erst dann in den Speicher geschrieben. > Und "omönis" ist ein PWM-DAC wohl auch kaum! Ich weiss schon was du/ihr unter PWM-DAC versteht. > Hauptsache du weißt, wie die DDS "funzt". Yip, weis ich! Habe einen mal 'zu Fuss' aufgebaut - noch mit TTL-ALUs usw. >> Eine (beliebige) Signalform via PWM-Signal zu erzeugen ist eine völlig >> andere Vorgehensweise als es ein DDS-Generator macht! > > Nicht zwangsläufig. Wenn man die PWM Frequenz als Träger benutzt, der > anschließend rausgefiltert wird (Tiefpass), geht das durchaus. Nein! Beim DDS wird fortlaufend ein Phasen-Offset addiert, mit dem man die spätere Ausgangsfrequenz bestimmt. Die höherwertigen Bits des Addierers bilden die Adresse für den Kurvenformspeicher, dessen Datenbits auf einen 'normalen' DAC gehen. Die Daten im Kurvenformspeicher sind im Allgemeinen keine Signale für einen PWM-DAC. Natürlich könnte man jetzt auf die Idee kommen die absoluten Spannungswerte mit denen der 'normale' DAC gefüttert worden wäre in ein Puls/Pausen-Verhältnis einer PWM umzuwandeln. Letzteres scheint wohl das zu sein, was ihr als "PWM-DAC" in Verbindung mit einer DDS benutzt, vermute ich jetzt mal!?! Diese Methode würde aber die Kurvenform weiter verschlechtern, bzw. die obere Grenzfrequenz geht weiter in den 'Keller' oder es ist ein größerer Filteraufwand nötig. Also, don't worry, be happy now, eine traditionelle DDS benutzt in keinem Fall einen PWM-DAC. Bei der Benutzung von µCs und wenn man externe Hardware vermeiden will/muss, so kann es durchaus sein die 'Krücke' von PWM-DAC zu benutzen. Mich würde mal die Qualtität (nachweislich) eines so von Euch erzeugten Signals interessieren. Berauschend dürfte es wohl nicht sein. >> Wer's nicht >> glaubt, sollte sich die Grundlagen/Prinzipien einfach noch mal >> anschauen. > > Ja, gleichfalls! q.e.d.???
Das geht schon. In deinem parallel gefütterten DAC arbeitet dieser mit dem Takt mit der auch der DDS arbeitet synchron. Dein DAC ist zb. 8 Bit breit = 256 Schritte. Du musst nun um den Vergleich zum "PWM-DAC" fair zu gestalten diesen "PWM-DAC" natürlich mit weit höherem PWM Takt betreiben als die DDS benutzt. Dann wird auch ein Schuh draus wenn man einen Class-D Verstärker damit ansteuert und auf Grund der wesentlich höheren PWM Frequenz so viel einfacher am Ausgang des Class-D-Verstärkers wieder filtern kann. Und ja, den Datenwert den die DDS per Lookuptable ermittelt wird direkt als Dutycycle der PWM benutzt. Denn dieser Datenwert ist ja in deinem DAC auch nichts anders als proportional zur Ausgangsspannung nach deinem DAC. Gleiches gilt für die PWM. Gruß Hagen
Übrigens hier http://elm-chan.org/works/mxb/report.html wird das praktisch umgesetzt. Die Ausgänge des AVRs arbeiten defakto als Class-D-Verstärker und treiben direkt den Lautsprecher. Die Wavetables sind nur ein andere Name für die DDS. Benutzt wird PWM für den "DAC". Gruß Hagen
nochwas: höhere dir den Sound dazu an http://members.jcom.home.ne.jp/felm/mg.mpg Für diesen geringen Aufwand ist das super und beweist das es so ebenfalls geht. Gruß Hagen
Hagen schrieb: > Die Ausgänge des AVRs arbeiten defakto als > Class-D-Verstärker und treiben direkt den Lautsprecher. Ich glaube nicht, dass der TE an einen Class-D-Verstärker gedacht hat. Die Frage wo gefiltert wird gäbs dann nicht.
Ich möchte mal 5 Anmerkungen hier loswerden: 1. Ich würde das Tiefpassfilter gleich am Ausgang des DAC verbauen. Dann kommt der Verstärker, davor eventuel noch eine Stufe zur Amplituden-einstellung und Offset-addition. Am Ausgang des Verstärkers würde ich vieleicht doch noch so ein ganz kleines Filterchen 1. bis 2. Ordnung vorsehen, so z.B. aus dem Bauch 10µH & 1nF um Hochfrequenzrauschen noch ein bischen rauszufiltern. 2. Einige AVR haben doch so eine PLL an Bord um einen 64MHz für den PWM zu erzeugen. Oder ist das nur den ATtiny25 alleine? Mit 64MHz für den Timer der die 8-Bit PWM erzeugt müsste sich da doch eine PWM-Frequenz von 64MHz/256 = 250kHz ergeben. Mit diesen 250kHz als Taktfrequenz für die DDS sollte die nach Nyquist höchste darstellbare Frequenz <= 125kHz sein. Das gilt natürlich nur wenn in der DDS-Look-up-tabelle eine Sinuskurve gespeichert ist. 3. Wenn man die Qualität bei der DDS maximal ausnutzen will, sollte bei einer angestrebten Grenzfrequenz von 1/3 f_Takt das Tiefpassfilter am Ausgang des DAC mindestens die selbe Ordnung wie die Bitzahl des DAC haben. Also am Ausgang eines 14-Bit DAC's würde ich einen Tiefpass 14.er Ordnung bauen. Da wird, wenn es ein kommerziell herzustellendes Produckt ist, die Buchhaltungsabteilung natürlich dazwischen hauen. 4. Wenn man eine DDS hat die mit einer einer bestimmten Taktfrequenz läuft und ich stelle eine Ausgangsfrequenz von 1/3 f_Takt +0.1Hz ein, macht das Signal am Ausgang des DAC einen schönen Zappeltanz auf dem Oszilloskop. Der Sinus besteht nur noch aus 3 Treppenstufen. Da ich gerade keinen Versuchsaufbau zur Hand habe, um es zu fotografieren, habe ich es einfach mal eben aus dem Gedächnis gezeichnet. Die +0.1Hz dienen dazu, das es auf dem Oszilloskop zappelt. Man glaubt es kaum, aber es ist tatsächlich möglich diesen Schrott mit einem Tiefpass höherer Ordnung zu einem Sauberen Sinus zu filtern! Habe ich schon gemacht, weiss also wovon ich spreche :-) 5. Finde diesen Thread ganz interessant. @ Threadstarter ahnungsloser (Gast): informiere uns ruhig mal über Projektfortschritte. Auch das eine oder andere Programmfragment wird hier gerne mal gesehen.:-) Ich habe mir jetzt gerade die Mühe gemacht, das hier alles zu schreiben, hat so mindestens eine halbe Stunde gekostet. Aber davon lebt dieses Forum :-)
@Hagen: Ja, ist sicher nicht ganz das Schlechteste was man mit dem PWM-DAC erreichen kann. Für Low- bis Medium Quality sicher brauchbar, für High-Quality oder als klirrarmen Generator würde ich es mir jedoch verkneifen diese Methode der Analogspannungsgenerierung (mittels PWM-DAC) zu benutzen. Bei meinem damals entwickelten Generator gab's halt höhere Anforderungen. ;-) Ach ja, und einen Class-D-Verstärker nachzuschalten ist soweit okay. Probleme (bezüglich Amplitudenstabilität) gibt's nur, wenn die Betriebsspannung der 'Endstufe' bei unterscheidlichen Lasten mehr oder weniger zusammenbricht. Natürlich nur, wenn die Class-D-Endstufe keine Rückkopplung haben sollte und lediglich aus einem reinen Schaltverstärker (z.B. simple Push-Pull-Anordnung mit zwei Transitoren) besteht. Darum ein "JA, kann man machen, aber ..." als (Teil-)Antwort darauf, was man in welcher Reihenfolge anordnet. Man muss sich halt immer fragen, was will man erreichen - und manchmal noch viel wichtiger, mit welchem Aufwand?!?
Raimund Rabe schrieb: > @Hagen: > > Ja, ist sicher nicht ganz das Schlechteste was man mit dem PWM-DAC > erreichen kann. Für Low- bis Medium Quality sicher brauchbar, Na das hört sich dann schon ganz anders an, als das ursprüngliche 'geht nicht'
Raimund Rabe schrieb: >> (wenn man die Kurvenform dann in einen Speicher schreibt). > > Ab hier gehe ich nicht mehr konform, oder Du hast es anders gemeint?! > Beim DDS liegt die Kurvenform bereits im Speicher (ROM oder meinetwegen > auch RAM) vor. Es wird nicht erst dann in den Speicher geschrieben. > >> Und "omönis" ist ein PWM-DAC wohl auch kaum! > > Ich weiss schon was du/ihr unter PWM-DAC versteht. Hehe, was habe ich da geschrieben? "omönis"? :-) Die Kurvenform muss ja nicht unbedingt aus einem Speicher kommen. Ein Rechteck oder Dreieck kann ja durchaus auch direkt aus dem Phasen-Akkumulator gebaut werden. Was ich meine ist, das Ergebnis der DDS sukzessive in einen Speicher (zum Beispiel WAVE File) zu schreiben, statt die Daten Real-Time auszugeben. DDS selber bezeichnet ja nur das Verfahren mit dem Phasenakkumulator. Nicht jedoch die Verwendung eines speziellen DACs oder dass die Wellenform Real-Time ausgegeben werden muss. >>> Eine (beliebige) Signalform via PWM-Signal zu erzeugen ist eine völlig >>> andere Vorgehensweise als es ein DDS-Generator macht! >> >> Nicht zwangsläufig. Wenn man die PWM Frequenz als Träger benutzt, der >> anschließend rausgefiltert wird (Tiefpass), geht das durchaus. > > Nein! Doch doch, ich weiß ja auch wie eine DDS (so grob!) funktioniert und du weißt es auch ;-) Die DDS selber erzeugt diesen Träger natürlich nicht, das macht dann der PWM DAC. Zum Beispiel: Man erzeugt mittels DDS einen 1kHz Sinus und gibt den auf einen PWM DAC mit einer Trägerfrequenz von 100kHz (Das ganze natürlich eben pulsweitenmoduliert). Wenn man die Trägerfrequenz jetzt wieder rausfiltert, hat man das 1kHz Sinus Signal (idealerweise natürlich) wieder zurück. > Natürlich könnte man jetzt auf die Idee kommen die absoluten > Spannungswerte mit denen der 'normale' DAC gefüttert worden wäre in ein > Puls/Pausen-Verhältnis einer PWM umzuwandeln. Letzteres scheint wohl das > zu sein, was ihr als "PWM-DAC" in Verbindung mit einer DDS benutzt, > vermute ich jetzt mal!?! Genau darum gehts. Sollte ja auch erlaubt sein, dieses nach wie vor DDS zu nennen, da das Verfahren "DDS" ja nicht vorschreibt, wie die Ausgabewerte verwendet werden müssen. > Diese Methode würde aber die Kurvenform weiter verschlechtern, bzw. die > obere Grenzfrequenz geht weiter in den 'Keller' oder es ist ein größerer > Filteraufwand nötig. Klar, wie bei einem PWM DAC ist (idR) immer ein Filter zur Unterdrückung der Trägerfrequenz notwendig (zum Beispiel auch beim Class-D Verstärker. Zumindest bei langen Lautsprecherstrippen). > Also, don't worry, be happy now, eine traditionelle DDS benutzt in > keinem Fall einen PWM-DAC. Muss ja nicht alles traditionell sein :-D > Bei der Benutzung von µCs und wenn man > externe Hardware vermeiden will/muss, so kann es durchaus sein die > 'Krücke' von PWM-DAC zu benutzen. > Mich würde mal die Qualtität (nachweislich) eines so von Euch erzeugten > Signals interessieren. Berauschend dürfte es wohl nicht sein. Nanana! Du bist voreingenommen. mit PWM-DACs kann man durchaus hohe Signalqualitäten erreichen. Wie gesagt, schau dir einen Class-D Audioverstärker an. Die Teile sind in der letzten Zeit extrem populär geworden. Teilweise extrem geringe Klirrfaktoren und das bei extrem viel besserem Wirkungsgrad(!). Wichtig dabei ist, dass die Trägerfrequenz möglichst weit über der maximalen Signalfrequenz liegt. Dann kann der Filter sehr gut realisiert werden.
@Simon K.: Na dann sind wir ja doch langsam 'alle' auf dem selben 'Nenner' - hehe. Bzgl. Class-D kann ich nur sagen: Habe ich ebenfalls schon gemacht, d.h. zwar nicht bei "A" angefangen, sondern bei "T" wie "Tripath", aber auch ich bin von der Effizienz überzeugt. Der Klirrfaktor ist ausgesprochen gut, was bei dieser Art der PWM auch nicht verwundert - d.h. ohne feste Frequenz, sondern Spread-Spectrum, weil, abhängig vom Tripath-Chip, es sich dynamisch zw. 600kHz und bis zu 1,2MHz bewegt, abhängig vom eingespeisten Musiksignal. Aber bedenkt man, dass man für eine Audiobandbreite von 20kHz einen Takt von bis zu 1,2MHz hat, so ergibt sich daraus ein Faktor von immerhin 60. Für "Shannon" reicht ja schon der Faktor von >=2. Und die meisten Class-D-Endstufen kommen auch nur in seltenen Fällen in die Region der 600kHz - viele 'krebsen' bei nur 200...300kHz rum, um die Schaltverluste klein zu halten. Entsprechend fallen (leider) auch die Klirrfaktoren aus. Nun, bei meinem DDS-Generator von damals, waren 100kHz obere Grenzfrequenz gefordert und der Ref.-Takt lag bei genau 2^24 (=16.777.216Hz). Dadurch hätte man dann kein extrem Steilflankiges Filter benötigt, um die Grundfrequenz aus dem Nutzsignal zu entfernen. Für einen 'sauberen' Sinus habe ich dann aber besser gefiltert als eigentlich notwendig gewesen wäre. Wer weiss wozu man es eines Tages gebrauchen kann. ;-) Wei auch immer - jeder verfolgt halt gern seine eigene Philosophie und beim DDS-Generator verkneife ich mir aus Performance-Gründen den PWM-DAC. Für einen 'Poor-Man'-Generator der möglichst wenig externe Peripherie benötigt ist der PWM-DAC sicherlich eine sehr gute Alternative. ;-) Ich bin also nicht wirklich voreingenommen, sondern vielleicht ein wenig 'festgefahren'. :-))
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.