mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik differential ADC will nicht


Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich glaube langsam das die differential Geschichte manchmal nicht nur 
nicht getestet ist sondern auch tatsächlich nicht funktioniert.

Situation:
ATmega16 , DIP- Typ

VCC  : 5,3V  anliegend
AREF : 5,12V anliegend

ADC3 : 250mV anliegend
ADC2 : GND

ADCSRA: ADLAR=0  (Ergebnis rechtsbündig)


Wenn ich
ADMUX= (4...0) = 00011 vorgebe erhalte ich exakt 50LSB. Korrekt.

Wenn ich
ADMUX= (4...0) = 11011 vorgebe ( Differential- Mode ohne 
Verstärkung)erhalte ich 1023LSB, und ich finde gesetzte Bits im oberen 
Bereich desADCH, was überhaupt nicht sein dürfte. Ich müßte so 25 LSB 
bekommen. Das bei Diffenttial Mode das Ergebnis im Zweierkompement 
abgelegt ist dürfte egal sein, denn meine Differenz ist positiv.

Wenn ich
ADMUX= (4...0) = 01101 vorgebe erhalte ich auch 1023LSB, und ich finde 
auch gesetzte Bits im oberen Bereich desADCH, was überhaupt nicht sein 
dürfte.

Dummer weise sind die zwei Atmega16 aus der selben Charge.
Ich hatte früher bei einer anderen Geschichte den Diff- Mode mit Gain 
schon mal am laufen bei einem Atmega als DIP. Keine Ahnung wo derzeit 
der Fehler liegen könnte. Hilfe !!

Danke Pö

Autor: Markus Schneider (watermax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuch mal mehrmals hintereinander mit differentiellen Eingang zu 
messen.
Hab schon mal irgendwo gelesen, dass man das erste Ergebnis 
wegschmeissen kann.

Gruß Markus

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich messe fortlaufend, und auch bei 64fach Mittelung ändert sich am 
Ergebnis nichts.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Genau das Selbe Problem hatte ich neulich auch gehabt. Allerdings habe 
ich es mit nem mega16 und nem mega8 probiert (beide im TQFP Gehäuse). 
Ich hab dann irgendwann aufgegeben.

Nur eine Frage noch:
Gegen welchem Potential misst du die beiden Spannungen an ADC2 und ADC3 
? gegen GND?

Autor: Pö (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na da bin ich ja froh bzw. nicht weil es nicht gelöst wurde .-)
Aber wenn du es bei TQFP hattest liegt es ja möglicherweise an was 
anderem.
So wie es aussieht steht in den ADCH und ADCL Registern nur Einsen, 
komplett, und nicht nur die 10Bit. Wie geht denn sowas...

Ich hab noch ne Idee und probier morgen mal die bei mir eingentlich gar 
nicht differentiell arbeitenden ADC1 und ADC0 auf diff umzustellen, mal 
sehen was da passiert.

Jetzt steh ich mit einer Leiterplatte da wo ich noch nen zusätzlichen 
Verstärker bräuchte und meiner Temperaturmessung fehlt die 
Kommastelle....

Ich habe eine externe Referenz, und ja ich messe gegen GND. Genau 
genommen DGND, aber im Endeffekt ist es ja eh verbunden.

Gegen was soll ich sonst messen? Soviel ich weiß sind A/D-GND und 
IC-Versorgungs-GND intern verbunden und die Spezifikation erlaubt auch 
nix negatives...

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck' dir im Datenblatt das ADC-Result bei differenzieller Messung an. 
Das erklärt dann auch die Einsen: negatives Ergebnis. ;)

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du das bitte erläutern?
Ich finde nur das das Ergebnis im Zweierkomplement dargestellt wird.
Also bei neg Werten steht im MSB eine 1 un der Wert ist komplementär, 
bei positiven Werten sind die LSB ganz normal. Meine Differenz ist 
positiv (250mV- 0mV = 250mV) Ich dürfte keine Eins in MSB haben.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wnn du den Wert als (signed) integer anzeigen lässt und bei gesetztem 
Vorzeichenbit die nicht benutzten Bits im MSB mit einsen auffüllst, dann 
bekommst du direkt den Wert angezeigt.
Ich habe das mit einem mega32 gemacht, das sollte funktionieren.

>Meine Differenz ist positiv (250mV- 0mV = 250mV)
Stimmt die Refenzspannung? Oder pole mal um, ob sich's dann ändert.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Differentielle ADC macht bei mir auch murks wenn eine Siete auf 
einem GND Potetial liegt, hatte nämlich auch erst geplant das sozusagen 
als internen verstärker zu mißbrauchen.
Geklappt hat nur das ich den Negativen eingang per Kondesator auf GND 
gelegt habe, SignalGND auf GND des AVR, und das Signal dann per 
Kondesator einkoppeln.
Geht natürlich nur bei Wechselspannungssignalen. Was für einen 
Temperatursensor benuzt du denn? ggf ist es einfacher die 
Referenzspannung runterzudrehen!

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, gefunden.

also die integer Geschichte trifft mich nicht direkt da ich in Assembler 
arbeite, bzw es war nicht das Problem.

Aber es hat sich dann doch gezeigt das es erforderlich war Wartezeit 
zwischen dem setzen der Diffeingänge und der Messung einzufügen.

Ich hatte eine Routine wo (immer die gleichen) Eingänge immer wieder 
gesetzt wurden, und da es immer die gleichen Eingänge waren dachte ich 
ich brauch dann keine Wartezeit mehr.
Als ich das Setzen der MUX aus der Schleife rausgenommen hatte uns bissl 
wait gemacht habe gings dann.

DANKE AN ALLE !

Autor: avion23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Pöhli
kannst du mal dein Groundpotential meßen? Ich habe gelesen, dass der 
differenzielle amp nur funktioniert, wenn beide Signale unterschiedlich 
zu {Vcc,Gnd} sind. Ich wüßte gerne, was jetzt stimmt :(

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.