Ich arbeite gerade an einem Board, welches unter anderem ein PIC für diverse Aufgaben beheimatet. Da ich die Spannungen am ADC mit hoher genauigkeit auslesen muss (8-10 Bit genauigkeit) hab ich eine Referenzspannungsquelle auf dem Board installiert. Sobald ich diese aber aktiviere, liefert der ADC nur mehr 1023 als Ergebnis.

Die Referenzspannungsquelle selber liefert saubere 5V (gemessen), die Versorgungsspannung am PIC sind 5V (von StepDown +-0,1V)-0,3V von der Schutzdiode.

Hier die Schaltung an RA3:

Klicke auf die Grafik für eine größere Ansicht

Name:	referenzspannungsqelle_pic.jpg
Hits:	13
Größe:	30,9 KB
ID:	27889
Code
Allgemeine Initialisierung
https://github.com/pointhi/PointhiBo...w.X/src/init.c
Initialisierung des ADC's
https://github.com/pointhi/PointhiBo...fw.X/src/adc.c

Sobald ich diese Zeile aktiviere liefert der ADC nur mehr 1023 als ergebnis, wenn diese deaktiviert ist liefert sie korrekte werte (mit starken schwankungen ab dem 5,6 Bit):

Code:
ADCON1bits.VCFG0 = 1; // Vdd
Meine Ideen Bzgl. Fehlerursache:
  • Der Spannungsunterschied zwischen VDD und VREF+ ist etwa 0,3V (bin da an der maximalen Spezifikation, werde das ganze sowieso auf 3,3V-Referenz umbauen müssen).
  • Irgendwo ein Register vergessen oder falsch konfiguriert
  • zu großer eingangswiederstand für eine Referenzspannungsquelle?
  • Der PIC auf dem ich gerade entwickle musste kurzzeitig mal 8V oder so wegstecken als der StepDown durchgebrannt war. Er hat es aber nach meinen derzeitigen erkenntnissen unbeschaded überlebt (es funktioniert alles noch was vorher schon funktioniert hat)


mfg, pointhi