Forum: Mikrocontroller und Digitale Elektronik ATmega32u4 - ADC wirklich nicht unter 2.56V Ref?


von Karl (Gast)


Lesenswert?

Jaja, ein Blick ins Datenblatt erleichtert die Bauteilfindung...

Ich habe einen ATmega32u4 verbaut, weil ich mehr als die üblichen 8 
ADC-Eingänge brauche. Und dem hab ich eine externe Reverenz von 1.23V 
verpasst.

Allerdings liefert der ADC immer nur 1023 als Wert. Auf der Fehlersuche 
bin ich im Datenblatt auf die kleine Zeile Vref min 2.56V gestoßen.

Ich gebe zu, das hatte ich übersehen, bin durch die anderen ATmega 
verwöhnt, die meist bis 1.1V Vref runterkönnen?

Bevor ich die Referenz runterpopel, um es mit interner Referenz zu 
versuchen:

Frage 1: Liegt es an der zu niedrigen Vref, dass der ADC nur 1023 
liefert?

Frage 2: Keine Chance, den auch mit Vref 1.23V sinnvoll zu betreiben?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Programmierfehler wahrscheinlich, der µC kann mit jeder externen 
Referenz zwischen AGND und AVCC arbeiten.

von S. Landolt (Gast)


Lesenswert?

> bin durch die anderen ATmega verwöhnt
Also bei ATmega16 und 32 zum Beispiel ist als Minimum 2.0 V angegeben. 
Keine Ahnung, was darunter passiert. Wie sieht das Programm aus?

von Theor (Gast)


Lesenswert?

> "... bin ich im Datenblatt auf die kleine Zeile Vref min 2.56V gestoßen."

Und wo genau im Datenblatt bist Du darauf gestossen?

Ich kann das in der aktuellen Version 
(Atmel-7766J-USB-ATmega16U4/32U4-Datasheet_04/2016
) nicht finden.

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

hier

von S. Landolt (Gast)


Lesenswert?

Ich habe hier nur einen ATmega16A (mit min. 2.0 V angegeben), also ist 
Folgendes nur von begrenzter Aussagekraft, trotzdem: Uref = 1.143 V und 
U = 0.454 V liefert 408, also gar nicht so schlecht.
  Es drängt sich folglich die Frage nach dem Programm auf.

von Georg M. (g_m)


Lesenswert?

Karl schrieb:
> Liegt es an der zu niedrigen Vref, dass der ADC nur 1023
> liefert?

Für 1024 braucht man schon 11 Bit.

von Joachim B. (jar)


Lesenswert?

Karl schrieb:
> Und dem hab ich eine externe Reverenz von 1.23V
> verpasst.
>
> Allerdings liefert der ADC immer nur 1023 als Wert

was hat das EINE
dem hab ich eine externe Reverenz von 1.23V

mit dem ANDEREN
liefert der ADC immer nur 1023

zu tun?

wenn du mehr als 1,23V reingibts muss der ja 1023 zeigen!

Karl schrieb:
> Auf der Fehlersuche
> bin ich im Datenblatt auf die kleine Zeile Vref min 2.56V gestoßen

das wäre seine interne Ref die du ja nicht wählst weil:

Karl schrieb:
> dem hab ich eine externe Reverenz von 1.23V
> verpasst

Beitrag #5310413 wurde von einem Moderator gelöscht.
Beitrag #5310415 wurde von einem Moderator gelöscht.
Beitrag #5310424 wurde von einem Moderator gelöscht.
Beitrag #5310427 wurde von einem Moderator gelöscht.
von Karl (Gast)


Lesenswert?

Joachim B. schrieb:
> was hat das EINE
> dem hab ich eine externe Reverenz von 1.23V
> mit dem ANDEREN
> liefert der ADC immer nur 1023

Die ADCs liefern immer 1023, auch wenn ich die Eingänge auf GND lege 
oder irgendwas dazwischen.

Ben B. schrieb:
> Programmierfehler wahrscheinlich, der µC kann mit jeder externen
> Referenz zwischen AGND und AVCC arbeiten.

Das wäre mir lieb. ;-) Mit dem ATmega32u4 hab ich noch nicht gearbeitet.

Hier die Initialisierung:
1
  ADMUX := (%00 shl REFS) or $1F;  // Referenz Vref=extern und Kanal GND, erste verwerfen
2
  ADCSRB := (1 shl ADHSM);  // ADC High Speed
3
  ADCSRA := (1 shl ADEN) or (1 shl ADSC) or (1 shl ADIE) or (%001 shl ADPS);  // ADC Enable und erste Wandlung starten
4
  // Prescaler auf 1:2
5
  // 1.6µs für alle weiteren Wandlungen

Und hier die Abfrage im Interrupt:
1
    vval := ADC;  // ADC Wert holen, erst ADCL, dann ADCH!!!
2
    chan := (ADMUX and $1F) or (ADCSRB and $20);  // ADC Kanal holen MUX5..0
3
 if chan = %100000 then begin  // Kanal ADC8 = u1
4
      vu1 := vval;
5
      inc(tu1);
6
      chan := %100011;
7
... 9 Kanäle durchgehen
8
    end else if chan = %000101 then begin  // Kanal ADC5 = u9
9
      vu9 := vval;
10
      inc(tu9);
11
      chan := %100000;
12
13
    end else begin
14
      chan := %100000;
15
    end;
16
17
    ADMUX := (%00 shl REFS) or (chan and $1F);  // Referenz Vref=extern und Kanal MUX4..0
18
    ADCSRB := (1 shl ADHSM) or (chan and $20);  // ADC High Speed und Kanal MUX5
19
    ADCSRA := ADCSRA or (1 shl ADSC);  // neue Wandlung starten

Wie ich anhand der tux-Zähler sehen kann, werden die Kanäle auch 
zyklisch durchgegangen, aber sie liefern in vux immer 1023, also den 
ADC-Endwert.

Verringerung der Geschwindigkeit (größerer Prescaler) bringt keine 
Änderung. Änderung der Referenz hab ich noch nicht probiert, weil die 
dann gegen die externe Referenz (LM4041-1.225V) arbeiten würde.

Ist möglicherweise ein Fehler in der Initialisierung, aber ich sehs grad 
nicht. Die Registerdefinitionen (müsste dieser Unit entsprechen 
https://github.com/graemeg/freepascal/blob/master/rtl/embedded/avr/atmega32u4.pp) 
hab ich schon überprüft, aber nichts Auffälliges gefunden.

von wendelsberg (Gast)


Lesenswert?

Also in dem mir vorliegenden DB hat er sogar eine interne 
Bandgapreferenz von typ. 1.1V+-0.1V.

wendelsberg

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

M.M.n. ist das Datenblatt eindeutig. Minimale VREF ist 2,56V. Alles 
dadrunter ist nicht spezifiziert.

wendelsberg schrieb:
> Also in dem mir vorliegenden DB hat er sogar eine interne
> Bandgapreferenz von typ. 1.1V+-0.1V.

Kann ich nicht sehen. In der Einleitung zum ADC steht:
>Internal reference voltages of nominally 2.56V or AVCC are
> provided On-chip.

: Bearbeitet durch User
von wendelsberg (Gast)


Lesenswert?

Haben tut er die, siehe:
1
8.8
2
Internal Voltage Reference
3
ATmega16U4/ATmega32U4 features an internal bandgap reference. This reference is used for Brown-out Detection, and it can be used as an input to the Analog Comparator or the ADC.

Aber die ist nur fuer den Analogkomparator oder als Uref fuer den ADC - 
dann aber nur auf 2,56V verstaerkt - zugaenglich. Wieder was gelernt.
1
 VREF can be selected as either AV CC, internal 2.56V
2
reference, or external AREF pin. 
3
...
4
The internal 2.56V reference is generated from the internal bandgap reference (VBG) through an internal amplifier.

wendelsberg

von Joachim B. (jar)


Lesenswert?

Karl schrieb:
> Auf der Fehlersuche
> bin ich im Datenblatt auf die kleine Zeile Vref min 2.56V gestoßen.

wo?

ich lese nur
If no external voltage is applied to the AREF pin, the user may switch 
between AVCC and 2.56V as reference selection.

hast du das gelesen?

The first ADC conversion result after switching reference voltage source 
may be inaccurate, and the user is advised to discard this result.

Karl schrieb:
> Hier die Initialisierung:
>   ADMUX := (%00 shl REFS) or $1F;  // Referenz Vref=extern und Kanal
> GND, erste verwerfen

was denn das für ein Dialekt?

und wie stehts damit?
The voltage reference may be externally decoupled at the AREF pin by
a capacitor for better noise performance.

wartest du bis die Wandlung fertig ist?
bist du im free running Mode mit IRQ wenn fertig?
oder pollst du das bit?

ich kenne diesen Dialekt nicht, aber ich hatte nie derlei 
Schwierigkeiten von denen du berichtest.

von Rolf M. (rmagnus)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> M.M.n. ist das Datenblatt eindeutig. Minimale VREF ist 2,56V. Alles
> dadrunter ist nicht spezifiziert.

Sehe ich auch so. Wobei mich das Diagramm 30-41 etwas stutzig macht. 
Laut diesem erreicht die interne Referenz diese Spannung überhaupt nie.

von Joachim B. (jar)


Lesenswert?

Rolf M. schrieb:
> Matthias S. schrieb:
>> M.M.n. ist das Datenblatt eindeutig. Minimale VREF ist 2,56V. Alles
>> dadrunter ist nicht spezifiziert.
>
> Sehe ich auch so. Wobei mich das Diagramm 30-41 etwas stutzig macht

das sagt aber nur was über VCC zu interne Referenz, wenn die REF aber 
extern ist, wo ist die minimal Anforderung von der hier berichtet wird 
>= 2,56V

von MWS (Gast)


Lesenswert?

Wie wär's mit:
> Table 29-7.ADC Characteristics
> ...
> VREF Reference Voltage Min 2.56 Max AVCC - 0.5

von Joachim B. (jar)


Lesenswert?

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf

MWS schrieb:
> Wie wär's mit:
>> Table 29-7.ADC Characteristics
>> ...
>> VREF Reference Voltage Min 2.56 Max AVCC - 0.5

danke, das hatte ich vorher nicht gefunden und nun musste man alles 
lesen weil die Suche nach Table nicht klappt irgendwie.

hmm merkwürdig, könnte ein Indiez sein oder nur ein Documentfehler, weil 
die ja öfter mal Fehler haben.

Ich habe leider keinen ATmega32u4 aktuell hier....

von Mike J. (linuxmint_user)


Lesenswert?

Georg M. schrieb:
> Für 1024 braucht man schon 11 Bit.

Welcher Vollpfosten hat dir denn für deinen Beitrag ein Minus gegeben?

@Vollpfosten
Der AVR hat einen ADC mit einer Auflösung von 10Bit => 2^10=1024 (Es 
können Werte von 0 .. 1023 dargestellt werden.)

Rolf M. schrieb:
> Sehe ich auch so. Wobei mich das Diagramm 30-41 etwas stutzig macht.
> Laut diesem erreicht die interne Referenz diese Spannung überhaupt nie.

Der wirkliche Wert der Referenzspannung liegt ja bestimmt auch im 
Bereich von 2.30V bis 2.7V, also ist es möglich dass irgend ein 
Atmega32U4 einen ADC besitzt der diesen Wert annimmt. ;-)

Ich denke mal das ist nur ein Anhaltspunkt damit man weiß wie sich die 
Referenzspannung in dem Eingangs-Spannungsbereich verhält.

von Karl (Gast)


Lesenswert?

Joachim B. schrieb:
> The first ADC conversion result after switching reference voltage source
> may be inaccurate, and the user is advised to discard this result.

Ja, wird weggeworfen, indem ich den Kanal auf GND setze, GND wird aber 
nicht ausgewertet sondern eine neue Wandlung mit einem gültigen Kanal 
gestartet.

Joachim B. schrieb:
> The voltage reference may be externally decoupled at the AREF pin by
> a capacitor for better noise performance.

10nF ist dran und die 1.23V der Referenz stehen auch sauber an.

Joachim B. schrieb:
> wartest du bis die Wandlung fertig ist?

Ich mache das momentan über den ADC-Interrupt. Läuft auch sauber durch.

> bist du im free running Mode mit IRQ wenn fertig?
> oder pollst du das bit?

Single conversion. Wird jedesmal neu gestartet, wenn der Interrupt 
fertig ist. Dabei wird jedesmal ein anderer Kanal gewählt, aber immer 
mit der gleichen Referenz.

Joachim B. schrieb:
> aber ich hatte nie derlei
> Schwierigkeiten von denen du berichtest.

Ich auch nicht, bisher mit ATmega8, ATmega16/32, ATmega328 und einigen 
ATtinys. Daher stehe ich auch gerade bißchen auf dem Schlauch, was die 
Ursache angeht.

Wenn der ADC wenigsten aufgrund der möglicherweise zu nedrigen Vref 
falsche Werte bringen würde. Aber so gar keine anderen Werte ausser 
1023, selbst bei Eingängen auf GND...

von Schiggy (Gast)


Lesenswert?

Karl schrieb:
> ch habe einen ATmega32u4 verbaut, weil ich mehr als die üblichen 8
> ADC-Eingänge brauche.

Nimm doch einfach einen Multiplexer(z.B. 4051)?

von Johannes R. (entity)


Angehängte Dateien:

Lesenswert?

Edit: Entschuldige, da habe ich mich wohl verlesen unten stehendes 
bezieht sich auf atXmega32a4u.

[Für die Xmega Serie gibt es in der Regel 2 Datenblätter. Eines in dem 
die Peripherie näher beschrieben wird und eines in dem Toleranzen, 
Spannungen, Timings, etc. aufgeführt sind.

In letzterem ist angehängte Tabelle, laut derer 1V bis AVcc-0.6V möglich 
sind.

(http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8387-8-and16-bit-AVR-Microcontroller-XMEGA-A4U_Datasheet.pdf)

Verwendest du eine Codebibliothek z.B. ASF (Atmel Software Framework)? 
Dort werden pauschal erst mal alle power-save-Register der Peripherie 
gesetzt. Die einzelnen Module müssen dann erst wieder explizit aktiviert 
werden.]

: Bearbeitet durch User
von Karl (Gast)


Lesenswert?

Ähem, es ist kein Xmega, es ist ein stinknormaler ATmega32u4.

Ich werd wohl doch mal die Referenz auslöten müssen, wollte ich 
eigentlich vermeiden...

von Karl (Gast)


Lesenswert?

Ahhhh, es lag anscheinend an der Samplerate. Ich hatte den Prescaler 
zwar versuchsweise runtergesetzt, aber nicht sooo weit.

Mit Prescaler 128 an 16MHz bekomme ich auf den ersten Blick sinnvolle 
Werte. Allerdings ist 128 mit dann 125kHz Samplerate schon arg niedrig, 
der nächste Prescaler 64 mit dann 250kHz schon wieder oberhalb der 
"erlaubten" 200kHz.

Und warum zum Henker gibt es einen High Speed Mode und wie hoch ist dann 
die erlaubte Samplerate?

"ADHSM: ADC High Speed Mode
Writing this bit to one enables the ADC High Speed mode. This mode 
enables higher conversion rate at the expense of higher power 
consumption."

von Joachim B. (jar)


Lesenswert?

Karl schrieb:
> Ahhhh, es lag anscheinend an der Samplerate.

hatte ich doch den richtigen Riecher

Joachim B. schrieb:
> wartest du bis die Wandlung fertig ist?
> bist du im free running Mode mit IRQ wenn fertig?
> oder pollst du das bit?

kannst du nun mit dieser 1,23V Ref was sinnvolles feststellen?

von Mike J. (linuxmint_user)


Lesenswert?

Karl schrieb:
> Ich werd wohl doch mal die Referenz auslöten müssen, wollte ich
> eigentlich vermeiden...

Bei mir sind die einzelnen Schaltungsteile bei Prototypen so gut es geht 
über 0 Ohm SMD-Widerstände verbunden und dadurch auch leicht wieder 
trennbar.

Ich würde einfach mal spaßeshalber einen weiteren 1k oder 10k Ohm Poti 
nehmen und an die Referenz 0 bis 5V bringen um sehen zu können ab 
welcher Versorgungsspannung (an AVcc) der ADC wieder richtige Werte 
liefert. Wäre bestimmt interessant.

von Axel S. (a-za-z0-9)


Lesenswert?

Karl schrieb:
> Ahhhh, es lag anscheinend an der Samplerate. Ich hatte den Prescaler
> zwar versuchsweise runtergesetzt, aber nicht sooo weit.

War doch klar, daß du etwas falsch gemacht haben mußt.

> Mit Prescaler 128 an 16MHz bekomme ich auf den ersten Blick sinnvolle
> Werte. Allerdings ist 128 mit dann 125kHz Samplerate schon arg niedrig

Dir ist schon klar, daß die 125kHz nicht die Samplerate sind, sondern 
der ADC-Takt. Die Samperate ist nochmal deutlich geringer. Im besten 
Fall ein 13-tel davon. Also knapp 10kHz.

> Und warum zum Henker gibt es einen High Speed Mode und wie hoch ist
> dann die erlaubte Samplerate?

Im Datenblatt steht nichts dazu. Aber es gibt ja auch Appnotes und 
sonstige Dokumentation beim Hersteller.

Aber ganz generell sind die Vorgaben für den ADC-Takt und die 
Referenzspannung keine absoluten Grenzen. Erst wenn du massiv weit 
drüber (bzw. drunter) gehst, kriegst du einen Totalausfall der Funktion. 
Vorher wird es erstmal nur ungenauer.

Die Begrenzung von VREF nach unten dient in erster Linie zur Absicherung 
der garantierten ADC-Fehler, insbesondere INL. Denn diese Fehler werden 
in LSB angegeben. Je kleiner VREF ist, desto kleiner sind (absolut 
gesehen) die erlaubten Fehler. Bzw. weil die realen Fehler der Hardware 
(z.B. Offset des Komparators im ADC) absolute Werte sind, werden die 
relativen Fehler bei sinkender VREF größer.

von Karl (Gast)


Lesenswert?

Joachim B. schrieb:
> kannst du nun mit dieser 1,23V Ref was sinnvolles feststellen?

Ja, ich kann sinnvoll feststellen, dass es nicht sinnvoll ist.

Axel S. schrieb:
> kriegst du einen Totalausfall der Funktion.
> Vorher wird es erstmal nur ungenauer.

Es wird nicht ungenauer, es wird schlichtweg Schrott.

Die 9 verwendeten Kanäle bringen bei gleicher Eingangsspannung um 50lsb 
abweichende Werte. Bei unterschiedlicher Eingangsspannung sieht man, wie 
Änderung der Spannung an einem Kanal die Messung der folgenden Kanäle 
ebenfalls beeinflusst, vor allem wenn erstere Spannung höher ist als die 
folgende. Egal bei welcher Prescaler-Einstellung.

Also die Referenz ausgelötet und über ein Poti versorgt. 10nF sind immer 
noch drin. Vref steht auf extern.

Ab 1.32V sind die Messwerte sinnvoll. Abweichung der Kanäle maximal 2lsb 
bei gleicher Eingangsspannung, keine sichtbare Beeinflussung folgender 
Messungen bei unterschiedlicher Eingangsspannung. Das gilt für Prescaler 
64.

Mit Prescaler 32 liegt die Schwelle bei 1.33V, mit Prescaler 16 (1MHz 
ADC Takt) bei 1.35V. Mit Prescaler 8 (2MHz) sind allerdings 1.85V für 
stabile Messwerte nötig, und die Abweichung der Kanäle untereinander 
steigt auf 5lsb. Unter 1.3V zeigt der ADC das anfangs beschriebene 
Verhalten, dass alle Werte auf 1023 springen.

Allerdings: Schalte ich das bescheuerte ADHSM-Bit welches anscheinend 
keine sinnvolle Funktion hat aus, sinkt die Schwelle bei Prescaler 32 
auf 1.20V.

Das ist mir trotzdem zu nah an meinen 1.23V Referenz. Werde also mal 
schauen ob es eine Referenz um die 1.5 bis 1.8V gibt, andernfalls eine 
LM4040 mit 2.5V einsetzen und meine Vorteiler nochmal umdimensionieren.

Disclaimer: Das gilt natürlich nur das von mir getestete Exemplar. Bei 
anderen ATmega32u4 mögen die Werte anders sein.

von der Wok (Gast)


Lesenswert?

Wurde dies schon erwähnt und/oder beachtet?

Auszug aus Application Note:
Atmel AVR126: ADC of megaAVR in Single Ended Mode

• It is recommended to discard the first conversion result (like 
whenever there is a change in ADC configuration like voltage reference / 
ADC channel change)
• Please note when switching to a differential channel (with gain 
settings), the first conversion result may have a poor accuracydue to 
the required settling time for the automatic offset cancellation 
circuitry. Soit is better to discard the first sample result

von Rolf M. (rmagnus)


Lesenswert?

Karl schrieb:
> Joachim B. schrieb:
>> The first ADC conversion result after switching reference voltage source
>> may be inaccurate, and the user is advised to discard this result.
>
> Ja, wird weggeworfen, indem ich den Kanal auf GND setze, GND wird aber
> nicht ausgewertet sondern eine neue Wandlung mit einem gültigen Kanal
> gestartet.

Du musst die erste Messung nach dem Kanalwechsel verwerfen, nicht 
davor.

Joachim B. schrieb:
> Rolf M. schrieb:
>> Matthias S. schrieb:
>>> M.M.n. ist das Datenblatt eindeutig. Minimale VREF ist 2,56V. Alles
>>> dadrunter ist nicht spezifiziert.
>>
>> Sehe ich auch so. Wobei mich das Diagramm 30-41 etwas stutzig macht
>
> das sagt aber nur was über VCC zu interne Referenz, wenn die REF aber
> extern ist, wo ist die minimal Anforderung von der hier berichtet wird
>>= 2,56V

Da steht nichts davon, dass diese Anforderung nur für externe Referenz 
gilt. Es steht da, dass die ADC-Referenzspannung immer >= 2,56V sein 
muss. Aus dem Diagramm ergibt sich aber, dass das bei Nutzung der 
internen Referenz niemals gegeben ist. Gut, vielleicht war es eigentlich 
so gemeint, wie du schreibst.

von Axel S. (a-za-z0-9)


Lesenswert?

Karl schrieb:
> Joachim B. schrieb:
>> kannst du nun mit dieser 1,23V Ref was sinnvolles feststellen?
>
> Ja, ich kann sinnvoll feststellen, dass es nicht sinnvoll ist.
>
> Axel S. schrieb:
>> kriegst du einen Totalausfall der Funktion.
>> Vorher wird es erstmal nur ungenauer.
>
> Es wird nicht ungenauer, es wird schlichtweg Schrott.

Ich halte dich nicht für qualifiziert, das zu beurteilen.

> Die 9 verwendeten Kanäle bringen bei gleicher Eingangsspannung um 50lsb
> abweichende Werte. Bei unterschiedlicher Eingangsspannung sieht man, wie
> Änderung der Spannung an einem Kanal die Messung der folgenden Kanäle
> ebenfalls beeinflusst, vor allem wenn erstere Spannung höher ist als die
> folgende.

Das ist auch so dokumentiert, daß die erste Messung nach einem 
Kanalwechsel ungenau ist. Wurde auch hier im Forum schon des öfteren 
diskutiert. Und wenn man die Funktionsweise des ADC respektive des 
Multiplexers kennt, ist das auch nicht ungewöhnlich.

von Karl (Gast)


Lesenswert?

Rolf M. schrieb:
> Du musst die erste Messung nach dem Kanalwechsel verwerfen, nicht
> davor.

Ich muss die erste Messung nach einem Wechsel der Vref verwerfen. Ich 
wechsle die Vref zwischendurch nicht.

Axel S. schrieb:
> Ich halte dich nicht für qualifiziert, das zu beurteilen.

Das ist mir sowas von Rille. ;-)

Axel S. schrieb:
> Das ist auch so dokumentiert, daß die erste Messung nach einem
> Kanalwechsel ungenau ist.

Nein. Es ist dokumentiert, dass die erste Wandlung nach einem Wechsel 
der Vref ungenau ist.

Rolf M. schrieb:
> Es steht da, dass die ADC-Referenzspannung immer >= 2,56V sein
> muss.

Ja, witzigerweise kann nach Table 29-7 Vint zwischen 2.4 und 2.8V 
liegen.

von der Wok (Gast)


Lesenswert?

Karl schrieb:
> Axel S. schrieb:
>> Das ist auch so dokumentiert, daß die erste Messung nach einem
>> Kanalwechsel ungenau ist.
>
> Nein. Es ist dokumentiert, dass die erste Wandlung nach einem Wechsel
> der Vref ungenau ist.


der Wok schrieb:
> Wurde dies schon erwähnt und/oder beachtet?
>
> Auszug aus Application Note:
> Atmel AVR126: ADC of megaAVR in Single Ended Mode
>
> • It is recommended to discard the first conversion result (like
> whenever there is a change in ADC configuration like voltage reference /
> ADC channel change)
> • Please note when switching to a differential channel (with gain
> settings), the first conversion result may have a poor accuracydue to
> the required settling time for the automatic offset cancellation
> circuitry. Soit is better to discard the first sample result

Punkt 2 aus der Application Note!

von der Wok (Gast)


Lesenswert?

Atmel AppNote AVR126 ist unter Microchip die AN2538 und der erwähnte 
Punkt zum Channelwechsel in Kapitel 1.9

http://www.microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591909

von spess53 (Gast)


Lesenswert?

Hi

>Nein. Es ist dokumentiert, dass die erste Wandlung nach einem Wechsel
>der Vref ungenau ist.

Aber auch bei einem Wechsel differentieller Kanäle:

When switching to a differential gain channel, the first conversion 
result may have a poor accuracy
due to the required settling time for the automatic offset cancellation 
circuitry. The user
should preferably disregard the first conversion result.

MfG Spess

von Karl (Gast)


Lesenswert?

der Wok schrieb:
> Punkt 2 aus der Application Note!

Wurde im Forum schon mehrfach diskutiert:

Gilt für Kanalwechsel nur, wenn während einer Messung umgeschaltet 
wurde, weil dann noch der Wert des alten Kanals gemessen wird, aber die 
Adresse des neuen Kanals im MUX steht.

Wichtig ist allerdings, dass die Eingänge niedrige Impedanz sehen, damit 
der SH-Kondensator ausreichend schnell umgeladen werden kann. Dabei 
hilft eine entsprechend große Kapazität (1-10nF) am Eingang. Ist 
vorhanden.

spess53 schrieb:
> Aber auch bei einem Wechsel differentieller Kanäle:

Ich habe keine differentiellen Kanäle. Würde ich gern nutzen, sind aber 
viel zu langsam.

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