Forum: Mikrocontroller und Digitale Elektronik ADC-Pins Übersprechen / war: Ich fass es nicht


von Arduino: ADC-Pins nicht übersprechsicher? (Gast)


Angehängte Dateien:

Lesenswert?

Ich brauch Hilfe bei einer Minimalkonfiguration, wo ich das Verhalten 
des Arduino Mega nicht verstehe.

Das kleine Programmchen liest 3 ADC-Pins ein (A0, A1, A2).
1
void setup() {
2
  Serial.begin(9600);
3
  delay(500);
4
}
5
6
void loop() {
7
  Serial.print(analogRead(A0));
8
  Serial.print("\t");
9
  Serial.print(analogRead(A1));
10
  Serial.print("\t");
11
  Serial.println(analogRead(A2));
12
  delay(10);
13
}
Der Poti ist an A1 angeschlossen.
A0 und A2 sind (wie alle anderen ADCs) frei. Absolut nichts 
angeschlossen.

Und nun seht euch mal den Screenshot an.
rot ist der Kanal, wo der Poti dran hängt (A1)
grün+blau sind die beiden Nebenkanäle (A0, A2)

Dasselbe passiert auch, wenn ich den Poti an A6 anschließe, und A5, A6, 
A7 einlese. Sind die Eingänge nicht übersprechsicher? Das kann doch 
nicht normal sein, was habe ich falsch gemacht?

: Bearbeitet durch Moderator
von Cyblord -. (cyblord)


Lesenswert?

Was denkst du was mit frei schwebenden Pins neben aktiven Pins passiert?

Lege doch mal eine Spannung an einen nicht benutzten ADC Kanal an. Dann 
verschwindet das Phänomen.

Also richtig "Ich fasse es auch nicht", damit meine ich deine 
Inkompetenz.

von naja... (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dasselbe passiert auch, wenn ich den Poti an A6 anschließe, und A5, A6,
> A7 einlese. Sind die Eingänge nicht übersprechsicher? Das kann doch
> nicht normal sein, was habe ich falsch gemacht?

Schuss ins Blaue:
Dein Poti hat keine Verbindung.
Weil dein Port "wo das Poti" dranhängt sich exakt gleich wie ein Port 
verhält, wo nichts dranhängt.

Miss doch mal nach ob das Verbindung hat, mit einem Multimeter.

von c r (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> A0 und A2 sind (wie alle anderen ADCs) frei. Absolut nichts
> angeschlossen.

Das ist das Problem. Deine Pins haben keinen definierten Pegel und 
machen was sie wollen. Dürfen sie auch.

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Sind die Eingänge nicht übersprechsicher?

Was verstehst du darunter?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Das kann doch
> nicht normal sein

Doch. Schließ an die freien Kanäle auch ein Poti an und dein Problem ist 
weg.

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


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:

> Der Poti ist an A1 angeschlossen.
> A0 und A2 sind (wie alle anderen ADCs) frei. Absolut nichts
> angeschlossen.
> Und nun seht euch mal den Screenshot an.
> Sind die Eingänge nicht übersprechsicher?

So etwas passiert, wenn man das Handbuch nicht liest. Was du eigentlich 
erwartest, von einem offenen Eingang zu lesen, ist auch schleierhaft.

von Arduino: ADC-Pins nicht übersprechsicher? (Gast)


Lesenswert?

naja... schrieb:
> Dein Poti hat keine Verbindung.
> Weil dein Port "wo das Poti" dranhängt sich exakt gleich wie ein Port
> verhält, wo nichts dranhängt.
>
> Miss doch mal nach ob das Verbindung hat, mit einem Multimeter.
Leider ok, habe ich schon gemessen. Der Kanal reagiert prompt auf den 
Poti. Die beiden anderen Kanäle folgen.

von Falk B. (falk)


Lesenswert?

@ Arduino: ADC-Pins nicht übersprechsicher? (Gast)

>Und nun seht euch mal den Screenshot an.
>rot ist der Kanal, wo der Poti dran hängt (A1)
>grün+blau sind die beiden Nebenkanäle (A0, A2)

Beim Umschalten des ADC-Eingangs (Multiplexer) wird bei den offenen 
Eingängen keine andere Spannung gemessen sondern die alte. Logisch. Wer 
soll denn den Meßkondensator umladen? Der ADC-Meßvorgang tut es nicht, 
denn der ADC-arbeitet rein kapazitiv.

>A7 einlese. Sind die Eingänge nicht übersprechsicher?

Doch, aber nur wenn sie von niederohmigen Quellen getrieben werden.

> Das kann doch nicht normal sein,

Doch.

> was habe ich falsch gemacht?

Offene CMOS-Eingänge sind immer bähhhhh, auch bei ADCs.

von Ingo L. (corrtexx)


Lesenswert?

Schau mal ins DB was Sample&Hold macht und wo der Kanal Multiplexer das 
Signal abgreift ;)

von Arduino: ADC-Pins nicht übersprechsicher? (Gast)


Lesenswert?

Axel S. schrieb:
> So etwas passiert, wenn man das Handbuch nicht liest. Was du eigentlich
> erwartest, von einem offenen Eingang zu lesen, ist auch schleierhaft.

Das Phänomen war vorher schon da. Ich frage keine offenen Eingänge ab. 
Das ist eine Testschaltung, bei der ich nur sehen wollte, was passiert. 
Dass offene Eingänge Murks anzeigen, ist klar. Dass offene Eingänge 
Nachbarpins folgen, ist weniger verständlich. Sie folgen dem 
angeschlosenen Pin auf der ganzen Bandbreite (0 bis 1024).

von Einer K. (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dasselbe passiert auch, wenn ich den Poti an A6 anschließe, und A5, A6,
> A7 einlese. Sind die Eingänge nicht übersprechsicher? Das kann doch
> nicht normal sein, was habe ich falsch gemacht?

Du hast nichts falsch gemacht, außer, dass du Kanäle ließt/auswertest, 
an denen nichts angeschlossen ist.

Vergleichbar:
> Immer wenn ich mit der flachen Hand aufs Wasser schlage,
> dann spritzt es, und ich werde nass.
> Ich will aber nicht nass werden.
> Was kann ich tun?

Die einfache Lösung:
Lass es!

von c r (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dass offene Eingänge
> Nachbarpins folgen, ist weniger verständlich.

Das ist auch nicht dein Problem, sondern dass die Nachbarpins nicht die 
Möglichkeit haben den Sample-and-Hold C umzuladen.

Was soll der ADS also anderes messen?

von Arduino: ADC-Pins nicht übersprechsicher? (Gast)


Lesenswert?

c r schrieb:
> Was soll der ADS also anderes messen?

Irgend was undefiniertes. Aber auf keinen Fall den Pegel von 
Nachbarpins. Oder erklärt mir das, anstatt mich in die Pfanne zu hauen.

von c r (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Oder erklärt mir das, anstatt mich in die Pfanne zu hauen.

Der entscheidende Hinweis um es zu verstehen kam bereits.
Googlen und lesen musst du selbst.

Ingo L. schrieb:
> Schau mal ins DB was Sample&Hold macht und wo der Kanal Multiplexer das
> Signal abgreift ;)

von Stefan K. (stefan64)


Lesenswert?

Bei einer ADC Messung wird zuerst der Sample/Hold Kondensator auf die 
Eingangsspannung des zu messenden Pins umgeladen und danach die Spannung 
des S/H Kondensators vom ADC gemessen.
Wenn Eingänge "offen" sind, dann kann der S/H Kondensator von diesem 
Eingang nicht umgeladen werden. Also ändert sich die Spannung des 
S/H-Kondensators auch nicht (im Vergleich zur vorherigen Messung). Daher 
misst der ADC dieselbe Spannung wie bei der Messung des Vorgänger Pins.

Gruß Stefan

von Peter D. (peda)


Lesenswert?

Siehe Datenblatt:
"The ADC is optimized for analog signals with an output impedance of 
approximately 10 kΩ or less."

Hänge also 10k gegen GND an die offenen Eingänge und dann sollte es 
nicht mehr übersprechen.

von Joachim B. (jar)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Irgend was undefiniertes. Aber auf keinen Fall den Pegel von
> Nachbarpins. Oder erklärt mir das, anstatt mich in die Pfanne zu hauen.

wenn nichts an den anderen ADC angeschlossen ist oder zu hochohmig, wie 
soll denn der SH Kondensator umgeladen werden, auf welches nicht 
vorhandene andere Potenzial?

https://www.gammon.com.au/images/Arduino/ADC_internals.png

viele ADC Eingänge -> Umschalter -> 1x sample & hold -> 1x ADC

Der Kondensator im sample & hold (SH) kann nicht umgeladen werden wenn 
zu hochohmig angeschlossen oder wenn nichts angeschlossen ist.

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Lade einen Kondensator auf eine Spannung auf und miss diese Spannung.

Jetzt schließt du anstatt deiner Spannungsquelle ein Stück Draht an den 
Kondensator an und misst die Spannung erneut

Die Spannung wird sich kaum verändert haben.

Der ADC hat nur einen Sample-and-Hold-Kondensator, der vom eigentlichen 
Wandler "ausgelesen" wird.

Dieser Kondensator wird nur von deinem Potentiometer auf eine Spannung 
geladen. Offene Eingänge (= das Stück Draht) ändern die Ladung in diesem 
Kondensator nicht. Also wenn du die Spannung erneut misst, bleibt es bei 
dem vorherigen Ergebnis.

von Frank D. (Firma: Spezialeinheit) (feuerstein7)


Lesenswert?

Noch eine kleine Randbemerkung, zusätzlich zum S&H kommt noch, dass die 
erste ADC Messung nach dem Umschalten des Multiplexers verworfen werden 
soll. Ich habe keine Ahnung ob die Arduino Software das macht.

von Sebastian R. (sebastian_r569)


Lesenswert?

Fred F. schrieb:
> Noch eine kleine Randbemerkung, zusätzlich zum S&H kommt noch, dass die
> erste ADC Messung nach dem Umschalten des Multiplexers verworfen werden
> soll. Ich habe keine Ahnung ob die Arduino Software das macht.

Eigentlich reicht es, eine Dummy-Messung nach Einschalten des ADCs zu 
machen, weil sich da noch nicht alle Referenzspannungen stabilisiert 
haben.

Danach kann man den MUX beliebig umschalten und sofort eine gültige 
Messung erhalten.

von Peter D. (peda)


Lesenswert?

Fred F. schrieb:
> Noch eine kleine Randbemerkung, zusätzlich zum S&H kommt noch, dass die
> erste ADC Messung nach dem Umschalten des Multiplexers verworfen werden
> soll. Ich habe keine Ahnung ob die Arduino Software das macht.

Ja, diese Mär liest man leider sehr oft. Wenn die Eingangssignale 
niederohmig genug sind, kann man sehr wohl reihum alle ADCs lesen, ohne 
Wandlungen zu verwerfen.

Eine Ausnahme habe ich nur bemerkt, wenn man die internen 1,1V messen 
will. Dann muß man sogar bis zu 16 Messungen verwerfen.

von Einer K. (Gast)


Lesenswert?

Fred F. schrieb:
> Noch eine kleine Randbemerkung, zusätzlich zum S&H kommt noch,
> dass die
> erste ADC Messung nach dem Umschalten des Multiplexers verworfen werden
> soll. Ich habe keine Ahnung ob die Arduino Software das macht.

Das ist weder nötig, noch macht die Arduino Software das.

Wahr ist, dass die Pegel eine Zeit brauchen um sich zu "setzen". Ins 
besondere, bracht die interne Referenz etwas um stabil zu werden.
Wenn sie wegen BOD sowieso aktiv ist, gibt es dieses Problem nicht.

Wenn man diese notwendigen Zeiten nicht einhält, dann sind die ersten 
Messungen Mist.

Deine Empfehlung komm aus dieser Richtung:
Verwirft man die erste Messung, hat man die Zeiten eingehalten.

von Soul E. (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:

> Das Phänomen war vorher schon da. Ich frage keine offenen Eingänge ab.

Mach 4,7 nF von jedem ADC-Pin nach Masse. Und zwar direkt am Pin, 
Leitungslänge kleiner 10 mm. Das reduziert die dynamische Impedanz beim 
Umladen des Sample&Hold-Kondensators im ADC.

Alternativ kannst Du mehrfach samplen, d.h. den Pin 2 - 3x lesen und nur 
die letzte Messung verwenden. Kostet natürlich massig Laufzeit.

von Einer K. (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Das Phänomen war vorher schon da. Ich frage keine offenen Eingänge ab.
> Das ist eine Testschaltung, bei der ich nur sehen wollte, was passiert.
> Dass offene Eingänge Murks anzeigen, ist klar. Dass offene Eingänge
> Nachbarpins folgen, ist weniger verständlich. Sie folgen dem
> angeschlosenen Pin auf der ganzen Bandbreite (0 bis 1024).

Der Text enthält einen offensichtlichen/derben Widerspruch!


Denn wenn du keine offenen Eingänge abfragst, kannst du auch nicht die 
Aussage treffen, dass die offenen Eingänge folgen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dass offene Eingänge Nachbarpins folgen, ist weniger verständlich.
Dreh mal die Reihenfolge der Messungen um, dann "folgen" sie den 
anderen Nachbarn. Denn die Eingänge folgen nicht "den Nachbarn", 
sondern den "Vorgängern". Wenn du einen offenen Analog-Pin (oder einen 
zu hochohmig/hochimpedant beschalteten Pin) misst, dann misst du also 
(teilweise) die Spannung, die der Analogeingang des ADC von der 
vorherigen Messung "gespeichert" hat.

> Sie folgen dem angeschlosenen Pin auf der ganzen Bandbreite (0 bis 1024).
Oder eher 1023?

Arduino Fanboy D. schrieb:
> Deine Empfehlung komm aus dieser Richtung:
> Verwirft man die erste Messung
... nach dem Einschalten des ADC oder dem Umschalten der Referenz, dann 
...
> hat man die Zeiten eingehalten.

: Bearbeitet durch Moderator
von Michael B. (laberkopp)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> A0 und A2 sind (wie alle anderen ADCs) frei. Absolut nichts
> angeschlossen.

Das ist ja auch laut Datenblatt verboten (sie sollten über maximal 10k 
mit einer Spannung verbunden sein), und die Folgen, daß sich der 
Eingangskondensator beim Umschalten der Kanäle nicht umladen kann, ist 
auch dokumentiert.

> Sind die Eingänge nicht übersprechsicher?

Wenn man es richtig machen würde, gabe es kein Problem. Lies einfach mal 
das Datenblatt bevor du in Panik ausbrichst.

Es wird sogar empfohlen nach dem umschalten der Kanäle eine Messung zu 
verwerfen wenn es genau sein soll.

von spess53 (Gast)


Lesenswert?

Hi

>Es wird sogar empfohlen nach dem umschalten der Kanäle eine Messung zu
>verwerfen wenn es genau sein soll.

Wo wird das empfohlen?


MfG Spess

von Cyblord -. (cyblord)


Lesenswert?

spess53 schrieb:
> Wo wird das empfohlen?

So was steht tatäschlich im Datenblatt. Ich bin mir allerdings nicht 
mehr sicher ob das wirklich bei jedem Umschalten des Mux war, oder nur 
nach dem einschalten es ADC einmalig.

von Thomas E. (thomase)


Lesenswert?

spess53 schrieb:
> Wo wird das empfohlen?

Urban legend.

von spess53 (Gast)


Lesenswert?

Hi

>Ich bin mir allerdings nicht
>mehr sicher ob das wirklich bei jedem Umschalten des Mux war, oder nur
>nach dem einschalten es ADC einmalig.

Ich kenne es nur nach dem Einschalten und bei Wechsel der 
Referenzspannung.

MfG Spess

von micha (Gast)


Lesenswert?

Kleine Erklärung, der AVR hat nicht 8 unabhängige ADCs sondern einen 
mit 8 auswählbaren Eingängen. Deshalb kannst du auch nicht parallel 
sondern nur sequentiell abfragen. Ohne korrekte Beschaltung misst Du 
einfach das vorherige Ergebniss (-Selbstentladung)

von Komm Peiler (Gast)


Lesenswert?

Hier wird es vernünftig und logisch erklärt:
https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/ATmegaX8.chm/24.htm

von Cyblord -. (cyblord)


Lesenswert?

spess53 schrieb:
> Ich kenne es nur nach dem Einschalten und bei Wechsel der
> Referenzspannung.

Ja korrekt, so wars. Wechsel der Vref erfordert das Wegwerfen der 1. 
Messung.

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


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Axel S. schrieb:
>> So etwas passiert, wenn man das Handbuch nicht liest. Was du eigentlich
>> erwartest, von einem offenen Eingang zu lesen, ist auch schleierhaft.
>
> Das Phänomen war vorher schon da. Ich frage keine offenen Eingänge ab.
> Das ist eine Testschaltung, bei der ich nur sehen wollte, was passiert.

Das Phänomen tritt so nur bei offenen Eingängen auf. Deine Aussage ist 
Unsinn. Bzw. eine Lüge.

> Dass offene Eingänge Murks anzeigen, ist klar. Dass offene Eingänge
> Nachbarpins folgen, ist weniger verständlich.

Es sind nicht "Nachbarpins", sondern "der letzte Meßwert". Und dieses 
Verhalten ist ganz klar dokumentiert im Datenblatt des ATmega328.
Du müßtest es halt nur mal lesen. Und nein, wir sind hier nicht der 
Vorlesedienst für Datenblätter.

von Einer K. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Ja korrekt, so wars. Wechsel der Vref erfordert das Wegwerfen der 1.
> Messung.

Nein, das ist falsch!
Es muss nur etwas Zeit verplempert werden, bevor man den ersten 
"gültigen" Wert bekommt.

Aber eine Notwendigkeit, dass durch eine Dummy Messung zu machen, 
besteht nicht.

von spess53 (Gast)


Lesenswert?

Hi

>Nein, das ist falsch!

Nö. Datenblatt:

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

MfG Spess

von naja... (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Nein, das ist falsch!
>
> Nö. Datenblatt:
>
> The first ADC conversion
> result after switching reference voltage source may be inaccurate, and
> the user is advised to discard this result.
>
> MfG Spess

Du sollst nach dem Umschalten der REFERENZQUELLE den ersten Wert 
verwerfen. Nicht nach dem Umschalten des Muxers auf einen Analogpin.
Refereunzquelle != Analogpin.

Das wäre ja mörderisch ;-)

von Einer K. (Gast)


Lesenswert?

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

Der Google Übersetzer sagt:
> Die erste ADC-Konvertierung Ergebnis nach dem
> Umschalten der Referenzspannungsquelle kann
> ungenau sein und Dem Benutzer wird empfohlen,
> dieses Ergebnis zu verwerfen

Es ist schon etwas streng, in das "kann" ein "wird" und in "empfohlen" 
ein "muss" hinein zu interpretieren.


Ins besondere, wenn man die Kleinigkeit missachtet, dass an Aref ein 
(100µF?) Kondensator sitzen sollte. Der benötigt je nach Größe, mehr 
Umladezeit, als eine Dummymessung.

von Winfried (Gast)


Lesenswert?

Mal eine Frage in diesem Zusammenhang:
Man soll den ersten Wert nach Umschalten der Referenz verwerfen. Aber 
gilt das nur für den Fall, dass an AREF kein Kondensator hängt?
AREF ist ja selbst sehr hochohmig. Wenn da jetzt ein Kerko dran hängt 
und ich von z.B. VCC als Referenz auf 1,1V umschalte, dauert das durch 
das Umladen nicht ewig bzw. eben viel länger als eine Messung?

von Winfried (Gast)


Lesenswert?

Frage doppelt. ;) Aber 100µF erscheint mir etwas gigantisch.

von Einer K. (Gast)


Lesenswert?

Winfried schrieb:
> Aber 100µF erscheint mir etwas gigantisch.
Dann nimm 100nF :-)

Ich gebe zu, die µ gehören zum Stilmittel der Übertreibung, um klar zu 
machen, in welche Richtung die Empfehlung zielt.

von Winfried (Gast)


Lesenswert?

Ich habe eben extra mal nachgemessen. Der AREF-Pin wird tatsächlich 
immer mit umgeladen, also auf 1,1V oder VCC, je nach Einstellung. Da ist 
wirklich die Frage, wie lange man warten sollte, wenn ein Kerko dran 
hängt.

von Frank D. (Firma: Spezialeinheit) (feuerstein7)


Lesenswert?

Fred F. schrieb:
> Noch eine kleine Randbemerkung, zusätzlich zum S&H kommt noch, dass die
> erste ADC Messung nach dem Umschalten des Multiplexers verworfen werden
> soll.
Okay Okay, als sich das geschrieben habe hatte ich das Datenblatt nicht 
da. Aber in meinem Kopf grummelte es, da war doch noch was.
Folgendes habe ich im DB vom ATmega32 gefunden:
....
Special care should be taken when changing differential channels. Once a 
differential channel
has been selected, the gain stage may take as much as 125 μs to 
stabilize to the new value.
Thus conversions should not be started within the first 125 μs after 
selecting a new differential
channel. Alternatively, conversion results obtained within this period 
should be discarded.
....
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.
....
If the user has a fixed voltage source connected to the AREF pin, the 
user may not use the other
reference voltage options in the application, as they will be shorted to 
the external voltage. If no
external voltage is applied to the AREF pin, the user may switch between 
AVCC and 2.56V as
reference selection. The first ADC conversion result after switching 
reference voltage source
may be inaccurate, and the user is advised to discard this result.

Also wer möchte und wer die Zeit hat, kann gerne die erste Messung nach 
dem  Muxen verwerfen.
Wer nicht der halt nicht.

von W.S. (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Ich brauch Hilfe bei einer Minimalkonfiguration, wo ich das Verhalten
> des Arduino Mega nicht verstehe.

Dein Problem ist, daß du ganz offensichtlich von der Hardware rein 
garnichts vestehen willst. Daß so etwas bei einem Arduino-Benutzer 
manifest wird, erscheint mir eher natürlich.

Also:
So ein ADC im µC mit mehreren Kanälen funktioniert im Prinzip so, daß er 
mit dem Umladen von chipinternen Kondensatoren arbeitet. Dazu wird ein 
Eingangskondensator per Analogmultiplexer auf die Spannung aufgeladen, 
die man am jeweiligen Analogeingang anlegt. Anschließend wird der 
Analogmultiplexer abgeschaltet und besagter Kondensator an die innere 
ADC-Schaltung angeschaltet und das Wandeln geht los. Für den nächsten 
Analogkanal wird dann der Analogmultiplexer an dessen Eingangspin 
geschaltet, um denselben Kondensator auf die dort herrschende Spannung 
aufzuladen.

Was also passiert, wenn du an einem Kanal besagten chipinternen 
Kondensator auflädtst und er dann an den nächsten Analogkanal 
angeschlossen wird, wo rein garnix am Pin dranhängt? Na klar, er wird 
eben so etwa die Spannung behalten, die er zuvor schon hatte.

Und genau DAS hast du nun gesehen - aber ohne daß du dich dazu 
angehalten gefühlt hättest, die Nase mal ins betreffende Manual des 
Controllers zu stecken und dort mal nachzulesen.

Macht man das heutzutage so?

W.S.

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


Lesenswert?

Winfried schrieb:
> Ich habe eben extra mal nachgemessen. Der AREF-Pin wird tatsächlich
> immer mit umgeladen, also auf 1,1V oder VCC, je nach Einstellung.

Das muß man nicht nachmessen. Auch das steht klipp und klar im 
Datenblatt:
1
... the external AREF pin is directly connected to the ADC, and the
2
reference voltage can be made more immune to noise by connecting a 
3
capacitor between the AREF pin and ground. VREF can also be measured 
4
at the AREF pin with a high impedance voltmeter. Note that VREF is a 
5
high impedance source, and only a capacitive load should be connected 
6
in a system.

> Da ist wirklich die Frage, wie lange man warten sollte, wenn ein Kerko
> dran hängt.

Das kann man ausrechnen. Dazu mußt man - Überraschung! - einfach mal im 
Datenblatt weiter lesen. Unter 29. Electrical Characteristics - 29.8 ADC 
Characteristics findet man:
1
Symbol  Parameter                  Min Typ Max Units
2
----------------------------------------------------
3
R_REF   Reference Input Resistance      32     kΩ

Der extern an AREF angeschlossene Kondensator wird also über typisch 32K 
auf- bzw. umgeladen. Auf 0.1% umgeladen ist er nach 5 Zeitkonstanten. 
Mit den typischen 100nF und 32K kommt man auf 16ms.

von Winfried (Gast)


Lesenswert?

Ja, und das ist deutlich mehr als 1 Messung.

von Einer K. (Gast)


Angehängte Dateien:

Lesenswert?

Winfried schrieb:
> Ja, und das ist deutlich mehr als 1 Messung.

Anbei mal ein Bild, wie es auf einem Uno Klon aussieht.

Legende:
Gemessen wird A0.
Daran hängt ein Spannungsteiler (low 1k, high 3k) zwischen GND und 3,3V
Die blaue Linie ist der Adc Wert

Der Abstand zwischen zwei roten senkrechten repräsentiert eine 
Millisekunde.

Insgesamt 400 Messpunkte, jeweils 100 pro Referenz(Vcc vs. Internal).

Es werden nicht die ADC Funktionen des Frameworks genutzt, sondern 
eigene.

Das Bild stammt vom seriellen Plotter, welcher in der IDE eingebaut ist.

Resultat:
Der Übergang von Vcc als Referenz, zu interner Referenz, dauert über 4ms
An den Übergängen zeigen sich zudem leichte Überschwinger, auch da 
reicht eine Dummymessung nicht.

von Wolfgang (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dasselbe passiert auch, wenn ich den Poti an A6 anschließe, und A5, A6,
> A7 einlese. Sind die Eingänge nicht übersprechsicher?

Der ADC hat nur einen einzigen Eingang. Was meinst du mit ADS-Pins?
Zwischen Analog-Inputs und ADC-Eingang liegt ein Multiplexer, der 
naturgemäß auch eine Kapazität besitzt. Wenn die nach dem Umschalten vom 
Multiplexer nicht von irgendeinem halbwegs niederohmigen Signal 
umgeladen wird, kannst du nicht erwarten, dass sich am gemessenen Wert 
etwas nennenswert ändert.
Beschäftige dich

> Das kann doch nicht normal sein, was habe ich falsch gemacht?

Dir fehlen sämtliche Grundlagen bzgl. Analogdatenerfassung.

von Komm Peiler (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Resultat:
> Der Übergang von Vcc als Referenz, zu interner Referenz, dauert über 4ms
> An den Übergängen zeigen sich zudem leichte Überschwinger, auch da
> reicht eine Dummymessung nicht.

Das sei allen überheblichen "Datenblatt-Fetischisten" getrommelt und 
gepfiffen!

von Winfried (Gast)


Lesenswert?

Vielen Dank für die Mühe mit der Messung! Sehr aufschlussreich. Sowas 
sollte in der Tat ins Datenblatt.

von S. Landolt (Gast)


Lesenswert?

> ... ins Datenblatt

Kann sich doch jeder selbst ausrechnen, siehe den Beitrag von Axel S.

von S. Landolt (Gast)


Lesenswert?

PS:
Im übrigen vermisse ich bei Ufufs Beitrag die Angabe, wie Aref auf 
seinem "Uno Klon" beschaltet ist, insofern kann ich also mit diesem 
"über 4ms" erstmal wenig anfangen.

von Einer K. (Gast)


Lesenswert?

S. Landolt schrieb:
> Im übrigen vermisse ich bei Ufufs Beitrag die Angabe, wie Aref auf
> seinem "Uno Klon" beschaltet ist, insofern kann ich also mit diesem
> "über 4ms" erstmal wenig anfangen.

Das kann dir der ufuf auch nicht wirklich sagen.
Denn es ist ein Klon(Nachbau/Fälschung) und auslöten und dann messen, 
spart er sich ein.
Der original UNO sollte an der Stelle 100nF gegen GND haben.

Ich rechne mit erheblichen Unterschieden, von Arduino(Klon) zu 
Arduino(Klon). Man wird also jeden Aufbau einzeln testen müssen, wenn 
man es genau haben möchte.

Nachtrag:
Da der Aufbau noch steht, habe ich mit einem Mega2560 gegen getestet.
Recht exakt 4,5ms von Vcc zu Internal
Der UNO(Klon) braucht eher 4,7ms

Zusätzliche 100nF zwischen Aref und GND verdoppelt die Zeit auf ca 9ms

von S. Landolt (Gast)


Lesenswert?

> Zusätzliche 100nF zwischen Aref und GND verdoppelt die Zeit auf ca 9ms

Danke. Damit lässt sich jetzt eher etwas anfangen.

(Und falls das falsch verstanden wurde: ich war schlicht zu 
faul&nachlässig, "Arduino Fanboy D." auszuschreiben, pardon)

von Einer K. (Gast)


Lesenswert?

S. Landolt schrieb:
> (Und falls das falsch verstanden wurde: ich war schlicht zu
> faul&nachlässig, "Arduino Fanboy D." auszuschreiben, pardon)

Bitte keine Panik!
Alles ist gut.

von S. Landolt (Gast)


Lesenswert?

Geschätzter Arduino Fanboy, es gibt Tage, an denen wird nichts mehr gut, 
oder, um es mit Charlie Brown auszudrücken: "Der Sinn des Lebens ist, 
zurückzugehen und zu schlafen und zu hoffen, dass morgen ein besserer 
Tag wird".
  Ihnen einen schönen Abend.

von Einer K. (Gast)


Lesenswert?

S. Landolt schrieb:
> es gibt Tage, an denen wird nichts mehr gut

Tipp:
> Die Sonne scheint immer!

Nachtrag:
Man sollte freundlich mit seinen Problemen umgehen!
Allmorgendlich begrüßen!
(Guten Morgen liebe Sorgen, seit ihr ....)
Denn sie bleiben einem meist lange erhalten, ganz so, wie Freunde, 
Feinde und Verwandte auch.

Beitrag #5620164 wurde von einem Moderator gelöscht.
Beitrag #5620173 wurde vom Autor gelöscht.
Beitrag #5620195 wurde von einem Moderator gelöscht.
Beitrag #5620256 wurde von einem Moderator gelöscht.
Beitrag #5620306 wurde von einem Moderator gelöscht.
Beitrag #5620409 wurde von einem Moderator gelöscht.
Beitrag #5620468 wurde von einem Moderator gelöscht.
von LED-Experte (Gast)


Lesenswert?

Arduino: ADC-Pins nicht übersprechsicher? schrieb:
> Dasselbe passiert auch, wenn ich den Poti an A6 anschließe, und A5, A6,
> A7 einlese. Sind die Eingänge nicht übersprechsicher? Das kann doch
> nicht normal sein, was habe ich falsch gemacht?
du hast vermutlich ein paar Typen/Anschlüsse die unter Naturschutz 
stehen und dir verbieten z.B. eine Kon_troll-LED an A7 anzuschließen. 
Wenn du nicht gleich dein Programm neuschreiben musst, sondern nach 
Anschluss einer Kon_troll-LED an A7 dein Programm in
1
void setup() {
2
  Serial.begin(9600);
3
  delay(500);
4
}
5
6
void loop() {
7
  Serial.print(analogRead(A0));
8
  Serial.print("\t");
9
  Serial.print(analogRead(A1));
10
  Serial.print("\t");
11
  Serial.println(analogRead(A7);//eine Aenderung (A2->A7) anstatt neues Programm
12
  delay(10);
13
}
ändern kannst, dann kannst du anhand des Plots sehen wie A1 zu A0 
(über)spricht.

Beitrag #5620536 wurde von einem Moderator gelöscht.
Beitrag #5620546 wurde von einem Moderator gelöscht.
Beitrag #5620638 wurde von einem Moderator gelöscht.
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.