Ich möchte mit einem AVR einen analogen Ausgang zwischen 0V und einer
Spannung von 3,75V schalten. Die 3,75V sollten etwa auf 5% oder besser
eingehalten werden. Ein Poti-Abgleich wäre möglich. Die Schaltung wird
insgesamt aus 5V versorgt. Das ganze sollte schnell gehen. D.h.
Schaltzeit kleiner als 100ns. Aber der Rythmus ist wesentlich langsamer.
So alle 100ms wird geschaltet.
Ich habe natürlich schon an DA-Wandler gedacht. Das ist eigentlich mit
Spatzen auf Kanonen geschossen, aber naja.
Aber ich finde keine mit 8 Bit (oder auch ander Bits) parallel-Eingang
mit interner Referenz und Rail-to-Rail die auch erhältlich sind. D.h.
Maxim/Dallas gibt es 503 oder 530. Kriege ich aber nirgends.
Bei TI oder LT gibt es nichts passendes.
Ich meine ich hätte mal hier gelesen, das man die interne
Referenzspannung auf einen Ausgang schalten kann. Finde das aber nicht
mehr und weiss aber auch nicht ob das nur bei bestimmten Typen geht.
Beim 644 anscheinend nicht.
Falls das aber geht, wäre es ja möglich die Ref-Spannung über einen OP
entsprechend zu verstärken. Weiss da jemand was? Dann könnte ich über
einen Subtrahierer zwischen Null und der Ref-Spannung umschalten.
Also in Kürze:
1. Kennt jemand einen kaufbaren 8 Bit parallel DA-Wandler mit interner
Referenz und Rail-To-Rail Ausgang?
2. Weiss jemand ob und wie man die interne Referenz vom AVR nach aussen
geben kann?
3. Hat jemand eine andere Idee?
>Entweder 0V oder 3,75V aufm Ausgang?>Wie wärs mit normalen Output-Pin und Spannungsteiler?
Die Idee hatte ich natürlich auch. Wie ich in der Zwischenzeit
festgestellt habe sind die 7805 mit Spannungen zwischen 4.8V und 5.2V
spezifiziert, was etwas weniger als 5% ist. Da könnte es dann doch etwas
genauer sein. Aber die Spannung wird natürlich wegen der Schaltvorgänge
auf der Platine doch schwanken. Das ist eigentlich auch von Übel, da die
Spannung stabil bleiben soll. Daher die Variante mit einer extra
Referenz.
Mach' einen Spannungsteiler an einen Portpin, mit zusätzlich einem R2R
Netzwerk dran, das die Ausgangsspannung noch um vielleicht 0.4 Volt
ziehen kann. Damit kann die Ausgangsspannung fein einstellt werden, es
muss nur ein geringer Spannungsbereich überstrichen werden. Ein ADC
Eingang des AVR misst einen zweiten immer auf High gesetzten und mit
gleicher Widerstandslast versehenen Portpin und regelt das R2R laufend
nach.
Bitzer schrieb:
> Die 3,75V sollten etwa auf 5% oder besser eingehalten werden.
Einfach. Braucht ja nur ein Digitalen IC der mit 3,75V klarkommt (viele
3,3V Teile sind so einsetzbar) und den Ausgang ein und ausschaltet.
Als Spannungsregler zum Beispiel den guten alten LM317.
> Schaltzeit kleiner als 100ns.
1/100ns =10MHz (geht noch ganz gut)
Wenn innerhalb von 100ns auf 5% ein geschwungen sein muss bedeutet dies
etwa:
10Mhz *5 =50MHz (Nicht mehr ganz so einfach. Ein AVR schafft das nicht
mehr.)
Bei Deinen Vorgaben mit 100 nSec Schaltzeiten wird des wahrscheinlich
nix mit Spannungsteiler am uP-Ausgang.
Wie sieht denn Deine Schaltung nach dem Ausgang aus. Was passiert mit
den 3,75 Volt? Welche Leitung ist zu treiben, bei welcher Impedanz ?
Welcher Stromverbrauch in der Senke? Kapazitive Lasten?
Alles noch Fragen, die erst mal geklärt sein müssen, um überhaupt an
eine Lösung zu denken.
Ist die Forderung der kurzen Schaltzeit überhaupt sinnvoll? Wer macht
diese Vorgaben? Was steckt technisch dahinter?
Auch wenn Du mich verfluchst: Mach Dir erst einmal Gedanken über die
Aufagebenstellung. Und wenn das dann passiert ist, hast Du eh schon eine
Lösung, oder wenn nicht, dann poste hier die korrekte Aufgabenstellung.
Dann können sich ein paar schlaue Köpfe Gedanken machen.
Im Augenblick ist nur Raten möglich, und die Ergebnisse werden nicht zu
Deiner Zufriedenheit ausfallen.
Ich füge hier mal eine Skizze hinzu, die die Verhältnisse etwas näher
beschreibt.
Die Schaltzeiten sehe ich hier nicht als Problem, kann mich aber irren.
Der ATMega schaltet nach Messungen und dem IBIS-Modell unbelastet in ca.
5ns, das ergibt so 1V/ns.
Umgekehrt, ergeben sich, wenn man davon ausgeht, das von 0V auf 5V
geschaltet wird, eine max. Frequenz von ca. 1,6MHz. Das sollte
eigentlich gehen.
Da ist ein Unterscheid zu den anderen Einschätzungen hier, die von 10MHz
oder so ausgehen. Ich rechne so: Bei 5V in 100ns sind das 50E6V/s. Das
sind aber nach SR = 2 pi f U, dann ca. 1,6MHz. Vielleicht habe ich da
einen Denkfehler.
Daher habe ich das Problem eher im analogen Teil gesehen. Analogschalter
sehe ich skeptisch, da zwischen zwei Pegeln umgeschaltet werden muss,
diese aber nicht sicher simultan umschalten. Spitzen zwischendurch wären
aber schlecht.
Das Signal moduliert einen FM-Sender. Offen oder 5V ergibt die maximale
Frequenz. Eine Spannung zwischen 0V und 5V eine geringere, 0V die
minimale Frequenz.
Hallo Bitzer,
ich würde das so machen wie es Alexander wohl gemeint hat: Du nimmst
beispielsweise einen 74VHC00 und speist ihn mit 3,75V, die du mit einem
LM317 erzeugst. Den Eingang des 74VHC00 verbindest du direkt mit dem
Ausgang des AVR. Der Ausgang des 74VHC00 schwingt dann blitzschnell von
0V nach 3,75V und umgekehrt.
Allerdings komme ich beim Betrachten deiner Skizze etwas ins Grübeln.
Hängt da ein 50 Ohm Koaxkabel am Ausgang und sind die 200pF die
Kabelkapazität? Dann brauchst du in jedem eine
Wellenwiderstandsanpassung, sonst wird das nichts mit dem schnellen
Einschwingen. Da die Lastseite mit 10k relativ hochohmig aussieht, würde
ich eine Serienanpassung vorschlagen. Dazu fügst du nur zwischen Ausgang
des 74VHC00 und Eingang des Kabels einen Anpasswiderstand ein, der
zusammen mit der Ausgangsimpedanz des 74VHC00 gerade 50 Ohm ergibt.
Statt des 74VHC00 kannst du auch einen 74HC00 nehmen, dann wird die
Geschichte aber deutlich langsamer und du brauchst am Eingang des 74HC00
einen Schutzwiderstand (z.B. 4k7).
Kai
@ Kai
>Hängt da ein 50 Ohm Koaxkabel am Ausgang und sind die 200pF die>Kabelkapazität?
Ja. Ein RG58 Kabel mit 2m Länge verbindet die Last mit der Schaltung.
Das mit der Anpassung ist klar. Da aber die Ausgangsschaltung noch
gesucht wird, habe ich da erstmal keine weiteren Widerstände
eingezeichnet.
Das geht natürlich so, wie Du sagst.
Am liebsten wäre mir aber eine prinzipiellere Lösung, die zumindest von
der Spannung unabhängig ist. Bei der also eine Mimik von Vcc gespeist
wird und nicht von der "Referenzspannung", womit ich hier die 3,75V
meine. Kann sein, das die nochmal geändert wird, so das sie dann nicht
mehr als Versorgungsspannung taugt.
>Am liebsten wäre mir aber eine prinzipiellere Lösung, die zumindest von>der Spannung unabhängig ist. Bei der also eine Mimik von Vcc gespeist>wird und nicht von der "Referenzspannung", womit ich hier die 3,75V>meine.
Hhm, mir nicht ganz klar was du da meinst. Würde ein Low Drop Regler
gehen, der die 3,75V von Vcc aus erzeugt? Oder meinst du etwas
"Ratiometrisches"?
Kai
>Hhm, mir nicht ganz klar was du da meinst. Würde ein Low Drop Regler>gehen, der die 3,75V von Vcc aus erzeugt? Oder meinst du etwas>"Ratiometrisches"?
Ich bezog mich mit:
>Am liebsten wäre mir aber eine prinzipiellere Lösung, die zumindest von>der Spannung unabhängig ist.
auf Deinen Vorschlag:
>Du nimmst beispielsweise einen 74VHC00 und speist ihn mit 3,75V, die du mit >einem LM317 erzeugst.
Wenn ich einen 74VHC00 nehme oder irgendeinen Baustein, bei dem dessen
Spannungsversorgung das Signal zur Verfügung stellt, dann ist erstmal
diese Lösung von einer bestimmten Mindesthöhe des Signal abhängig.
Das geht dann nicht mehr wenn die Spannung etwa 1V sein soll und nicht
3,75V. Ausserdem geht die Störsicherheit runter.
Eine "prinzipielle" Lösung wäre, (mit sicherlich dennoch vorhandenen und
anderen Einschränkungen) unabhängig von der Höhe der fraglichen
Spannung. Z.B. wäre ein Relais "unabhängiger" von der Höhe der Spannung,
als Deine Lösung.
Ich habe in der Zwischenzeit weiter überlegt, und finde die Aufgabe
eigentlich garnicht trivial ist.
Ich habe nur eine positive Versorung. Also kann ich keine invertierenden
Verstärker benutzen. (Falls ja, könnte ich mit einem JFet und OPAmp
schalten). Diskret aufgebaute Inverter haben, wie die integrierte Lösung
den Nachteil das die Störsicherheit von der Spannung abhängt.
Merkwürdigerweise ist die Erzeugung der Spannung durch etwa einen
integrierten DA-Wandler fast einfacher, wenn die interne Referenz
vorhanden. Kann auf Null und auf X Volt eingestellt werden. Ein OP mit
einfacher Spannungsversorgung würde dann noch reichen um die Anpassung
zu machen.
Schade das mir noch keiner so einen nennen konnte.
Wenn Du bei den AVRs nicht fündig geworen bist:
bei Analog Devices mal die sogenannte ADUC-Baureihe ansehen.
(www.analog.com) Die haben i.d.R. ADCs und DACs auf einem Chip,
ebenso die Referenz. Die DACs mit 10Bit sollten wohl reichen.
Die CPU ist zwar eine von der 8051-Family sollte aber nicht weiter
tragisch sein.
Programmierst Du in C ist es noch weniger schlimm umzusteigen...
aber auch in ASM ist es machbar.
Schönen Sonntag
Seppl