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