mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F1220 ignoriert Vref+ und Vref-


Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe wieder einmal ein Problem bei dem ich mit meinem Datenblattn 
nicht weiterkomme.... Und zwar habe ich meinen PIC18F1220 mit einer 
Vref+ und Vref- versorgt.

Ich möchte einen Spannungsbereich von 2,5V - 3,30V wandeln. Dafür habe 
ich an Vref- 2,5V angelegt und an Vref+ 3,30V. Wenn ich das Datenblatt 
richtig verstanden habe, wird nun meine Differenz dazwischen in einen 
Digitalwert gewandelt.

Soweit ich weiss habe ich den ADC richtig konfiguriert. Hier einmal 
meine Konfiguration:

;  Konfiguration der Ports  *************
    MOVLW  B'00001101'        ;
    MOVWF  TRISA          ;
    MOVLW  B'00000000'        ;
    MOVWF  TRISB          ;
;  Konfiguration des Oscillators  *****
    MOVLW  B'01110111'        ;
    MOVWF  OSCCON          ;
;  Konfiguration des ADC  *************
    MOVLW  B'11000001'        ;
    MOVWF  ADCON0          ;
    MOVLW  B'00001101'        ;
    MOVWF  ADCON1          ;
    MOVLW  B'00101101'        ;
    MOVWF  ADCON2          ;


Nun gibt mir der ADC allerdings immer vollkommen falsche Werte heraus. 
So wandelt er zum Beispiel eine angelegte Spannung von 1,8V-2,0V in 
einen Digitalwert....


Habe ich hier einen Fehler in meinem Code oder kann es sein, dass Vref+ 
und Vref- Grenzen haben die ich überschritten habe. Im Datenblatt finde 
ich leider keine Grenzen und gehe daher davon aus, dass Spannungen im 
Bereich von Vss-Vdd als Vref-Fenster genutzt werden können.....



Bitte um Hilfe, wenn jemand eine Ahnung hat was ich hier falsch 
mache....





LG Fred

Autor: Helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Adcon0 muß bei Bit 7 und 6 je eine eins haben. Datenblatt S157
Gruß Helmut

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fred schrieb:
> Habe ich hier einen Fehler in meinem Code oder kann es sein, dass Vref+
> und Vref- Grenzen haben die ich überschritten habe. Im Datenblatt finde
> ich leider keine Grenzen und gehe daher davon aus, dass Spannungen im
> Bereich von Vss-Vdd als Vref-Fenster genutzt werden können.....

Es gibt in der Tat einige Grenzen:

Vref+:
max. Vcc + 0.3V
min. Vcc - 2.5V

Vref-:
max. Vref+ - 2V
min. GND - 0.3V

Fred schrieb:
> So wandelt er zum Beispiel eine angelegte Spannung von 1,8V-2,0V in
> einen Digitalwert....

Du meinst die die du an Vref- udn Vref+ anlegst oder wie?

Gib mal dein compiliertes hex file her - dann jag ich das mal durch den 
Simulator. Mal schauen was die Register so tun ...

Autor: Fred (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier einmal mein File.

ADCON0 ist doch korrekt oder nicht? Also so wie ich es konfiguriert 
habe...

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, ich meinte wenn ich als Vref+ 3,3V und als Vref- 2,5V vorgebe, 
dann wandelt er eine am Eingang angelegte Spannung von 1,8V-2,0V ca um. 
Alle anderen Spannungen ergeben nur Mist.... bzw 1024 oder eben 0

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt in der Tat einige Grenzen:

Vref+:
max. Vcc + 0.3V
min. Vcc - 2.5V

Vref-:
max. Vref+ - 2V
min. GND - 0.3V



Bedeutet das nicht, dass ich mit meinen Spannungen total falsch liege. 
Ich habe folgende angenommen:

Vref- = 2,5V
Vref+ = 3,3V


Nach den Werten oben müsste meine Vref ja mindestens einen Unterschied 
von 2V haben oder nicht? Also Vref- muss mindestens 2V kleiner sein als 
Vref+ oder?

Autor: helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wandelst zwischen 2,5 Volt und 3,5 Volt, das heißt 0,8 Volt werden in 
1023 Schritten geteilt.

Nur wenn deine Messspannung unter oder über diesen Werten liegt, geht es 
nicht.

Legst du 1 Volt zum Messen an, wird das nix...
2,7 Volt werden wohl messbar sein.

Du darfst natürlich keine Wandlung an AD2 und 3 auslösen.
Gruß Helmut

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja das seltsame, mein PIC wandelt nur in Bereichen ausserhalb 
der 2,5-3,3V. Seltsam, habe bis heute den Fehler nicht gefunden....

Aber an sich habe ich mit der Schaltung ja noch ein Problem.... wenn ich 
dei Referenzspannungen nutzen möchte, dann darf die ja nicht aus einem 
Spannungsteiler (bspw. 10k in Reihe mit 10k) gewonnen werden, da die 
Spannungsquelle dann ja einen größeren Innenwiderstand als 250R hat 
oder?

So verstehe ich das Datenblatt. Wenn ich nun 2 Referenzspannungen 
anlegen muss um meinen Bereich zu wandeln, ist es in meinem Falle fast 
einfacher das Messsignal einfach über Impedanzwandler zu entkoppeln und 
eine Messbereichsspreizung auf 0-5V vorzunehmen. Dann kann ich Vdd und 
Vss als Referenz nutzen und spare mir die Beschaltung mit 
Referenzspannungsquellen oder sehe ichd as falsch?


LG Fred

Autor: Lehrmann Michael (ubimbo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Fred schrieb:
> ADCON0 ist doch korrekt oder nicht?

Wenn du AN0 verwendest ja. s. Datenblatt Seite 157ff

poste mal bitte den ganzen Code - ich seh nicht mal ob du die 
AD-Conversation richtig machst...

Was für einen Eingang du verwendest, Schaltplan und die gesamte Source.

Im Anhang mal ein Screenshot aus dem Simulator der entsprechenden 
Register.

Autor: Helmut (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe mal das Hex in Simu geladen. Deine AD-Wandler Konfiguration stimmt 
nicht.
Da wo T steht, da müßte eigentlich ein analoger Eingang möglich sein.
Der ist iM ein digitaler Eingang

Gruß Helmut
Das mit dem niedrigohmigen Eingang kann ich nicht bestätigen.

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.