Settling Time ADC Atmega 4808

Gast #6950283
Lesenswert?

Hallo,

ich habe ein Projekt mit dem Atmega4808 vor. Beim ADC steht im 
Datenblatt:
"The ADC requires a settling time after switching the input channel - 
refer to the Electrical Characteristics section for
details."

Leider finde ich dazu keinen Hinweis, wie hoch die Zeit bzw. wieviel 
Clocks das nun wirklich sein soll. Habt ihr da eine Idee? Ich schalte 
immer zwischen zwei Kanälen um und messe dann. Die Zweit zwischen 
Kanalwechsel und Messung starten suche ich quasi.
1
  ADC0.MUXPOS = MUX_I_SOLL;
2
  ADC0.COMMAND = ADC_STCONV_bm;
3
  asm volatile ("nop");
4
  while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) );
5
  I_soll = ADC0.RES;
6
    
7
    //////////////////////////////////////////////////////////////////////////
8
  ADC0.MUXPOS = MUX_I_IST;  
9
  ADC0.COMMAND = ADC_STCONV_bm;
10
  asm volatile ("nop");
11
  while ( !(ADC0.INTFLAGS & ADC_RESRDY_bm) );
12
  I_ist = ADC0.RES;
#6950291
Lesenswert?

Beim Umschalten des ADC-Eingangs muss der Input-Kondensator auf die neue 
Spannung umgeladen werden. Wie lange das dauert, hängt nicht von der 
(ADC-)Clock ab, sondern von Kapazität und Widerstand. (und auch von der 
Spannungs-Differenz zwischen den Kanälen)

Wenn dein zu messendes Signal hochohmig ist, musst du das natürlich auf 
die 14k aufaddieren.


(Ob du mit 5pF oder 10pF rechnen musst, hängt von der Referenzspannung 
des ADC ab)
Angehängte Dateien:
#6950299
Lesenswert?

Wie Ernst schon schrieb hängt das von der Eingangsbeschaltung des 
jeweiligen Kanals ab. Dem Eingangskondensator muss halt Zeit gegeben 
werden, damit er sich umladen kann. ;)
Da man idR hochohmig misst kann das eine signifikante Verzögerung nach 
sich ziehen. Es kann hierbei helfen, einen Puffer zwischen zu schalten 
aber auch hier sind die entsprechenden Verzögerungen zu berücksichtigen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren