www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega32: ADC Eingangsschaltung?


Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.