Forum: Mikrocontroller und Digitale Elektronik Mega32: ADC Eingangsschaltung?


von Matthias L. (matze88)


Lesenswert?

Hallo!
Ich hatte den Beitrag eigentlich vor ner halben Stunde schonmal 
geschrieben, da muss wohl was schiefgegangen sein. Hier nochmal:

Ich arbeite mit dem Mega 32 und möchte den ADC benutzen. Dabei habe ich 
das Problem, dass ich einen externen MUX benutze, welcher sich die 
Adresspins auf einer Art "Bus" teilt und kein Latch enthält. Das heißt, 
ich muss den Bus so lange blockieren, bis Sample & Hold stattgefunden 
hat. Das ist soweit kein Problem, bei ner ADC Clock von F/32 sind das 
etwa 48 Takte. Jedoch benötige ich in Wirklichkeit mehr Wartezeit:
Der Sample & Hold Kondensator (laut Datenblatt) hat etwa 14 pF. Hinzu 
kommen noch einige pF durch die Leitungsführung (Ab Mux etwa 3cm mit 1mm 
Abstand zwischen den Bahnen).

Der Serienwiderstand vorm S/H Kondensator ist im Mega32 Datenblatt (ADC 
- Analog Input Circuit) mit 1-100k Ohm angegeben. Diese Angabe ist 
irgendwie nicht viel Wert. Hat da jemand genauere Informationen? Ich 
kann das ganze natürlich einfach ausprobieren (mach ich auch) und die 
Zeit so lange erhöhen, bis ich stabile Messwerte erhalte. Jedoch scheint 
es bei so einer Datenblattangabe wohl sehr starke Schwankungen zu geben.
Das Problem: Mit 200 k  14 pF  5 (eine Worst-Case Berechnung zumal ich 
einige 100 k Ohm Potis am Eingang habe, der Rest sind 10 k Potis) lande 
ich im 10-Millisekunden Bereich. Das ist mir eigentlich viel zu viel.
Ich würde gerne das zusätzliche Latch vor den Mux-Adresseingängen 
sparen. Ein Kondensator für die 100 kOhm Einangsquellen liegt noch drin, 
die 10 k Quellen kriegen jedoch keinen eigenen (soviel Kleinkram im 
einstelligen nF Bereich habe ich nicht rumliegen).

Hauptfrage also nochmal: Wie groß ist in der Praxis der Serienwiderstand 
im ADC Eingang vorm SH Kondensator?

Dankeschön

Matthias

von Matthias L. (matze88)


Lesenswert?

Ich nochmal... Ich sehe gerade, dass ich mich verrechnet hab.

Bei 100 kOhm, 14 pF und 5*tau komme ich auf 7 µs nicht 7 ms. Das ist 
schon wieder im völlig akzeptablen Bereich (sind halt 56 Takte). Wenn 
ich dann so 20 Takte nach Mux-Umschalten warte bis ich dem ADC den 
Messauftrag gebe und dann noch so lange blockiere, bis 1,5 ADC Takte 
(=48 µC Takte @ 1/32) um sind, liege ich ja schon relativ gut. Ist zwar 
nicht schön, einen so lange blockenden Interrupt zu haben, jedoch für 
meine Applikation völlig ausreichend. (In jedem ADC Complete Interrupt 
wird die nächste Umwandlung angestoßen, macht also ~65 Takte alle 
13*32+~20=420 Takte, somit ~15% Prozessorgrundlast) Sollte ich einen 
Mangel an Geschwindigkeit bekommen, so kann ich immernoch Pausen 
zwischen den ADC Umwandlungen einbauen. Insgesamt möchte ich 3*8=24 
Potis einlesen und brauche effektiv maximal 1 Wert / 10 ms, mit der 
jetzigen Geschwindigkeit bekomme ich einen Wert alle 1,x ms.

Dennoch wäre es vielleicht ganz interessant, wenn jemand näheres zur 
internen Beschaltung am ADC Eingang weiß? Google ist auch nicht 
besonders hilfreich...

Matthias

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
Noch kein Account? Hier anmelden.