Mega32: ADC Eingangsschaltung?

OP #1185704
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
OP
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.