Hallo, ich messe mit einem extern ADC ueber einen Demultiplexer 8 Analoge Spannungen. Der Demultiplexer wird durch eine feste Zeit von einem Timer aus geschaltet. Durch dieses Umschalten der Demultiplexer auf die zumessende Spannung tritt ein Einschwingverhalten auf. Dieses Einschwingverhalten messe ich im Moment mit und bringt meine Mittelwertbildung aus 32 Messungen drucheinander. Nachdem Umschalten auf einem anderen Kanal koennte ich eine feste sichere Zeit warten z.B. 1 Sekunde und dann erst die Messung beginnen. Ich wuerde aber gerne wissen wie man soetwas berechnet. Ich koennte das Einschwingverhalten auch messen und dann in meinem Programm eine feste Zeitkonstante spaeter das Samplen beginnen. In meinen Augen ist das aber nicht die richtige Methode und mich wuerde auch viel mehr interessieren ob man dieses berechnen kann. Ich moechte ungerne viel Rechenzeit des µC verschwenden bzw. aus Sicherheit z.B. 5 Sekunden warten und dann erst das Sampeln beginnen. Kann mir jemand diesbezueglich weiterhelfen? Gibt es fertige Algorythmen bzw. Formeln oder Anhaltswerte im Datasheet des jeweiligen Multiplexer / Demultiplexer ? Gruß, Dirk
Ich mache das so, daß ich im Timerinterrupt nur die Messung starte. Und der ADC-Interrupt stellt dann schon den nächsten Eingang ein und speichert das Ergebnis ab. Somit ist genügend Zeit bis zum Start im nächsten Timerinterrupt und es wird keine Wartezeit verschwendet. Der Timerinterrupt erfolgt alle 1024 Zyklen (1ms bei 1MHz) und es ist kein Kanalübersprechen merkbar. Peter
Der Multiplexer sollte eigentlich kein eigenes Einschwingen verursachen, das kommt sicher von der Eingangskapazität und eventuell dem Eingangswiderstand des AD-Wandlers. Ein Pufferverstärker vor dem ADC würde vermutlich helfen. Die Quellen müssen natürlich auch möglichst niederohmig sein um die Kapazität zu laden. Ein Multiplexer wie der CD4016 hat immerhin um 1 kOhm Durchlaßwiderstand, da gibts auch niederohmige Typen mit wenigen Ohm.
Wie Peter schrieb, ist der Trick das Umschalten und Messen zeitlich etwas anders aufzuteilen. Anstatt: Umschalten-Messen-Warten-Umschalten-Messen-Warten-... ^ ^ Interrup 1 Interrupt 2 Einfach: Messen-Umschalten-Warten-Messen-Umschalten-Warten-... ^ ^ Interrupt 1 Interrupt 2
Hi, ich danke euch. Ich hab es natuerlich genau anders herum gemacht. Die Loesung gefaellt mir sehr gut. Danke Gruß, Dirk
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.