Nur eine kurze Frage zur Sample & Hold Zeit beim mikrocontroller-internen ADC - ist eine höhere Zeit generell besser? Oder schlechter? Wo sind die Vor-/ Nachteile bei größerer/kleinerer Zeit? Meine maximalen pro Sekunde sinken, oder? Was noch?
Die Zeit muß ausreichen um den S/H C entsprechend zu laden (T=R*C) Also abhängig vom Eingangswiderstand und der Kapazität. Liegt die Frequenz im zulässigen Bereich dann kann die Abtastrate ruhig kleiner sein aber eben nicht größer als R*C.
Ja und ist es generell schlimm, den Wert beliebig nach oben zu ändern?
Ist das ne Hausaufgabe ? was verstehst du nicht an der gegebenen Antwort ? T=R*C wenn du die Frequenz erhöst dann reicht die Zeit nicht zum laden des S/H C's.
Nee, ich meinte, wenn ich die S&H-Zeit erhöhe. Das ist doch genau das Gegenteil von dem, was jetzt grad beschrieben wird. Die Aufladezeit wäre doch viel länger.
Vielleicht sollten wir uns darauf einigen was "hoch" und "tief" meint :-) Eine zu lange Ladezeit für den C kann es nicht geben. Franzis oder Dennis ?
Bernd N schrieb: > Franzis oder Dennis ? Zwei Leute an zwei Computern nebeneinander am gleichen Anschluss - selbe Thematik - keine Hausaufgabe! Also um es nochmal klar zu sagen: Ich kann die S&H-Zeit meines ADCs ruhig auf den höchsten Wert setzen - das sind dann 1024 CLK-Cycles oder so. Einen Nachteil hätte ich dadurch nicht? Nur zu kurz ist schlimm...Nachteil: meine maximalen Samples/s. Richtig?
Es muss halt schnell genug für deine Anwendung sein. Bei einer Regelung solltest du so oft/schnell es geht die Werte auslesen. Wenn du z.B. ein kleines selbstbau-Voltmeter bauen willst oder wenn ein Externer ADC schneller wandeln kann als dein µC lesen, brauchst du nicht so schnell auslesen...
Dann machen wir es an einem Beispiel. Welcher MC ? Sollte es ein ATMEGA sein dann gibt es hierzu Angaben im DB => ~200 kHz. Verwendest du stattdessen 1 MHz dann werden deine Messergebnisse nicht stimmen (Ladezeit für C zu kurz). Wird die Frequenz unterhalb von 200 kHz liegen so hat das keinen Einfluß auf die Genauigkeit. Da es Systembedingte Anhängigkeiten gibt kann die CLK auch zwangsweise niedriger sein. Beispiel:
1 | void AdcInit (void) |
2 | {
|
3 | /* ---- Select Adc Channel, int. AREF 2,56V, ext. Cap. ---- */
|
4 | ADMUX |= AdcChannel | 1 << REFS1 | 1 << REFS0; |
5 | ADCSRA = 1 << ADEN | 1 << ADPS2 | 1 << ADPS1 | 1 << ADPS0; // enable ADC, ADC clock /128 = 144 kHz |
6 | DIDR0 = 0xFF; // Digital Input disable (ATMEGA 644p) |
7 | }
|
In dem Beispiel sind es 144 kHz. Beantwortet das deine Frage ?
Jawoll! Besten Dank. Der ADC liest nur die Temperatur ein - da ist kein schneller Wechsel erforderlich.
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.