Hallo! Ich muß eine Spannung im Bereich von -30V bis +30V messen. Ich habe als Testschaltung folgendes realisiert: (funktionsfähig) Eingang mit hochohmigen Spannungsteiler durch Faktor 12 teilen. Dann diese Spannung per Impedanzwandler "verstärken" und einem Summierverstärker zuführen. Als 2. Summierspannung wird eine Referzenz von -2,5V verwendet. Summierverstärkungsfaktor liegt bei 1. Als Ergebnis erhalte ich eine Spannung von 0 bis 5V. Nach ersten Stress-Test scheint die Schaltung sogar (halbwegs) stabil zu sein. Leider erreiche ich mit dieser Lösung nur eine Auflösung von etwa 58,5mV bezogen auf eine Differenz von 60V und den 10Bit. Was ich mir jetzt noch überlegt hätte: Ich müsste irgendwie dedektieren, ob die Spannung pos. oder negativ ist und dann dementsprechend die Spannung invertieren oder eben nicht. Dadurch könnte ich die 10Bit-Auflösung vom AD-Wandler bereits für die 30V aufteilen, was eine Auflösung von etwa 29mV ergibt. Wie könnte ich diese "Umschaltung" realisieren? :) Die Spannung ist statisch, d.h. es muß nichts schnelles gemessen werden. Oder gibt es noch eine andere günstige Möglichkeit (ATMega128 ist bereits vorgegeben und 3 AD-Kanäle wären noch frei; Referenz auf 5V) die Auflösung "hochzudrehen"? ;) Gruß, Techniker
Mit einem schmittrigger einmal ermitteln obs positiv ist oder negativ, am ausgang hast du dann +V oder -V dann zum ausgang +V addieren, dadurch solltest du dann die -V weg bekommen, gleichzeitig noch /6 rechnen. das ergebnis kannst du dann an einem digitalen port abfragen. oder, mit schmittrigger wieder als impedanzwanlder nehmen, und mit einer diode verhindern das eine negative spannung an den uC kommt, dahinter noch einen pull down-widerstand damit die spannung auch wirklich auf 0V geht wenn die diode sperrt Ich hoffe das funktioniert so^^ mfg Azrael
mir fällt grad ein das das noch nix an der auflösung ändert wenn du erkennst obs pos, oder neg ist, kannst du auch zum addierer von den -2.5 gehn, und dort je nachdem +0 oder +2.5V so in der art... mfg Azrael
@Azrael: Danke für deine Beiträge! :) Leider kann ich dir aber nicht ganz folgen, was du genau meinst! :-/ Könntest du bitte mal eine Skizze zeichnen? ---- Ich habe geade nochwas anderes ausprobiert: Ich habe mittels eines Operationsverstärkers ermitelt, ob die Spannung pos. oder neg. ist. Ich erhalte somit P15 bzw. N15 am Ausgang des OPs. Mittels einer Diode (Kathode zum OP), nachgeschalteter 5V1 Z-Diode gegen Masse sowie 100k-Widerstand gegen Masse erhalte ich (theroretisch) eine Spannung zwischen 0V und -5,1V welche ich dann zum Summierer geben könnte. In der Praxis ist das jedoch nicht so einfach, da die Spannung über die 5V1 Z-Diode nicht stabil genug ist. Sie driftet extrem Temperaturabhänig um +/- 200mV bei Soll = -5,1V -> absolut inakzeptabel! :( (Die Begrenzung auf 0V wäre ok -> 1,8mV) Hat nochwer einen Tipp für mich? Gruß, Techniker
Billigvorschlag, wenn Du zwei AD-Kanäle benutzen kannst: Messspannung über 1/6 Spannungsteiler herunterteilen, einmal direkt an AD-Eingang Nr 1., einmal über einen OP mit v = -1 an AD-eingang Nr.2., den Rest im Programm erledigen (ADC1=0, ADC2=1023 => -30V). Die Begrenzung machen die internen Schutzdioden der Eingänge in Verbindung mit geeigneten Vorwiderständen, das würde ich zur SIcherheit aber nochmal nachlesen.
@EZ81__: Das mit den 2 Kanälen hatte ich mir auch schon überlegt. Kanäle sind ja noch frei und die Aufbereitung per Software ist kein Thema. Was mir aber "Bauchschmerzen" bereitet ist die neg. Spannung am µC. Bzw. eine Möglichkeit die Spannung auf 0V zu begrenzen. Laut Datenblatt (wenn ich das richtig erkenne) halten die Eingänge max. -1V aus. D.h. es müsste reichen, wenn ich vom OP-Ausgang über 10k und eine Schutzdiode gegen Masse zum A/D-Eingang vom µC gehe, oder? Irgendwie gefällt mir aber diese Lösung nicht richtig... :-/ Was macht eigendlich der A/D-Wandler, wenn am Eingang etwa -0,5V (Spannungsfall der Schutzdiode) anliegen? Bzw. welchen Wert meldet er zurück? 0? Softwaremässig müsste ich dann nur schauen, welcher der beiden Kanäle einen Wert führt. Der andere müsste autom. immer 0 sein!?! Gruß, Techniker
EZ81 meinte es so : von 0Volt bis 30V ---> Kanal 1 die negative Spannung 0V bis -30V werden bis auf -5V heruntergeteilt und dann pr OPV Invertiert, Was +5 Volt ergibt. Mit dem Kanal 2 kannst Du diesen Wert messen und ein neg. Vorzeichen dazugeben. ich habe fertig
@Schau Mal: Das habe ich schon kappiert! ;) Was ich mich aber (noch) frage: Was macht der ADC mit -0,5V am Eingang? (Die -0,5V kommt von der externen Schutzdiode gegen GND, die die neg. Spannung begrenzt) Und vor allem: Überlebt es der ADC dauerhaft mit den -0,5V am Eingang? (liegt ja an einem Kanal immer an) Gruß, Techniker
Also ich hab mal ein kleines spice netzwerk zusammen gebaut: zuerst über spannungsteile 1/12 für +-5V Dann wird das ganze gleich gerichtet mit 2 schaltungen 1te: opv als invertierender verstärker --|__|-----|__|------- | | |---|>|---- Diode | | |-- +OpV--- -OpV geht auf masse die zweite schaltung funktioniert fast gleich, nur das das ergebnis nochmal invertiert wird Am ausgang ensteht dadurch eine minimale spannung von 0,7V mit einer shotky-diode könnte man auf 0,35V runter kommen maximale spannung ist 5V danach sollte es per software nichtmehr schwer sein heraus zu finden welche welche spannung ist die Themperaturabhängigkeit der diode sollte egal sein, da sie normal in sperrichtung betrieben wird.
Mal eine ganz dumme Frage, warum nimmst du anstatt mit irgendwelchen Tricks die Auflösung zu erhöhen nicht einfach einen externen AD Wandler mit einer höheren Auflösung? Wahrscheinlich wird die Genauigkeit deiner Messung unter dieser Bastelschaltung am Eingang leiden, so das du zwar theoretisch eine höhere Auflösung hast, diese aber praktisch nie erreichen wirst. Wie hoch soll die Auflösung denn überhaupt sein? So schlecht sind 60mV Auflösung auf 60V ja nun auch nicht, also für Messungen an einem Motor o.ä. würds wohl reichen. Gruß Michael
Hallo Techniker, die externe Schutzdiode kannst Du dir sparen, wenn der Vorwiderstand groß genug ist: http://www.atmel.com/dyn/resources/prod_documents/doc2508.pdf Im AtMega8 Datenblatt steht: Voltage on any Pin except RESET with respect to Ground -0.5V to VCC+0.5V das gilt also auch für die ADCs (zumindest beim AtMega8); was der ADC bei -0.5V macht, weiß ich nicht, es würde mich aber sehr wundern, wenn nicht 0 herauskommt.
@EZ81__: Hast recht! :-/ Bin auf die Schnauze gefallen, als ich nach "atmega128.pdf" gesucht habe und dieses alte DataSheet gefunden hab: http://www.ee.lut.fi/fi/opi/kurssit/Sa2910210/ATMega128.pdf (Da steht auf Seite 321 noch -1.0V) Im aktuellen auf www.atmel.com: (Suchbegriff "atmega128 pdf") http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf steht auf Seite 321 schon -0.5V. Anscheinend gabs da mal irgendwelche Probleme... Ich werde morgen das mal ausprobieren, was der Mega128 macht, wenn ich ihm eine neg. Spannung zum wandeln gebe. Da es aber auf eine Diode mehr oder weniger auch nicht ankommt, werd ich dem Mega128 schon jeweils eine Schottky-Diode spendieren. Dadurch erreiche ich nur so um die -0.3V, was dem Port hoffentlich nix ausmacht. :) Ich melde mich dann wieder, obs hinhaut oder nicht... ;) @Michael: Auch wenn ich mir noch einen externen (teuren) A/D-Wandler "gönne", so muß ich immer noch die -30V..+30V per OP-Schaltung aufbereiten. Dadurch kann ich auch gleich anfangen zu tricken, oder etwa nicht? ;) Gruß, Techniker
Wie wärs mit Software? Reines Oversampling sollte reichen wenn die Ergebnisse des ADCs genügend schwanken oder man erzeugt sich per PWM ein entsprechendes Ditherrauschen. http://www.atmel.com/dyn/resources/prod_documents/doc8003.pdf
Hallo! Wollte nur kurz berichten, dass der Mega128 anscheinend keinerlei probleme mit -0,2V an einem A/D-Eingang hat. Er liefert als Wandlerwert konstant 0. :-) Gruß, Techniker
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.