Forum: Mikrocontroller und Digitale Elektronik PIC18 - AD-Wandler


von bastler (Gast)


Lesenswert?

Hallo,

ich habe einen PIC 18f und will damit eine analoge Spannung einlesen von 
0...10V welche ich davor auf 0...5V herunterteile.

Vref- ist GND und Vref+ ist +5V.

lege ich 0V an, dann lese ich einen ADC Wert von 0xFFF4
lege ich 5V an dann lese ich einen ADC Wert von 0x0770
bei 2,5V ist der ADC Wert 0x0338
bei 1V ist der ADC Wert 0x00CB

es ist ein 12Bit wandler, also maximal 4095, würde bei 5V analogspannung 
von 2048 machen, aber ich lese nur 1904 ein.

woran kann das liegen? mit einem multimeter messer ich die jeweilige 
spannung an dem eingang.

kann mit jemand helfen? danke

von Nico (nico123)


Lesenswert?

Sieht doch garnicht so schlecht aus!
Wie groß sind denn die Widerstände deines Spannungsteilers?

von Oliver J. (skriptkiddy)


Lesenswert?

bastler schrieb:
> lege ich 0V an, dann lese ich einen ADC Wert von 0xFFF4
Das klingt eher unwahrscheinlich.
Zeig mal den Code.


Gruß Oliver

von bastler (Gast)


Lesenswert?

der spannungsteiler sind zwei 10k ohm widerstände.

die Funktion sieht wie folgt aus:
word ADConvert(byte bChannel)
{
  byte i;
  word wResult;
  word wTemp;

  wResult = 0;
  for(i=0;i<8;i++)
  {
    ADCON0bits.GO_DONE = 1;            while(ADCON0bits.GO_DONE);
    wTemp = ADRESH;
    wTemp <<= 8;
    wTemp += ADRESL;
    wResult += wTemp;
  }
  wResult >>= 3;
  return(wResult);
}

von Stampede (Gast)


Lesenswert?

>der spannungsteiler sind zwei 10k ohm widerstände.
Zu viel! Das ergibt 5kOhm Quellimpedanz! Laut Datenblatt soll diese aber 
nicht größer als 2k5 sein.

von Kein Name (Gast)


Lesenswert?

5k erhöhen eigentlich nur die Acquisition Time. Lässt du genug Zeit 
zwischen Channel umschalten und dem Go?

von bastler (Gast)


Lesenswert?

aber zwischen spannungsteiler und mikrocontroller habe ich noch einen 
operationsverstärker als impedanzwandler, sein ausgangswiederstand ist 
ja sehr gering.

an die zeit hab ich auch schon gedacht, hab sie schon verändert aber 
keine verbesserung feststellen können

von Nico (nico123)


Lesenswert?

bastler schrieb:
> aber zwischen spannungsteiler und mikrocontroller habe ich noch einen
> operationsverstärker als impedanzwandler, sein ausgangswiederstand ist
> ja sehr gering.

Diese Information ist neu! :-)
Und die Spannung hinter dem OP stimmt genau?
Wie gut ist die Versorgungsspannung am µC gepuffert und geblockt, diese 
wird ja als Referenz benutzt?!

Welchen PIC18F benutzt Du denn?

von bastler (Gast)


Lesenswert?

sry das ich diese info verschwiegen habe.

die versorgung ist eigentlich an einigen kondensatoren angeschlossen. 
und ja die versorgung wird momentan als referenz benutz, will aber eine 
andere quelle als referenz noch mit einbauen. könnte diese der grund 
sein das die ad wandlung nicht stimmt?

ich benutz den pic18f65k22

von reflection (Gast)


Lesenswert?

Schau mal kurz ins Errata :o) Ich habe mir auch so einen "unbrauchbaren" 
Klotz ans Bein geschnallt. Bei meinem Derivat ists aber noch schlimmer, 
da können AD Kanäle mal einfach nicht funktionieren. Welche... ist bei 
jedem Chip anders, aber Microchip will partout das Silizium nicht 
anpassen...

Habs bei Dir nur kurz überflogen, aber stand was von bis zu 50LSB Offset 
Error ect.

Gruss

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.