PWM-Ausgangslautstärke des Mikrocontrollers

Also entwerfe ich ein billiges und einfaches Soundgerät mit dem Atmega32U4 uC und bin auf ein Problem gestoßen.

Ich verwende den 10-Bit-PWM-Ausgang des uC zur Audioausgabe und möchte, dass der Benutzer die Ausgangslautstärke über Tasten und nicht über ein diskretes Potentiometer steuern kann. Eine typische Lösung wäre, einfach die PWM-Ausgangsleistung zu verringern; aber auf diese Weise verliere ich die ohnehin niedrige Auflösung - indem ich die Ausgangslautstärke nur um 10 dB reduziere, bekomme ich bereits eine 60% niedrigere Ausgangsspannung und betrete daher bereits das Gebiet der 8-Bit-Auflösung.

Deshalb habe ich angefangen, nach einer billigen Hardwarelösung zur Lautstärkereduzierung zu suchen, und ich möchte kein digitales Potentiometer verwenden, da sie relativ teuer sind. Am Ende kam ich auf die unten gezeigte Lösung; im Grunde verwendet es zwei uC-PWM-Ausgänge, einen zur Steuerung der Lautstärke (VOLPWM) und einen zur Audioausgabe (OUTPWM); der VOLPWM wird stark integriert und dann schaltet der Q1 entsprechend dem OUTPWM zwischen Masse und der VOLPWM-Ausgangsspannung um. Beachten Sie, dass die Ausgangsintegration nach dem Q1 + R2-Paar erfolgt, das reine PWM-Signal tritt in die Q1-Basis ein.

Ich habe auch überlegt, ein Push-Pull-Paar anstelle von Q1 + R2 zu verwenden, konnte jedoch keinen anständigen Low-Level-Ausgang erzielen.

Meine Fragen sind:

  1. Gibt es bessere Lösungen für mein Problem?

  2. Wird der ähnliche Wert von R2 und R5 nicht problematisch sein?

  3. Was könnten die anderen Nachteile meiner Lösung sein?

Dual-PWM-Lösung

Haben Sie irgendetwas, um den Basisstrom in Q1 zu begrenzen?
@Colin nein, aber du hast recht, vielleicht wäre es besser, einen 1k-Widerstand der Serie hinzuzufügen

Antworten (1)

Das ist eigentlich ziemlich gut – Sie haben einen multiplizierenden DAC erstellt.

Das größte Problem, das ich sehe, ist, dass die Zeitkonstante des Integrators davon abhängt, ob Q1 ein- oder ausgeschaltet ist – wenn es eingeschaltet ist, haben Sie nur R5 in der Schaltung, aber wenn es ausgeschaltet ist, haben Sie R2 + R5 in Reihe. Um den Effekt zu minimieren, machen Sie R5 ein paar Größenordnungen größer als R2. (Reduzieren Sie zum Ausgleich den Wert von C2.)

Gibt es andere Möglichkeiten, den R2-R5-Effekt zu reduzieren? Wenn ich R5 erhöhe, muss ich C2 entsprechend verringern, und ich bin mir nicht sicher, wie der Integrator mit einem Kondensator von mehreren pF in seiner Rückkopplung und mit den niedrigen Strömen, die R5 erzeugen wird, funktionieren wird.
Übrigens danke, dass Sie sagen, dass es sich um einen multiplizierenden DAC handelt. Ich werde es mir ansehen.
@ sx107 Ich weiß, dass dies ein alter Thread ist, aber ich frage mich, ob Sie damit weiter gegangen sind und wenn ja, auf welche Komponentenwerte Sie sich festgelegt haben?
@IanBland Hat perfekt funktioniert. Die Werte auf dem Schaltplan sind mehr oder weniger die gleichen wie ich mich entschieden habe, obwohl ich glaube, dass ich den Ausgangsintegrator durch einen Follower und einen RC-Filter ersetzt habe.
Interessant, danke!