www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik ADC mit Referenzspannung


Autor: Udo Kreuzer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!
Folgendes Problem:
Ich habe zuerst eine AD -Wandlung mit der Versorgungsspannung und GND
als Referenzspannungen - also so wie es standardmäßig beim PIC16f877
geschieht. Dabei wurde z.B. der Eingangswert 740mV in ca. 148 binär
gewandelt (bei 10bit)
(Vref+ - Vref-)/1024 =5V/1024=ca. 5mV
740mV / 5mV = 148
Diese AD -Wandlung stimmt also noch!

Als nächstes legte ich an Pin 3 von Port A (der Eingang für positive
Referenzspannung)2,56V an. Die Referenzspannungsquelle habe ich als
Dateianhang dazugegeben!!!!
Nun müsste der Eingangswert von 740mV so ca. 300 binär ergeben oder?

(Vref+ - Vref-)/1024 =2,56V/1024=ca. 2,5mV (als Vref- wurde GND
verwendet).
740mV / 2,5mV=296
Bei der AD -Wandlung ergibt sich jedoch ca. 40 als Binärwert ,also viel
zu niedrig?
Weiß jemand an was das liegen könnte?? mfg

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne pickilante Ahnung würde ich auf 8 bit Auflösung tippen. Addiere 256
und Du bekommst genaue 2 x 148 = 296 = 256+40, wenn ich mich nicht
verrechnet habe.

Autor: Udo Kreuzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja aber ich frag mich warum die Auflösung durch das Anlegen einer
Referenzspannung kleiner wird? Naja vielleicht ist das ja der
Normalfall. danke

Autor: Thomas O. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hast du ein Oszi um die Versorgungsspannung für den ADC zu prüfen,
evtl. bricht sie kurz ein oder da sind noch Spannungsspitzen, wenn die
Mux auf einen Kanal umschaltet oder die Messung gerade beginnt. Bei den
AVR's wird im Datenblatt empfohlen einen Tiefpass bestehend aus kleiner
Spule und Kondensator zu nehmen. Habe mal ein Bild reingesetzt schaus
dirs mal an könnte dir helfen. Evtl. reicht auch schon ein Kondensator.
Als Typ wird ein Tantalkondnsator empfohlen und die Referenzspannung mit
einem 1µF Elko zu Puffern kann auch nichts schaden so bleibt die
wenigsten stabil.

Autor: Udo Kreuzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe leider kein Oszi bei der Hand, aber hab das mal mit dem Kondensator
ausprobiert --> gleiches Ergebnis wie vorher!
mfg

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mach mal den Kondensator sowohl zw. AVCC-AGND als auch zw- AREF-AGND,
möglichst nah an die Pins.

Bau mal zum testen einen normalemn Spannungsteiler um auf deine 2,56V
zu kommen. Wähle den ersten Wiederstand etwas kleiner so um die 400
Ohm, damit die Spannung auch belastbar bleibt.

Manche AVR können doch intern 2,56V an den AREF geben, dann würde sich
das ganze erübrigen.

Außerdem gibt es das Problem das die gängigen Stabilisierer (LM7805)
bei geringer Last ca. 5,1Volt ausspucken und erst bei höherer Last
korrekt auf 5,0V regeln, evtl. tut das deine Referenzspannungsquelle
auch etwas beeinflussen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor ich an der Hardware rumspielen würde, würde ich zunächst das
High-Byte beachten.

Autor: Udo Kreuzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ehm was genau meinst du damit??

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne Dein Programm gesehen zu haben, meine ich, daß man für 10 Bit zwei
Stück Bytes braucht: low + high. Mir scheint, Du verwendest nur das
low-Byte, womit man keine größeren Werte als 255 darstellen kann.

Autor: Udo Kreuzer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Okay ich hab mal das Programm als Anhang dazugegeben. Okay vielleicht
wandelt er deswegen so komisch -aber warum ist es dann zuvor bei 5V als
Referenzspannung gegangen??? da hat er doch mit 10 bit gewandelt, warum
sollte er es jetzt nicht mehr machen???

kann es vielleicht sein, dass ich den Eingang den ich für die
Referenzspannung verwende irgendwie setzen muss oder ---keine
ahnung!!!
mfg

Autor: Martin Maier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab jetzt versucht einen neuen PIC zu verwenden, hab als Datentyp
unsigned int probiert, hab eine andere Referenzspannungsquelle probiert
- schon langsam habe ich keine idee mehr?
Hat irgendjemand schon einmal eine ad -wandlung mit referenzspannungen
gemacht???

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, einfache erklärung:
178 lässt sich mit 8bit darstellen, 296 eben nicht mehr.
Deswegen, solltest du das high byte beachten;)
Damit du sicher seien kannst, das richtige zu verwenden nimm uint16_t
oder falls es bei avr anders sein sollte das äquivalent dazu.

Und jetzt noch das "Phänomen":
296: 1 0010 1000
bei blos 8 bit: 0010 1000 = 40
-> somit wäre ja wohl eindeutig klar was da abgeht.

set_adc_channel(0);// EingangA.0 als Eingang auswählen
tempwert = Read_ADC();

Wieso schreibst du das als funktionen?
Das kostet dich ne menge ausführungszeit, für das was in der Funktion
dann getan wird.

tempwert = ADCL;
tempwert += ADCH;
dass sollte alles sein, was du brauchst.
Dafür ne eigene Funktion ist doch etwas übertrieben.
mfg Flo

Autor: Udo Kreuzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erstmal!
mfg

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.