Forum: Mikrocontroller und Digitale Elektronik ADC Referenzspannungsauswahl Beschaltung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Thomas P (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir vor zwei Jahren mal einen ATmega16 zugelegt und bisher 
immer nur LED´s angesteurt. Jetzt möchte ich den ADC benutzen, um die 
Spannung eines Potis einzulesen.

Leider klappt das nicht. In ADCW steht immer nur 0 drin.

Ich vermute, dass ich ein Problem mit der Referenzspannung habe.
Habe das damals so verschaltet (siehe Bild).

Ich meine, es müsste noch eine Spule zwischen beiden Kondensatoren???

Jedenfalls ist es egal, ob ich für Vref AREF, AVCC oder die internen 
2,56 V nehme. Der ADC macht nix.

Kann man überhaupt AREF und AVCC gleichzeitig anschliessen, oder kann es 
daran liegen? Der Code müsste so eigentlich stimmen.

Ich habe mir schon zweimal den Absatz im Datenblatt durchgelesen, aber 
wir haben früher kaum Englisch gelernt und die Online Übersetzung 
liefert grauenvolle Sätze.

Über etwas Hilfe wäre ich dankbar.


Viele Grüße Thomas.

von Purzel H. (hacky)


Bewertung
0 lesenswert
nicht lesenswert
Allenfalls waere ein blick ins Datenblatt angezeigt... Die AVCC wird per 
100 Ohm 100nF entkoppelt und bei AREF ist ein Cap.

Ins datenblatt des Hersteller, nicht eines Trittbrettfahrers.

: Bearbeitet durch User
von Karl M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nun die 100 Ohm am AVcc steht in den betreffenden Atmel application 
notes auch nicht!
Dort findet man eine Induktivität, Richtwerte 10µH - 100µH.

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Thomas P schrieb:
> Jedenfalls ist es egal, ob ich für Vref AREF, AVCC oder die internen
> 2,56 V nehme. Der ADC macht nix.

Wenn du Aref an Vcc klemmst, wie in deinem Schaltplan....
und dann auf 1,1V stellst, ist was falsch.
und dann auf 2,56V stellst, ist was falsch.

In beiden Fällen ist das ein Zustand, vor dem das Datenblatt 
ausdrücklich warnt.

Also ja, die interne Referenz könne jetzt kaputt sein.
Und das drumrum vielleicht auch.

Also ab mit der Referenz von den Vcc!
Einfach einen (z.B.) 100nF Kerko zwischen Aref und GND, so wie das 
Datenblatt empfiehlt, und dann ist gut.
Die Umschaltung geht per Software....

Und nein, ich habe noch nie ausprobiert welche Farbe der Rauch hat, wenn 
man die 1,1V Referenz mit den 5V grillt....

Aber 1 kann ich dir schwören: Mit dem Schaltbild die kleineren 
Referenzen (!= Vcc) nutzen zu wollen, wird misslingen.

: Bearbeitet durch User
von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
Übrigens ist auch Deine Impedanz am Eingang zu hoch, AVRs ADC will da 
maximal 15kOhm sehen.

Kann man bei Dir aber mit einem 100nF Kondensator parallel zum Poti 
ausgleichen.

von Thomas P (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für Eure Antworten.
@ Jim Meba, bei der Zeichnung habe ich vergessen die Werte anzupassen.
Der Widerstand hat 2 kOhm und der Poti ist ein PT1000.

Ich habe die Schaltung jetzt nach Arduino Fanboys Äusserungen geändert.
Der ADC funktioniert jetzt. Allerdings kann ich nicht sagen, ob der ADC 
des ATmega16 wircklich durch die Fehlbeschaltung defekt geworden ist, da

ICH  ADMUX und ADCSAR falsch gesetzt habe und zwar mit der HEX Codierung 
anstatt der Binärcodierung.   Also   0x statt 0b.(siehe Code oben)

Ist mir erst aufgefallen, nachdem der ADC immer noch nicht laufen 
wollte.

Vielen Dank für die Hilfe.

von Karl M. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo Thomas,

ich frage mich immer wieder, warum die Menschen nicht die von Atmel 
bereitgestellten Dokumente lesen?

Das war Du suchst hättest Du auch direkt selbst finden können.

Stichwort:
AVR042: AVR Hardware Design Considerations

Link:
https://www.mikrocontroller.net/attachment/56130/AVR042.pdf

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Thomas P schrieb:
> Also   0x statt 0b.(siehe Code oben)

Code auf Bildern sehe ich mir nicht an.
Das blende ich aus, ohne jede Hemmung.
Kann ich ja sowieso nicht testen!
Die Erwartungshaltung, ich soll das zum Testen abtippen, ist gnadenlos 
überzogen.

Und ich schätze das geht vielen hier so.


---------

Karl M. schrieb:
> Hallo Thomas,
>
> ich frage mich immer wieder, warum die Menschen nicht die von Atmel
> bereitgestellten Dokumente lesen?
>
> Das war Du suchst hättest Du auch direkt selbst finden können.
>
> Stichwort:
> AVR042: AVR Hardware Design Considerations
>
> Link:
> https://www.mikrocontroller.net/attachment/56130/AVR042.pdf

Nur ein bisschen doof, dass Aref da keine Erwähnung findet.
Ist also der Blick in die leere Röhre.

Aber dennoch!
Das Datenblatt zum konkreten Prozessor drückt sich da klar aus.
Will allerdings gelesen werden.

: Bearbeitet durch User
von spess53 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi

>Nur ein bisschen doof, dass Aref da keine Erwähnung findet.
>Ist also der Blick in die leere Röhre.

Ist ja auch nicht notwendig, da es in jedem Datenblatt steht

@ Karl M. (Gast)

Die 100R waren tatsächlich mal von ATMEL vorgegeben. Allerdings findest 
du das nur in älteren Ausgaben der Appnotes. Aber Beispiele die 
Schaltbilder vom STK200 und STK300.

MfG Spess

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Ist ja auch nicht notwendig, da es in jedem Datenblatt steht

Wie schon gesagt: Weiß ich!

Aber dennoch ist es irgendwie komisch, dem TE eine Lesehemmung 
vorzuwerfen und ihm dann, im gleichen Atemzug, eine leere Hülse 
anzubieten.

Selbst wenn da keine Absicht hinter steckt, finde ich sowas arg 
irritierend.
Klarer Fall von selber nicht gelesen.

von Manfred (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Aber dennoch ist es irgendwie komisch, dem TE eine Lesehemmung
> vorzuwerfen und ihm dann, im gleichen Atemzug, eine leere Hülse
> anzubieten.

Ihr habt den Satz gelesen:
Thomas P schrieb:
> Ich habe mir schon zweimal den Absatz im Datenblatt durchgelesen, aber
> wir haben früher kaum Englisch gelernt und die Online Übersetzung
> liefert grauenvolle Sätze.

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Natürlich!
Auch wenn ich englisch für eine Notwendigkeit für dieses Hobby halte, 
habe ich ihm recht klar vorgebetet, was zu tun ist.
Und offensichtlich ist das auch angekommen.

: Bearbeitet durch User
von Manfred (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thomas P schrieb:
> Der ADC funktioniert jetzt. Allerdings kann ich nicht sagen, ob der ADC
> des ATmega16 wircklich durch die Fehlbeschaltung defekt geworden ist,

Was für eine unsinnige Aussage ist das denn - entweder "funktioniert" 
oder "defekt geworden"?

Du hast ein Multimeter? Spannung am AD-Eingang messen und gegen die 
ausgegebenen Werte vergleichen, dann weißt Du, ob er funktioniert. Für 
den Test würde ich natürlich ein Poti anklemmen, oder, wenn nicht 
vorhanden, ein paar Festwiderstände ausprobieren.

von Thomas P (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Manfred schrieb:
> Thomas P schrieb:
>> Der ADC funktioniert jetzt. Allerdings kann ich nicht sagen, ob der ADC
>> des ATmega16 wircklich durch die Fehlbeschaltung defekt geworden ist,
>
> Was für eine unsinnige Aussage ist das denn - entweder "funktioniert"
> oder "defekt geworden"?
>
> Du hast ein Multimeter? Spannung am AD-Eingang messen und gegen die
> ausgegebenen Werte vergleichen, dann weißt Du, ob er funktioniert. Für
> den Test würde ich natürlich ein Poti anklemmen, oder, wenn nicht
> vorhanden, ein paar Festwiderstände ausprobieren.

Entschuldige, ich meinte ob der ATmega16 durch die Fehlbeschaltung 
defekt geworden WÄRE. Der ADC wurde ja falsch initialisiert. 
Möglicherweise wurde der ADC also gar nicht aktiviert, da ich die Hex 
Codierung verwendet habe.
somit war die falsche Beschaltung ohne Auswirkungen.

Spannungen messen und mit den ausgegeben Werten vergleichen ist das 
erste was ich gestern gemacht habe. Leider waren die ausgegebenen Werte 
aber 0, obwohl 1,7 V am ADC anlag.

Jetzt läuft es ja.

Vielen Dank für eure Hilfe.

von Manfred (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thomas P schrieb:
> Möglicherweise wurde der ADC also gar nicht aktiviert, da ich die Hex
> Codierung verwendet habe.
> somit war die falsche Beschaltung ohne Auswirkungen.

Bei der Fehlbeschaltung hätte ich eine defekte Referenz befürchtet, aber 
das ist 'hätte würde könnte', ich weiß nicht, wie Fehlertolerant der 
ARef in der Praxis ist.

> Jetzt läuft es ja.

So ist das mit der Schreiberei anstatt einem echten Gegenüber, 
Mißverständnis erzeugt: Du hast gemessen, Werte sind schlüssig, also 
alles gut :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.