Signalgenerator: PWM oder R2R?

Ich möchte einen Signalgenerator mit einem ATmega 328P auf einem Arduino bauen. Welcher Weg wäre besser. Verwenden Sie einen der eingebauten Timer (8 Bit oder 16 Bit), um eine PWM zu erzeugen und diese dann tiefpasszufiltern, oder verwenden Sie ein R2R-Leitersystem?

Ich interessiere mich mehr für Harmonische als für Frequenzen, aber ich hoffe auf etwa 10 kHz oder mehr.

Danke für deinen Rat.

Wenn Ihnen Signalklarheit wichtig ist, entscheiden Sie sich für einen DAC, nicht für PWM.
Und verwenden Sie die DDS-Software, wenn Sie eine hohe Auflösung wünschen.

Antworten (2)

Wenn Sie sich Sorgen um Oberschwingungen machen, sollten Sie PWM unbedingt vermeiden. Rechteckige Wellen sind vollgepackt mit Harmonischen, die sich so weit erstrecken, wie es die Pin-Slew-Raten zulassen. Obwohl die Tiefpassfilterung das Material höherer Ordnung leicht entfernt, ist das Material niedrigerer Ordnung ohne ernsthafte Filterung schwieriger zu entfernen. Sie geben nicht an, mit wie viel harmonischer Verzerrung Sie leben könnten oder welchen Frequenzbereich und welche Wellenformen Sie zu erzeugen versuchen (10 kHz lassen mich denken, dass Sie versuchen, einen Audio-Wellenformgenerator zu bauen), aber Sie kämpfen damit auf verlorenem Posten wird ohnehin dazu führen, dass Sie externe aktive Komponenten benötigen - warum also nicht einen DAC hinzufügen?

Ich vermute auch, dass Sie keinen Code schreiben möchten, also zeigt eine kurze Google-Suche, dass Adafruit ein MCP4725-Breakout-Board mit einer vorgefertigten Bibliothek und einem Tutorial anbietet. Der MCP4725 ist ein 12-Bit-DAC. Auch wenn sein INL zu wünschen übrig lässt, werden Sie mit dem Onboard-PWM eine gute Größenordnung besser dran sein als selbst Ihre besten Bemühungen.

Wie Leon Heller sagt, wenn Sie wirklich qualitativ hochwertige Signale (und über einen viel breiteren Frequenzbereich) erzeugen möchten, können Sie sich für eine DDS-Lösung entscheiden. Analog Devices bieten einige nette mit integriertem SRAM für die Speicherung beliebiger Wellenformen, also richten Sie einfach den Chip ein, sagen ihm, dass er gehen soll, und Sie sind fertig - es ist kein konstanter Datenstrom erforderlich. Dies geht jedoch wahrscheinlich zu diesem Zeitpunkt über Ihre Anforderungen hinaus. Es gibt auch eine Reihe billiger chinesischer Boards auf Basis des AD9850 bei eBay, die von Interesse sein könnten.

Danke für die Antwort. Ich hätte mehr Infos geben sollen. Ich suche einen Allzweck-Signalgenerator. Ich versuche auch, so viel wie möglich zu lernen, damit das Schreiben von Code überhaupt kein Problem darstellt. Das bedeutet auch, dass ich eher zu einer Do-it-yourself-Lösung als zu einem Breakout-Board greifen würde, aber das kommt nicht in Frage. Mein Hauptpunkt war, dass ich keine klaren Informationen darüber finden konnte, welches PWM besser ist als R2R. Ich habe keine jahrelange Erfahrung mit Elektronik, also wurden die 10 kHz aus der Luft gezogen. Es schien einfach etwas zu sein, das der ATmega328 ohne große Verzerrung handhaben sollte. Obwohl höhere Frequenzen nützlich sein können.
Wenn Sie lernen möchten, würde ich sowohl die PWM-Technik (da sie schnell erledigt ist und Sie bald sehen werden, warum ihre Leistung schlecht ist) als auch die DAC-Technik ausprobieren. Sie haben viel Kontrolle darüber, was vor sich geht, und Sie werden mehr von der Signalsynthese übernehmen, als Sie einen externen DDS-Chip steuern würden. Von dort aus können Sie, wenn Sie möchten, zu anspruchsvolleren Ausgaben übergehen. Dies zeigt jemanden, der so ziemlich das Gleiche versucht wie Sie – einen Blick wert.

Es ist schwer definitiv zu sagen, welches besser ist, da es davon abhängt, wie Sie eine der beiden Techniken implementieren. Im Allgemeinen würde ich sagen, dass PWM der richtige Weg ist, da R2R viele Pins und gut angepasste Widerstände erfordert, selten für viel mehr als 8 Bit verwendet wird und immer noch gefiltert werden muss.

Wie bereits erwähnt, würde ich mich für einen dedizierten DAC entscheiden, wenn Sie gute Ergebnisse erzielen möchten, aber wenn es zu Lernzwecken ist, sollte die Route des Timer- / PWM-Moduls mit einem anständigen Filter plus Operationsverstärker halbwegs anständige Ergebnisse liefern, und Sie werden ein paar Dinge aufgreifen der Prozess. Es gibt viele Tutorials zu PWM-Signalgeneratoren, die Ihnen den Einstieg erleichtern.