www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC ADC Vref- Konfiguration


Autor: andy c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI...

Ich arbeite mit einem PIC16F876.
Leider funktioniert die Ansteuerung des ADC nicht ganz.

Ich möchte das bei Vref- = 0.484V und Vref+ = 2.5 jeweils die Bitmuster 
0x000 und 0x3FF einstellen.

Der ADC wandelt schon etwas. Jedoch beachtet er Vref- nicht.
D.h. bei 0V haben wir 0x000 und nicht bei 0.484V!

Hat jemand Erfahrungen mit diesem PIC gemacht?

Greets

Autor: Fernando Heitor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast du ADCON1 eingestellt?
Und ADCON0?
An welchem Pin ist Vref+, Vref- und ADC Input?

Gruß
Fernando

Autor: andy c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo..

ich hab folgendes bitmuster: in adcon1=> 1000 1111
                             in adcon0=> 1100 0001

Vref+ => PIN 5 (RA3)
Vref- => PIN 4 (RA2)
analog In => PIN 2 (AN0)

sollte meiner meinung nach eigentlich stimmen was meinst du??

Autor: Fernando Heitor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Konfigurationen stimmen.
Ich hätte vielleicht noch vermutet das du die minimale Wandlungszeit 
nicht einhälst, aber du bekommst ja digitale Werte.
Vielleicht liegt es an der Schaltung ?
An der Initialisierung des A/D-Wandlers liegt es nicht, vielleicht bei 
der Abfrage der digitalen Werte?
Versuch mal auf den 8-Bit Modus zu stellen.

Gruß
Fernando

Autor: andy c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erts mal für deine vorschläge..

an der schaltung sollte es eigentlich nicht liegen..

aber was meinst du genau mit auf 8bit modus schalten? meinst du 
vielleicht einfach im adcon1 das adfm-bit auf null schalten damit sich 
gleich die 8MSB in einem register (adresh) befinden?

oder gibt es noch eine andere möglichkeit?

andy

Autor: Fernando Heitor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das meine ich damit.

Autor: andy c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also nach einigen Tests usw. habe ich rausgefunden, dass die AD Wandlung 
einwandfrei funktioniert!

Das Problem ist nur, dass sie im Bereich von 0V-5V geht!!

D.h. 0V = 0x000 und 5V = 0x3FF !!
Obwohl wir Vref+ bei 2,5V haben und Vref- bei 0,484V !!

Hat jemand eine Erklärung?

Greets

Autor: andy c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay.. bin selber nochmals weiter gekommen!

Durch Simulieren im MPLAB habe ich rausgefunden, dass ADCON1 nie 
geändert wird!!
Deshalb kann ich den ADC auch nicht so konfigurieren, dass er Vref+ und 
Vref- miteinbezieht.

der Befehl

BSF  ADCON0, 0
ist gleich wie
BSF  ADCON1, 0

!!! Keine Ahnung wieso er beides mal in ADCON0 speichert..

hat hier jemand eine Idee?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Typische PIC-Falle

ADCON0 liegt in Bank0 und ADCON1 in Bank1.

Dein Programm von gestern befindet sich bei der Initialisierung aber in 
Bank0.

MfG
Steffen

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.