Hallo Gemeinde,
ich will euch hier mal eine Idee zeigen, die vielleicht dem ein oder anderen helfen könnte (Mir wurde in diesem Forum schon sehr viel geholfen)
In einem Projekt habe ich ein Sinussignal aus einem AD9833, das ich unterschiedlich verstärken will. Einmal mit Vu = 1 und einmal mit Vu = 2.
Voraussetzung:
Der AD9833 liefert kein wirkliches AC-Signal sondern eine (PWM-Modulierte) Sinusschwingung deren Uss sich von 0V bis +1V bewegt. Der DDS-Chip gibt das AC-Signal mit einem Offset aus, weil er nur eine einfache Spannungsversorgung hat und keine negative Ausgangsspannung erzeugen kann. Daher ist das analoge Signal nie negativ.
Das ist übrigens auch so, wenn ihr mit dem AVR ein PWM-Signal erzeugt.
Um nun ein AC-Signal zu haben, könnte ich es mit einem C auskoppeln, aber genau das vermeide ich und schon funktioniert meine Schaltung.
Dazu habe ich diese Schaltung verwendet. Ein nicht invertierender Verstärker, R1 und R2 sollen zur Erklärung beide 1K haben. Der OP-Amp benötigt auch nur eine einfache Versorgungsspannung und kann mit den 5V des AVR betrieben werden.
OP_AMP_Umschaltung.jpg
Ohne den AVR-Pin anzuschließen (Ende von R1 hängt quasi in der Luft) hat der OP-Amp eine Verstärkung von 1, da R1 ja unendlich ist. R2 könnte auch jeden beliebigen Wert haben, ist aber in dieser Betriebsart egal. Der OP-Amp arbeitet also asl Spannungsfolger.
R2/unendlich ist immer 0, somit gilt:
Vu = 1+( R2/R1) = 1 + (1K/unendlich) = 1 + 0 = 1
Ich schließe nun das offene Ende an einen I/O-Pin an und schalte diesen als Eingang und den PullUp schalte ich aus.
Dies geschieht mit:
DDRx.n = 0;PORTx.n = 0;
Somit ist dieser Pin sehr hochohmig (ca. 100 MOhm). Das kann man also im Bezug auf den 1K-Widerstand als "offen" oder Tri State betrachten.
Obwohl R1 jetzt an einem AVR-Pin hängt hat der OP-Amp eine Verstärkung von 1.
Vu = 1+( R2/R1) = 1 + (1K/100M) = 1,00001
Will ich nun die Verstärkung umschalten, schalte ich den AVR-Pin als Ausgang mit 0-Pegel.
Dies geschieht mit:
DDRx.n = 0;PORTx.n = 0;
Dadurch liegt nun R1 auf Masse (0-Pegel) und die Verstärkung ist eingestellt auf Vu = 1+( R2/R1) = 1 + (1K/1K) = 2
Ich muss mir zwar sicher sein, dass ich ein Signal ohne negative Anteile habe, spare mir dafür aber die Koppelkondensatoren Das hat auch Vorteile in Bezug auf Frequenzgang/Linearität.
Erst am Ende der Kette kommt dann ein Koppelkondensator rein um ein echtes AC-Signal zu haben.
Soweit die Erläuterung. Man kann dieses Spiel mit mehreren Ports und mehreren Widerständen noch beliebig weiter treiben um verschieden Verstärkungen einzustellen. Allerdings ist die kleinstmögliche Verstärkung 1.
Das war's auch schon. Ich hoffe , es hilft einigen von Euch
ich will euch hier mal eine Idee zeigen, die vielleicht dem ein oder anderen helfen könnte (Mir wurde in diesem Forum schon sehr viel geholfen)
In einem Projekt habe ich ein Sinussignal aus einem AD9833, das ich unterschiedlich verstärken will. Einmal mit Vu = 1 und einmal mit Vu = 2.
Voraussetzung:
Der AD9833 liefert kein wirkliches AC-Signal sondern eine (PWM-Modulierte) Sinusschwingung deren Uss sich von 0V bis +1V bewegt. Der DDS-Chip gibt das AC-Signal mit einem Offset aus, weil er nur eine einfache Spannungsversorgung hat und keine negative Ausgangsspannung erzeugen kann. Daher ist das analoge Signal nie negativ.
Das ist übrigens auch so, wenn ihr mit dem AVR ein PWM-Signal erzeugt.
Um nun ein AC-Signal zu haben, könnte ich es mit einem C auskoppeln, aber genau das vermeide ich und schon funktioniert meine Schaltung.
Dazu habe ich diese Schaltung verwendet. Ein nicht invertierender Verstärker, R1 und R2 sollen zur Erklärung beide 1K haben. Der OP-Amp benötigt auch nur eine einfache Versorgungsspannung und kann mit den 5V des AVR betrieben werden.
OP_AMP_Umschaltung.jpg
Ohne den AVR-Pin anzuschließen (Ende von R1 hängt quasi in der Luft) hat der OP-Amp eine Verstärkung von 1, da R1 ja unendlich ist. R2 könnte auch jeden beliebigen Wert haben, ist aber in dieser Betriebsart egal. Der OP-Amp arbeitet also asl Spannungsfolger.
R2/unendlich ist immer 0, somit gilt:
Vu = 1+( R2/R1) = 1 + (1K/unendlich) = 1 + 0 = 1
Ich schließe nun das offene Ende an einen I/O-Pin an und schalte diesen als Eingang und den PullUp schalte ich aus.
Dies geschieht mit:
DDRx.n = 0;PORTx.n = 0;
Somit ist dieser Pin sehr hochohmig (ca. 100 MOhm). Das kann man also im Bezug auf den 1K-Widerstand als "offen" oder Tri State betrachten.
Obwohl R1 jetzt an einem AVR-Pin hängt hat der OP-Amp eine Verstärkung von 1.
Vu = 1+( R2/R1) = 1 + (1K/100M) = 1,00001
Will ich nun die Verstärkung umschalten, schalte ich den AVR-Pin als Ausgang mit 0-Pegel.
Dies geschieht mit:
DDRx.n = 0;PORTx.n = 0;
Dadurch liegt nun R1 auf Masse (0-Pegel) und die Verstärkung ist eingestellt auf Vu = 1+( R2/R1) = 1 + (1K/1K) = 2
Ich muss mir zwar sicher sein, dass ich ein Signal ohne negative Anteile habe, spare mir dafür aber die Koppelkondensatoren Das hat auch Vorteile in Bezug auf Frequenzgang/Linearität.
Erst am Ende der Kette kommt dann ein Koppelkondensator rein um ein echtes AC-Signal zu haben.
Soweit die Erläuterung. Man kann dieses Spiel mit mehreren Ports und mehreren Widerständen noch beliebig weiter treiben um verschieden Verstärkungen einzustellen. Allerdings ist die kleinstmögliche Verstärkung 1.
Das war's auch schon. Ich hoffe , es hilft einigen von Euch
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bastlbeda ()