OP Amp Verstärkung mit einfachem I/O-Pin umschalten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • OP Amp Verstärkung mit einfachem I/O-Pin umschalten

      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

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bastlbeda ()