Forum: Mikrocontroller und Digitale Elektronik PIC ADC Vref- Konfiguration


von andy c (Gast)


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

von Fernando Heitor (Gast)


Lesenswert?

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

Gruß
Fernando

von andy c (Gast)


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??

von Fernando Heitor (Gast)


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

von andy c (Gast)


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

von Fernando Heitor (Gast)


Lesenswert?

ja das meine ich damit.

von andy c (Gast)


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

von andy c (Gast)


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?

von Steffen (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.