Hallo Leute,
ich möchte mit einem Atmega644 eine Gleichspannung 0V bis 30V messen.
Ich würde dies mit einem entsprechenden Spannungsteiler realisieren.
Als Schutz für den analogen Eingang hätte ich eine Z-Diode mit
Vorwiderstand vorgesehen.
Meint ihr dass reicht als Schutz ober gibt es hier bessere
Möglichkeiten?
Gruss,
Schorschi.
Das kommt auf die Leistung drauf an, wenn du Dir sicher bist, das die
ZDiode die volle Leistungauch bei einem defekt absichern kann, ist diese
i.O. ich würde Dir auf jedenfall noch einen VDR empfehlen, um auch
wirklich sicher zu gehen.
Gruß
@Schorschi (Gast)
>Als Schutz für den analogen Eingang hätte ich eine Z-Diode mit>Vorwiderstand vorgesehen.
Braucht man nicht. Mach den Spannungsteiler hochohmig, dann begrenzt
der allein die kritische Spannugn am AVR. Die Schutzdioden im AVR leiten
den Strom dann ab, siehe Pegelwandler.
Also 1M + 150k sollten in etwa passen.
MFG
Falk
Hallo Schorschi,
Eine Z-Diode beginnt nicht schlagartig zu leiten. Sehr weit unterhalb
der Zenerspannung fließt bereits ein Strom, der deinen Spannungsteiler
beeinflusst und die Messung ungenau machen wird.
Deshalb macht man das gerne so:
Man klemmt eine Diode nach VCC.
Du würdest für 30V also zb einen 25K Widerstand und einen 5K Widerstand
als Spannungsteiler nehmen. (oder ähnliche). Und eine Diode nach VCC.
Steigt die Spannung am ADC Eingang über 5V + 0.7V der Diode, so fließt
der Strom nach VCC. Der ADC Eingang sieht maximal 5.7V.
Aber auch das ist schon zu viel. Man sollte nie über 5.0V gehen. Auch
bei internen Klemmdioden würden benachbarte ADC Kanäle dann falsch
messen.
Baue deshalb den Spannungsteiler so auf:
Anstatt dem 5K Widerstand nochmals einen Spannungsteiler 1K und 4K. Und
damit gehst Du auf den ADC.
Bei 5.7V sieht der ADC dann nur noch 4.56V
> "Also 1M + 150k sollten in etwa passen."
Ist für einen ADC aber zu hochohmig.
Atmel empfiehlt < 10k zu bleiben.
"The ADC is optimized for analog signals with an output impedance of
approximately 10 kΩ or
less. If such a source is used, the sampling time will be negligible. If
a source with higher impedance
is used, the sampling time will depend on how long time the source needs
to charge the
S/H capacitor, with can vary widely. The user is recommended to only use
low impedant sources
with slowly varying signals, since this minimizes the required charge
transfer to the S/H
capacitor."
@ adfix (Gast)
>> "Also 1M + 150k sollten in etwa passen.">Ist für einen ADC aber zu hochohmig.>Atmel empfiehlt < 10k zu bleiben.
Nöö, nicht wenn man weiss wie ;-)
Ein kleiner Kondensator von ca. 2,2nF löst das Problem. Der liefert
genug Ladung, um den Sample- und Hold Kondensator zu laden, ohne
nennenswert an Spannung zu verliefern. Der Trick klappt allerdings nur
dann, wenn man nicht zu oft misst. Also nur mit ein paar Dutzend Hz
Abtastrate.
MFG
Falk
>Ein kleiner Kondensator von ca. 2,2nF löst das Problem.
Also ich rechne mal: die 14 pF des internen S/H (ent)laden den 2,2nF um
bis zu 0,3% gegen VCC/2. (0.5 * 14 / 2200). Sind also 4 Digits
zusätzlicher Fehler nahe 0V und nahe 5V.
-> um den Fehler auf < 0.5 Digits zu drücken würde ich >= 22nF nehmen
Tau ist dann 3,3ms bei 150k Quellimpedanz.
Für 0,5 Digits Einschwingfehler brauchts dann mehr als 8*3,3ms = 25ms
Mindestabstand zwischen den Messungen.
Allerdings ist dann immer noch der Leckstrom vernachlässigt. Bei hohen
Temperaturen ist der Fehler hierdurch bis zu: 1uA * 150k = 150 mV.
Gruß Anja
Nabend Leute,
na das sind mal hilfreiche Antworten.
An dieser Stelle reicht mir eine Genauigkeit von 100mV volkommen aus.
Ich werde am Wochenende mal den hochomigen Spannungsteiler mit C
austeseten.
Mal was anderes. Ich hab hier aufm Schreibtisch mal eine Testschaltung
auf nem Steckbrett aufgebaut. Ich gehe direkt ohne jegliche Bauteile
dazwischen auf den 1. Analogeingang.
Wenn ich jetzt 30mV anlege dann merkt der ADC dass überhaupt nicht. Ich
lese immer einen Wert 0 aus dem Register. Erst ab 60mV kann ich einen
Wert am ADC messen. Allerdings fehlen dann die 60mV natürlich.
Kann sich dass jemand erklären?
Gruss,
Georg.
Hallo,
hat denn keiner ein ähnliches Problem gehabt?
Laut Datenblatt ist ein Offset von 1Bit möglich.
Wenn ich jetzt von 2 Bit ausgehe wären dass grade mal 15mV bei 5V
Referenz.
Bei mir scheint der Offset über 50mV zu haben.
Kann sich jemand erklären wie dass kommt?
Gruss,
Schorschi.
@ Georg X. (schorsch666)
>Mal was anderes. Ich hab hier aufm Schreibtisch mal eine Testschaltung>auf nem Steckbrett aufgebaut.
Steckbrett klingt nicht gut. Hast du auch AGND und AVCC richtig
angeschlossen? Wie legst du die 30mV an? Aus welcher Quelle kommen die?
Wie misst du die?
MfG
Falk
Hallo,
dass das Steckbrett nicht das Ideale ist, dass ist mir schon klar. Dann
würde ich Rauschen, messbarer Offset o.ä. verstehen.
Aber dass diese Spannungen nicht erkannt werden ist sehr seltsam.
AVCC liegt an 5V = Versorgungspannung. AGND und GND sind auch
miteinander verbunden. AREF ist über einen 100nF auf GND gelegt.
Ich habe am ADC einen AD8210 als Messverstärker hängen. Dahinter ein
Shunt zur Strommessung. Der AD8210 bringt bei 0V am Shunt 30mV am
Ausgang.
Gemessen ist alle mit einem Oszi.
Gruss,
Georg.
Nabend Leute,
ich habe jetzt noch ein paar Tests mit einem KTY81 gemacht.
Selbst hier habe ich diese Probleme.
Was mir auffält ist, dass wenn ich den µC längere Zeit laufen lasse so
über 60min dann sinkt der Offset immer weiter.
Ich verstehe dass nicht.
Kann mir da jemand weiter helfen?
Gruss,
Georg.
Also wenn AREF nach GND liegt, dann kann doch auch keine 5V Referenz
entstehen?! Intern hat auch der Mega644 nur 2,56V. Vll solltest du mal
deine Referenzeinstellungen überprüfen?
PS: Ich habe es selbst noch nie gemacht.. Nur mal ein bisschen gelesen
;)
Gruß
Jannik
Hallo,
dass AREF über nen 100nF auf GND liegt ist richtig. Ist doch so im
Datenblatt beschrieben. Siehe Kapitel
21.9.1 ADMUX – ADC Multiplexer Selection Register
im Datenblatt.
Was mir einfach nicht in den Kopf geht warum der ADC den
Spannungsbereich 0V bis 50mV einfach nicht erkennt bzw. messen kann.
Erst wenn ich drüber bin wird die Spannung erkannt. Als ob das Potential
nicht bei 0V sondern bei 50mV liegt. Ist aber nicht so. Hab ich schon
geprüft.
Gruss,
Georg.
Hallo Jungs,
langsam weiss ich nicht weiter.
Mein ADC vom Atmega644 misst auf jedem der analogen Eingänge erst ab
68mV.
Alles was drunter ist wird mit 0 Digits angezeigt.
Egal ob ich die interne oder die ext. verwende es ist immer das selbe.
Weiss denn keiner Rat?
Kann es sein dass mein ADC hinüber ist?
Gruss,
Georg.
Hi,
wenn du die FW meinst dann weiss ich nicht wo der Fehler sein soll
wenn ich nur bei beendeter Messung das Datenregister des ADCs auslese.
Natürlich schon alles mit dem JTAG gedebugged. Aber es ist wie ich es
schon geschrieben habe. Der Messbereich fängt bei 68mV an.
Georg.
Hallo Leute,
jetzt habe ich ein paar andere µC getestet.
Darunter war ein ATMEGA16 und ein ATMEGA32. Bei allen ist es das selbe.
Das ist doch nicht normal??
Gruss,
Georg.
@Georg X. (schorsch666)
>Darunter war ein ATMEGA16 und ein ATMEGA32. Bei allen ist es das selbe.>Das ist doch nicht normal??
Dann leigt es wohl an deinem AUfbau oder deinen Messmethoden. Ein Oszi
ist denkbar ungeeignet, um Spannung im mV Bereich GENAU zu messen.
Vielleicht hast du aber auch eine Masseverschiebung durch grösere Ströme
oder hohe Kontaktwiderstände auf deinem Steckbrett. Würde mich nicht
wundern.
MfG
Falk
> Ein kleiner Kondensator von ca. 2,2nF löst das Problem.> Also ich rechne mal: die 14 pF des internen S/H (ent)laden den 2,2nF um> bis zu 0,3% gegen VCC/2. (0.5 * 14 / 2200). Sind also 4 Digits> zusätzlicher Fehler nahe 0V und nahe 5V.> -> um den Fehler auf < 0.5 Digits zu drücken würde ich >= 22nF nehmen> Tau ist dann 3,3ms bei 150k Quellimpedanz.> Für 0,5 Digits Einschwingfehler brauchts dann mehr als 8*3,3ms = 25ms> Mindestabstand zwischen den Messungen.> Allerdings ist dann immer noch der Leckstrom vernachlässigt. Bei hohen> Temperaturen ist der Fehler hierdurch bis zu: 1uA * 150k = 150 mV.> Gruß Anja
Hallo!
Mich würde nur interessieren wie Anja auf die 25ms Mindestabstand
zwischen den Messungen kommt. Warum rechnet Sie für 0,5LSB gerade 8*Tau
und nicht mehr oder weniger, wie ist da der Zusammenhang?
Danke
Tobi
Tobi92 schrieb:> Mich würde nur interessieren wie Anja auf die 25ms Mindestabstand> zwischen den Messungen kommt. Warum rechnet Sie für 0,5LSB gerade 8*Tau> und nicht mehr oder weniger, wie ist da der Zusammenhang?
soo wir rechnen mal e hoch 8 = ?
2 hoch 10 (Bit) / 0.5LSB = ?
Die "8" ist natürlich gerundet.
Gruß Anja
Falk Brunner schrieb:> Ein kleiner Kondensator von ca. 2,2nF löst das Problem. Der liefert> genug Ladung, um den Sample- und Hold Kondensator zu laden, ohne> nennenswert an Spannung zu verliefern. Der Trick klappt allerdings nur> dann, wenn man nicht zu oft misst. Also nur mit ein paar Dutzend Hz> Abtastrate.
Der sorgt auch dafür das der AVR durch latchup kaputt geht.
Anja schrieb:> Tobi92 schrieb:>> Mich würde nur interessieren wie Anja auf die 25ms Mindestabstand>> zwischen den Messungen kommt. Warum rechnet Sie für 0,5LSB gerade 8*Tau>> und nicht mehr oder weniger, wie ist da der Zusammenhang?>> soo wir rechnen mal e hoch 8 = ?> 2 hoch 10 (Bit) / 0.5LSB = ?>> Die "8" ist natürlich gerundet.>> Gruß Anja
Vielen Dank!
Entschuldigung für diese "einfache" Frage, aber mir ist einfach nicht
eingefallen.
Tobi