Forum: Mikrocontroller und Digitale Elektronik ADC Atmega 16 richtig beschalten


von Marco (Gast)


Lesenswert?

Hallo ich habe mal eine kleine verständnissfrage bzw. möchte wissen ob 
ich das richtig verstanden habe.

Ich möchte mit meine ADCs vom ATmega 16 Spannung messen.
Ich habe Aref mit 100nF gegen masse gelegt und AVCC direkt an Spannung 
und mit einem 100n an Masse. Jetzt habe ich im Datenblatt gesehen das 
man ihn noch mit 10µH an Spannung schließen muss. Liegt es daran , dass 
meine Werte so rumzappeln(hatte gerade keine Spule zur hand)? und ist es 
richtig das ich den Modus "AVCC mit ext.Cap an AREF pin " verwenden 
muss?

Danke schon mal im vorraus für eure Hilfe.

Gruß,

Marco

von chris (Gast)


Lesenswert?

Marco schrieb:
> Ich habe Aref mit 100nF gegen masse gelegt und AVCC direkt an Spannung
> und mit einem 100n an Masse.

i.O.

> Jetzt habe ich im Datenblatt gesehen das
> man ihn noch mit 10µH an Spannung schließen muss

Kann man machen in nicht so verseuchten Umgebungen, wird das Einsatzfeld 
härter sollte man es so machen.

> Liegt es daran , dass
> meine Werte so rumzappeln(hatte gerade keine Spule zur hand)?

Wie oft liest du dann ADCCH:L aus ?

> und ist es

> richtig das ich den Modus "AVCC mit ext.Cap an AREF pin " verwenden
                                             ????????????????
> muss?

Eigentlich wird der C von  AREF nach GND geschaltet so wie du es oben 
beschrieben hast.
Willst du nur die internen Referenzen nutzen ist das richtig. Solltest 
du externe Spannunge an AREF anlegen kann dieser C trotzdem bestehen 
bleiben aber dabei drauf achten das du niemals dann die internen 
Referenzen aktivierst

von Marco (Gast)


Lesenswert?

chris schrieb:
>> richtig das ich den Modus "AVCC mit ext.Cap an AREF pin " verwenden
>                                              ????????????????
>> muss?

Es gibt 4 Modi. Welche Referenz er benutz.
1. internal aus
2. Avcc mit ext. Cap. An aref
3. Reverse
4. internal 2,56.. Voll mit capacitor.

Welchen muss ich benutzen?

chris schrieb:
> Wie oft liest du dann ADCCH:L aus ?

3 mal pro Sekunde.

Vllt noch dazu: auf dem stk500 klappt das alles nur extern auf ner 
selbstgebauten Platine halt nicht. Ich werd es mal mit der Spüle 
versuchen denke ich

von chris (Gast)


Lesenswert?

Marco schrieb:
> chris schrieb:
>>> richtig das ich den Modus "AVCC mit ext.Cap an AREF pin " verwenden
>>                                              ????????????????
>>> muss?
>
> Es gibt 4 Modi. Welche Referenz er benutz.
> 1. internal aus
> 2. Avcc mit ext. Cap. An aref
> 3. Reverse
> 4. internal 2,56.. Voll mit capacitor.

Ok jetzt hab ich den Zusammenhang....
Jep Mode 4 oder 5 dann nutzen

Marco schrieb:
> chris schrieb:
>> Wie oft liest du dann ADCCH:L aus ?
>
> 3 mal pro Sekunde.

ok das ist eigentlich nicht recht schnell. Ursache kann sein das deine 
UB nicht sauber ist (Ripple der Spannungsversorgung) bzw. wie du schon 
selbst geschrieben hast kann es an der fehlende Spule liegen...
Aber zeigt doch mal dein Plan und Layout bzw. wo wird die PLatine 
eingsetzt??

> Vllt noch dazu: auf dem stk500 klappt das alles nur extern auf ner
> selbstgebauten Platine halt nicht. Ich werd es mal mit der Spüle
> versuchen denke ich

Auf dem STK500 ist ja alles drauf. nimm noch nen bisschen Spüli dann 
flutscht der Strom leichter ;-)))

von M. K. (sylaina)


Lesenswert?

Marco schrieb:
> Liegt es daran , dass
> meine Werte so rumzappeln(hatte gerade keine Spule zur hand)?

Es kann auch sein, dass deine Versorgungsspannung zu stark zappelt. So 
wie ich das lese hast du ja keine separate ARef-Spannung. Die Spule kann 
hierbei helfen, die filtert ein wenig.

Marco schrieb:
> und ist es
> richtig das ich den Modus "AVCC mit ext.Cap an AREF pin " verwenden
> muss?

Wenn AVcc deine Versorgungsspannung ist für die Referenz dann ja ;)

von Quarzbastler (Gast)


Lesenswert?

Marco schrieb:
> Ich möchte mit meine ADCs vom ATmega 16 Spannung messen.
> Ich habe Aref mit 100nF gegen masse gelegt und AVCC direkt an Spannung
> und mit einem 100n an Masse.

Hast du denn die üblichen "Pflicht"-Kondensatoren (Abblock-Cs) an
den Controller-Pins zum Glätten der Versorgungsspannung in deiner
Schaltung vorgesehen, sowie einen etwas grösseren Elko für die
globale Versorgungsspannung?

Wie schaut denn der Kontext deines Controllers aus (andere
Schaltungsteile, Netzgerät/Spannungsversorgung)?

von Marco (Gast)


Lesenswert?

Hey! Danke erstmal für die ganzen Antworten. Ich werde das am Montag mal 
überprüfen. Vorallem mit der spannungsversorgung. Ist nen stinkt 
normaler 7805 dran. Kann mir auch vorstellen das es daran liegt. Dann 
bau ich mal ne Spule ein und gute was bei rum kommt. Weil Dann müsste 
ich ja alles richtig beschaltet haben.

von chris (Gast)


Lesenswert?

Marco schrieb:
> normaler 7805 dran

denke daran Eingang 100nF + ca. 10-100µF und Ausgangsseitig 100nF 1-10µF 
zu beschalten falls nicht schon geschehen vielleicht schwingt dieser und 
beeinflusst dadurch deine Schaltung

von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

Hallo Marko,

um mich mit dem ADC des ATMEGA8A vertraut zu machen, habe ich ein 
kleines DVM gebastelt, welches recht gut brauchbar ist:

Beitrag "DVM mit DOGM162W-A, ATMEGA8A, AVRASM"

Ich würde mich freuen, wenn es einige Deiner Fragen beantwortet.
Meine Erkenntnisse:

1.
OP-Ausgang nicht direkt mit einem ADC-Eingang verbinden, s. Punkt 3.
2.
Der/die Port(s) mit den ADC-Eingängen sollte keine Ausgänge haben, deren 
Schaltung stört sonst die Eingangssignal-Erfassung.
3.
Die Eingänge des µP sind sehr hochohmig und lassen sich deshalb mit je 
einem RC-Glied problemlos glätten (hier 10k/10µF).
4.
Das Referenzsignal sollte von einem IC mit sehr guter Spannungreferenz 
erzeugt werden. Auch hier gilt: IC-Ausgang nicht direkt mit dem 
Referenzsignal-Eingang verbinden. Weil der Referenzsignal-Eingang des µP 
niederohmig ist, kann man ihn mit einer passenden RC-Kombination 
versehen. Im Beispiel IC mit 3,0000 V Ausgang, 2,5600 V 
Referenz-Eingang.
5.
Nicht benutzte ADC-Eingänge mit einem 100nF Kondensator nach GND 
abblocken.
6.
Der Versuch, das Signal durch Mittelwertbildung über 256 ADC-Ablesungen 
weiter zu verbessen (s. AVR-Tutorial für AVR-Assembler, Kapitel 15 
AVR-Tutorial: ADC), brachte bei mir keine Verbesserung. Die vom Display 
angezeigte Spannung zappelt um plus/minus 1 Digit, egal ob mit oder ohne 
Mittelwertbildung. Die Mittelwertbildung frisst aber viel Zeit so dass 
damit nur wenige Ablesungen pro Sekunde erfolgen.

Das DVM ist noch nicht ganz fertig. Es wurde bereits mit einem kleinen 
Lautsprecher ausgerüstet. Damit kann man es als Durchgangsperüfer 
verwenden.
Geplant ist noch die Max-Min Anzeige. Hier habe ich das Problem, wie man 
10 Bit Signale miteinander vergleichen kann (bin halt Anfänger bzgl. 
Assembler). Auch im Netz habe ich bisher nichts dazu gefunden.

Beste Grüße und viel Erfolg, Klaus

von Marco (Gast)


Lesenswert?

chris schrieb:
> Marco schrieb:
> normaler 7805 dran
>
> denke daran Eingang 100nF + ca. 10-100µF und Ausgangsseitig 100nF 1-10µF
> zu beschalten falls nicht schon geschehen vielleicht schwingt dieser und
> beeinflusst dadurch deine Schaltung

Hab ich beschaltet. Ich prüfe das am Montag mal direkt alles durch und 
werde ein Feedback geben(hoffentlich gelöst :D )

von Marco (Gast)


Lesenswert?

Und danke Klaus :) guck ich mir mal alles an !

von Stefan F. (Gast)


Lesenswert?

Was meinst du denn mit "so rumzappelt"?

Wenn du mehrere Messungen hintereinander machst, wirst du IMMER 
wechselnde Messwerte erhalten. Du wirst NIE eine längere Reihe gleicher 
Werte erhalten.

Wenn deine Messergebnisse +/-20 um den Mittelwert herum "zappeln", ist 
das völlig normal.

von M. K. (sylaina)


Lesenswert?

Stefan Us schrieb:
> Wenn deine Messergebnisse +/-20 um den Mittelwert herum "zappeln", ist
> das völlig normal.

±20 ist aber schon recht viel. Wenn man ein bisschen sorgfältig ist 
sollten ±1 kein Problem darstellen.

von ArduinoQuäler (Gast)


Lesenswert?

Klaus D. schrieb:
> um mich mit dem ADC des ATMEGA8A vertraut zu machen, habe ich ein
> kleines DVM gebastelt, welches recht gut brauchbar ist:

Es ist keine gute Idee die Referenzspannung über Widerstände mit
Hilfe des Innenwiderstands von Aref auf den gewünschten Wert
herunterzuteilen.

Da nimmt man doch lieber gleich ein Ref-IC das die gwünschte Referenz
anbietet.

von Klaus D. (rodo38)


Lesenswert?

ArduinoQuäler schrieb:

> Es ist keine gute Idee die Referenzspannung über Widerstände mit
> Hilfe des Innenwiderstands von Aref auf den gewünschten Wert
> herunterzuteilen.

> Da nimmt man doch lieber gleich ein Ref-IC das die gwünschte Referenz
> anbietet.

Das entspricht aber nicht meiner Erfahrung. Immer, wenn ich das 
Ausganssignsl eines Analog-IC's direkt, ohne eine RC-Kombination, mit 
einem der Analog-Eingänge des µP's verbinde, zeigt das Display des DVM 
die von Stephan Us genannten ca. plus/minus 20 Digits um den Messpunkt 
herum an. Warum das so ist, habe ich noch nicht herausgefunden.
Wenn sich aber eine einigermassen vernünftig dimensionierte 
RC-Kombination am jeweiligen µP-Analogeingang befindet, dann sind die 
von Michael Köhler genannten plus/minus 1 Digit möglich.
Mir ist natürlich bewusst, dass die RC-Kombination für das 
Referenzsignal einen grossen Nachteil het: Wenn man den µP gegen einen 
anderen tauscht, dann muss man den Widerstand der RC-Kombination dem 
leider nicht identischem Innenwiederstand des neuen µP's anpassen. Das 
erscheint mir aber weit akzeptabler zu sein, als mit einem um plu/minus 
"zappelndem" Display zu leben.

Voraussetzung für alle Messungen ist selbstverstänlich ein perfekt 
glattes zu messendes Signal, z.B. aus einer Batterie.

Am Marco:

Bitte entschuldige, dass ich Deinen Namen falsch geschrieben habe

Klaus

von ArduinoQuäler (Gast)


Lesenswert?

Klaus D. schrieb:
>> Da nimmt man doch lieber gleich ein Ref-IC das die gwünschte Referenz
>> anbietet.
>
> Das entspricht aber nicht meiner Erfahrung. Immer, wenn ich das
> Ausganssignsl eines Analog-IC's direkt, ohne eine RC-Kombination, mit
> einem der Analog-Eingänge des µP's verbinde,

Was hat jetzt die Ref-Auslegung mit den ADC-Eingängen zu tun?

von Ratgeber (Gast)


Lesenswert?

ArduinoQuäler schrieb:
> Was hat jetzt die Ref-Auslegung mit den ADC-Eingängen zu tun?

Die hat nicht nur jetzt etwas damit zu tun, sondern auch noch in 2 
Tagen,
aber auch bereits vor 3 1/2 Monaten hatte sie entscheidenden Einfluß auf
die Stabilität des Meßergebnisses.

Warum? Weil ein unbekannter Wert an einem ADC-Eingang mit einem 
bekannten
und so gut wie möglich konstanten Wert (an AREF) verglichen wird.

von chris (Gast)


Lesenswert?

du sag mal kann es sein das du AREF nicht gesetzt hast im ADMUX ???

von Klaus D. (rodo38)


Lesenswert?

@ Ratgeber:

vielen Dank, dann brauche ich die Frage von ArduinoQuäler ja eigentlich 
nicht mehr zu beantworten.

Um es aber technischer und weniger "gefühlvoll" auszudrücken:
Wenn im ADMUX die Werte REFS1=0 und REFS0=0 sind, dann ist der Eingang 
AREF ein Eingang für eine analoge Gleichspannung mit einem 
Innenwiderstand, welchen ich mit sehr gutem Erfolg für die Installation 
eines RC-Gliedes benutze.
Ich habe es zuvor mit dem in der Spannung mittels Poti einstellbaren 
Ausgang eines OPAMP probiert (ohne RC-Glied) und hatte das Problem mit 
der um plus/minus ca. 20 Digits "zappelndem" Display-Anzeige.
Das Problem scheint sich also auf sämtliche analogen Eingänge des µP's 
zu beziehen, sofern sie sich aufs Messen einer Spannung beziehen. Und 
dazu gehört nun mal auch die Referenzspannung.

Bleibt immer noch die quälende Frage, warum das so ist.

Klaus

von isidor (Gast)


Lesenswert?

Klaus D. schrieb:
> Bleibt immer noch die quälende Frage, warum das so ist.

Dazu müsstest du mal die Beschaltung der ADC-Eingänge darstellen,
sowie die Art der Spannungen die du messen möchtest.

von Klaus D. (rodo38)


Lesenswert?

@ isidor

bitte blättere zurück zu meinem Beitrag hier um 15:37 und öffne meinen 
Beitrag

Beitrag "DVM mit DOGM162W-A, ATMEGA8A, AVRASM"

im erstgenannten Beitrag befindet sich der Gesamtschaltplan im 
gegenwärtigen Zustand (das Gerät wird noch weiter entwickelt). In dem 2. 
Beitrag habe ich (hoffentlich) alles verständlich erklärt.

Grüße
Klaus

von isidor (Gast)


Lesenswert?

Klaus D. schrieb:
> im erstgenannten Beitrag befindet sich der Gesamtschaltplan

Hab ich das richtig verstanden dass du mit Pin 27 und 28 misst
und dort deine "20 Digit - Variation" auftritt?

von m.n. (Gast)


Lesenswert?

Klaus D. schrieb:
> Meine Erkenntnisse:

Es tut mir Leid, aber Deine Schaltung und die Empfehlungen dazu sind 
mehr als grenzwertig.
Nicht benutzte ADC-Eingänge über 100nF nach GND? Was soll das denn?
OPV-Ausgang, 10µf nach GND und dann 10k in Reihe zu ADC-IN? Was soll das 
denn?
Wenn bei Dir die Werte wackeln, dann vermutlich, weil die OPVs vor sich 
hin schwingen.

Bei sauberem Aufbau wackelt in der Regel nichts.

ArduinoQuäler schrieb:
> Es ist keine gute Idee die Referenzspannung über Widerstände mit
> Hilfe des Innenwiderstands von Aref auf den gewünschten Wert
> herunterzuteilen.

Das ist nicht nur eine schlechte Idee, das ist voll daneben!

von isidor (Gast)


Lesenswert?

m.n. schrieb:
> Wenn bei Dir die Werte wackeln, dann vermutlich, weil die OPVs vor sich
> hin schwingen.

Ich wollte die Sache "vorsichtig" angehen, aber ich sehe das auch so.

die Mängel ich ich sehe:

- gosse Cs direkt am OP-Ausgang können den OP schwingen lassen
(auch im kleinen, das muss keine Riesenschwingung werden). Wenn
etwas schwingt dann gibt es kein stabiles Ergebnis.

- wenn schon Tiefpass, dann von Op erst Längswiderstand, dann C
nach Masse

- keine Elkos für hochohmige Signale --> Kriechstrome im Elko
verfälschen das Signal

- Eingänge von OPs die an Masse sollen brauchen keinen Widerstand.
Der erhöht evtl das Rauschen und damit die Messunsicherheit.

- Allgemein sind die Widerstände der OPs sehr hochohmig gewählt,
das muss nicht an allen Stellen so sein. Warum ist das ein Kriterium?
Weil die Hochohmigkeit die Empfndlichkeit der Messung gegenüber
allen möglichen Störungen erhöht (Prozessor-Gerappel und Brumm-
einstreuungen)

von m.n. (Gast)


Lesenswert?

isidor schrieb:
> m.n. schrieb:
>> Wenn bei Dir die Werte wackeln, dann vermutlich, weil die OPVs vor sich
>> hin schwingen.
>
> Ich wollte die Sache "vorsichtig" angehen, aber ich sehe das auch so.

Mit vorsichtigen Andeutungen verhindert man leider nicht, daß die 
Schaltungen dann doch noch nachgebaut werden.

isidor schrieb:
> die Mängel ich ich sehe:

Der Schaltplan ist etwas klein ausgefallen, und daher hatte ich garnicht 
weiter gesucht.
Beachtlich wären noch die 1,6825 VDC auf der Anzeige ;-)

von isidor (Gast)


Lesenswert?

m.n. schrieb:
> Der Schaltplan ist etwas klein ausgefallen, und daher hatte ich garnicht
> weiter gesucht.

Als PDF herunterladen, dann sieht man was .....

von Klaus D. (rodo38)


Lesenswert?

Hallo isidor,
Hallo m.n.,

vielen Dank für Eure Beiträge.

Bitte habt Gnade mit einem alten Mann (ich bin 76). Heute Abend habe ich 
keine Lust mehr. Morgen Nachmittag werde ich mich um sinnvolle Antworten 
bemühen.

Beste Grüße

Klaus

von isidor (Gast)


Lesenswert?

Klaus D. schrieb:
> Bitte habt Gnade mit einem alten Mann (ich bin 76). H

Naja ..... wir haben ja nicht auf dich eingeprügelt ....

... aber wer hier Fragen stellt und Hilfe will muss sich
ja Kritik gefallen lassen....

von Marco (Gast)


Lesenswert?

Michael Köhler schrieb:
> Stefan Us schrieb:
>> Wenn deine Messergebnisse +/-20 um den Mittelwert herum "zappeln", ist
>> das völlig normal.
>
> ±20 ist aber schon recht viel. Wenn man ein bisschen sorgfältig ist
> sollten ±1 kein Problem darstellen.

Auf dem Stk 500 bewegt sich das ganze immer um +- 1. auf der selbst 
gebauten Platine allerdings so ca. +- 50 was sehr viel ist. Ich werde 
einfach Montag mal ne Spule besorgen und dann ganz in Ruhe alles korrekt 
wie im Datenblatt aufbauen und mir dann den richtigen Modus aussuchen im 
programm was ja das oben geschilderte sein müsste.

von Dietrich L. (dietrichl)


Lesenswert?

Marco schrieb:
> Auf dem Stk 500 bewegt sich das ganze immer um +- 1. auf der selbst
> gebauten Platine allerdings so ca. +- 50 was sehr viel ist. Ich werde
> einfach Montag mal ne Spule besorgen

Du solltest auch wissen, dass neben der Versorgungsspannung (Drossel vor 
AVCC) auch das GND-Netzwerk wichtig ist: Trennung von Analog-GND und 
Digital-GND und am µC zusammenführen. Sonst können Spannungsabfälle an 
GND-Leitungen den Analogwert verfälschen.

Zeigt doch mal das Layout!

Gruß Dietrich

von m.n. (Gast)


Lesenswert?

Marco schrieb:
> Ich werde einfach Montag mal ne Spule besorgen

Für Avcc habe ich noch nie ein Spule gebraucht. Erwarte nicht, daß die 
bei Dir irgendetwas verbessert.

isidor schrieb:
> m.n. schrieb:
>> Der Schaltplan ist etwas klein ausgefallen, und daher hatte ich garnicht
>> weiter gesucht.
>
> Als PDF herunterladen, dann sieht man was .....

Genial - es scheint die Sonne!

Klaus D. schrieb:
> Hallo isidor,
> Hallo m.n.,
>
> vielen Dank für Eure Beiträge.

Wegen Deines Alters betrachte ich Dich mal als älteren Bruder; mehr ist 
nicht drin ;-)

Deine Schaltung geht von idealen Bauteilen aus, die in jeder Beziehung 
langzeitstabil sind. Das ist der Hauptpunkt der Kritik.

Sieh mal ins Datenblatt vom CD4066, wie sich der EIN-Widerstand mit der 
Temperatur und sogar nichtlinear mit der zu schaltenden Spannung ändert. 
Den kann man so nicht nehmen!

Warum versorgst Du nicht Aref direkt mit den 3 V des AD780? Wenn das 
Eingangssignal leicht um 3/2,56 verstärkt wird, hat man die Bits des ADC 
wieder ins gleiche Verhältnis zur Eigangsspannung gebracht.

Zur Filterung benutzt man typisch einen RC-Tiefpaß und, wie bereits 
erwähnt, in der Reihenfolge R und dann C. 100nF für C sind völlig 
ausreichend.

Mir wäre der Eingangswiderstand von 156 kOhm viel zu niedrig. Heutige 
Schaltungen werden damit zu stark belastet.
Soweit.

von Marco (Gast)


Lesenswert?

Dietrich L. schrieb:
> Marco schrieb:
> Auf dem Stk 500 bewegt sich das ganze immer um +- 1. auf der selbst
> gebauten Platine allerdings so ca. +- 50 was sehr viel ist. Ich werde
> einfach Montag mal ne Spule besorgen
>
> Du solltest auch wissen, dass neben der Versorgungsspannung (Drossel vor
> AVCC) auch das GND-Netzwerk wichtig ist: Trennung von Analog-GND und
> Digital-GND und am µC zusammenführen. Sonst können Spannungsabfälle an
> GND-Leitungen den Analogwert verfälschen.
>
> Zeigt doch mal das Layout!
>
> Gruß Dietrich

Yes ! Den habe ich auch nicht getrennt. Ist mir auch schon gestern 
aufgefallen. Layout kann ich gerade nicht zeigen bin unterwegs aber 
danke dürfte den Tipp! :)

von M. K. (sylaina)


Lesenswert?

m.n. schrieb:
> Für Avcc habe ich noch nie ein Spule gebraucht. Erwarte nicht, daß die
> bei Dir irgendetwas verbessert.

Ich hab diese Spule immer drin, dafür hab ich selten den AGND und GND 
getrennt, meist habe ich nur eine GND-Fläche. ±1 Count ist bei mir aber 
nie ein Problem. Ob es nun an der Spule liegt oder den 
Abblockkondensatoren vermag ich nicht zu sagen.

von Marco (Gast)


Angehängte Dateien:

Lesenswert?

Hey!

Spule ist an AVCC
von da ein 100n an den GND und Aref auch mit 100n an GND!

Scheint zu Funktionieren, zumindest ein Eingang! Ich habe mal das 
Programm angehängt. Wenn ich jetzt an Pin A0 Messe zeigen alle ADC den 
Richtigen wert an! logisch ich habe "Channel" nicht angegeben nur wenn 
ich jetzt ADMUX = Channel mache geht nichts mehr. Wie löse ich das, dass 
er alle einzeln ausgibt?

Grüße Marco :)

von Marco (Gast)


Lesenswert?

ich habe auch dem "unsignet char channel" ein "int channels gemacht und 
schon funktioniert es.

von M. K. (sylaina)


Lesenswert?

Marco schrieb:
> wenn
> ich jetzt ADMUX = Channel mache geht nichts mehr

Kann ja auch "nicht" funktionieren (ist hier nur "Zufall"). ADMUX stellt 
nicht nur den ADC-Kanal ein sondern ist auch für die Referenz zuständig. 
Nehmen wir mal an du willst auf ADC-Kanal 1 messen und hast AVcc als 
Referenz dann musst du
1
ADMUX = (1 << REFS0) | (1 << MUX0);

schreiben. Willst du nun zu ADC-Kanal 2 wechseln und schreibst
1
ADMUX = 2;

dann änderst du damit auch zeitgleich die Referenzquelle. Richtig ändert 
man den Kanal aber so:
1
ADMUX = (1 << MUX1);
2
ADMUX &= ~(1 << MUX0);

Und wenn man das als Kanalwahl will, also dass man einer Funktion nur 
die Kanalnummer übergibt, ginge das so:
1
void channelChoose(uint8_t channel){
2
 ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
3
}

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael Köhler schrieb:
> dafür hab ich selten den AGND und GND
> getrennt, meist habe ich nur eine GND-Fläche

Das ist ja auch genau richtig. Die Potentialunterschiede zwischen AGND 
und DGND sind ja dann am niedrigsten, wenn du beide unter dem MC direkt 
miteinander auf eine Massefläche legst. Von diesem Stern gehen dann die 
digitalen und analogen Massen getrennte Wege. Selbst mit Punktraster, 
aber dicken Masseleitungen gehen hier auch immer +/- 1 Digit, als alter 
HF-ler baue ich die Drossel für AVcc aber sowieso immer ein und der MC 
wird grosszügig abgeblockt.

von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

@ Alle

hallo, hier bin ich wieder um mich der teils mehr als berechtigten 
Kritik zu stellen.

30.01.2015 19:54 isidor
Pin 27: DC-Werte, Pin 28: Gleichgerichtete AC-Werte

30.01.2015 20:23 m.n.
nicht benutzter ADC-Eingang, 100nF nach GND: Vermeidung von 
Antennen-Einfluss
OPV-Ausgang mit 10µF beschaltet: Fehler im Schaltplan. Korrekter 
Schaltplan ist hier angehängt. Kritik mehr als berechtigt, es würde 
absolut nicht funktionieren.
Wenn bei Dir die Werte wackeln...: Sie wackeln nicht!
Das ist nicht nur...: Dann würden sie wackeln, bitte glaub mir.

30.01.2015 20:32 isidor
- grosse Cs direkt...: Stimmt, s.o.
- wenn schon Tiefpass...: Stimmt, s.o.
- keine Elkos für...: Da könnte was dran sein. Ich habe aber keine 
Probleme. Habe die Rs auf 15k geändert um die Tiefpasswirkung zu 
vergrössern. Sollte evtl. in 100nF/1,5MOhm geändert werden.
- Eingänge von OPs...: Stimmt im Prinzip. Diese Widerstände verbessern 
die Stabilität bei Temperaturänderungen.
- Stimmt im Prinzip. Ich wollte die "Lebensdauer" der Akkus erhöhen.

30.01.2015 20:40 m.n.
Beachtlich wären noch...: Sieh Dir die Datei 
<Kalibrierwerte_des_DVM.xls> an. Weiter unten kommen aber weitere 
hoffentlch interessante Infos.

30.01.2015 21:02 isidor
Ich fühle mich nicht verprügelt. Eure Kritik ist mir mehr als 
willkommen.

31.01.2015 12:03 Marco
Auf dem Stk 500 bewegt...: Gibt es dazu einem Schaltplan? Wäre 
interessant für mich ihn mit meinen Problemlösungen zu vergleichen.

31.01.2015 12:36 m.n.
Hallo jüngerer Bruder,
CD4066: Sehr wichtiger Hinweis! Habe Messungen gemacht, s. bitte das 
Bild DSC22692.pdf. Ausserdem wurden noch eine Zelle mit der Nennspannung 
1,5V sowie ein Akku mit der Nennspannung 1,2V gemessen. Bei der 9V 
Batterie wird der Messbereich 25V, bei den beiden Zellen der MB 2,5 
gewählt. Hierauf beziehen sich die folgenden Berechnungen.
U_Batt:   Vorab mit dem Fluke 189 gemessen
U_Digi:   Anzeige des gebastelten DVMs
U_CD4066: An den Pins des ICs direkt gemessen
R_Rück:   Da ich die Stellung der Potis nicht genau kenne, habe ich
          für die Berechnungen jeweils die Hälfte des Poti-Wertes dem
          Festwiderstand hinzugefügt.
I_Rück:   Der Strom der von TP11 nach TP12 fliesst

Gemessene Werte:

U_Batt     U_Digi     U_CD4066     R_Rück
 [V]         [V]        [V]        [Ohm]
9,497      9,475       0,0089      15500   CD_4066 Pins  2- 1  Fall1
1,5870     1,5850      0,0016     155000   CD_4066 Pins 10-11  Fall2
1,2520     1,2500      0,0012     155000   CD_4066 Pins 10-11  Fall3

Gerechnete Werte:

Fall1:
I_Rück    = 9,467 / 15500        =   0,00061209  A
R_CD4066 = 0,0089 / 0,00061209   =  14,54034537  Ohm
R_CD4066 * 100 / 15500           =   0,09380867  %

Fall2:
I_Rück    = 1,587 / 155000       =   0,000010238 A
R_CD4066 = 0,0016 / 0,000010238  = 156,2696912   Ohm
R_CD4066 * 100 / 155000          =   0,100819155 %

Fall3:
I_Rück    = 1,252 / 155000       =   0,000008077 A
R_CD4066 = 0,0012 / 0,000008077  = 148,5623003   Ohm
R_CD4066 * 100 / 155000          =   0,095846645 %

Erkenntnisse:
1.
Der Innenwiderstand des CD4066 schwankt sehr stark in Abhängigkeit des 
Stroms, welcher durch den jeweiligen Kanal fliesst. Sein Anteil am 
Gesamtwiderstand beträgt aber nur ca. 0,1%.
2.
Im Fall1 habe ich den auf 150 °C eingestellten Lötkolben 30 Sekunden 
lang fest auf den CD4066 gedrückt. Dieser wurde so heiss, dass ich ihn 
direkt danach nicht mehr mit dem Finger berühren konnte. Der Wert 
U_CD4066 stieg von 0,0089V auf 0,0096V. Das gebastelte DVM behielt 
seinen vom LCD angezeigten Wert von 9,475V bei, natürlich mit der 
Schwankung von plus/minus 1 Digit, also wurden hin und wieder auch 
9,450V bzw. 9,500V angezeigt. Die Auflösung pro Digit beträgt hier 
0,025V.

Der CD4066 ist also tatsächlich ein potentieller Fehler-Verursacher. 
Weil sein Einfluss aber mit 0,1% recht klein ist, ist seine Verwendung 
hier m.E. in Ordnung. Im MB 250V könnte das aber ganz anders aussehen.

Ich habe das Datenblatt des CD4066 von Fairchild 1986. Welchen Punkt 
soll ich mir genau ansehen?

Falls Du ein besseres IC für diesen Zweck kennst: Welches?

Warum versorgst Du nicht Aref direkt...?
Weil mein Display dann zappelt wie verrückt. Man kann es dann praktisch 
nicht mehr ablesen.

Zur Filterung...
Völlig korrekt, s.oben.

Mir wäre der Eingangswiderstand von 156 kOhm viel zu niedrig...
Das ist er mir auch. Meine beiden Fluke DVMs aben je 11MOhm. Man könnte 
ihn theoretisch unendlich hoch machen, wenn man einen OPV als 
Spannungsfolger vor dem LM324 Pin 2 einbaut. Jedoch: Wegen der 
Versorgungsspannung von plus/minus 5V würde das nur im Bereich von 0 bis 
ca. 3V funktionieren. Ich kenne keine Lösung für dieses Problem. Für 
entspr. Infos wäre ich wirklich sehr dankbar!

von isidor (Gast)


Lesenswert?

AC und DC Messeingang gehen beide identisch auf den OP-Eingang.

Welchen Sinn soll das machen?

von spess53 (Gast)


Lesenswert?


von Klaus D. (rodo38)


Lesenswert?

Hallo isidor,

Du meinst vermutlich, dass beide mit je 4 x 39kOhm beschaltet sind. Ich 
hätte mir also die getrennten Eingänge für DC und AC sparen können. Dass 
sie beide mit den gleichen 156Kohm quasi optimal arbeiten, hatte ich 
beim Bau des Gerätes aber nicht vermutet. Deshalb habe ich 
vorsichtshalber je einen Eingang vorgesehen.
Aber natürlich hast Du recht. Im Nachhinein ist man (in diesem Fall ich) 
eben klüger.

Gruß Klaus

von Klaus D. (rodo38)


Lesenswert?

Hallo spess53

vielen Dank.
Anmerkung dazu: Aus früherer beruflicher Tätigkeit habe ich noch CD4066 
herumliegen. Es ist halt viel bequemer, etwas das man hat zu benutzen, 
als sauber zu recherchieren und dann zu bestellen.
Das ganze ist für mich ein Hobby und keine ernsthafte 
Entwicklungsarbeit. Trotzdem ist es schön wenn man etwas lernen kann.

Gruß Klaus

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.