Ich hab zwar mit PIC18 noch nichts zu tun gehabt, den ADC von PIC12/16 oder PIC24 hab ich mehrfach benutzt. Da die aus der gleichen Chipschmiede kommen, sollten sie vergleichbar sein.
Um 8 oder 10Bit zu bekommen, braucht man keine extra Spannungsreferenz. Die Auflösung von 10-Bit ist 1 auf Tausend, eine Referenz, deren Qualität in "Parts Per Million" spezifiziert ist, ist da Overkill. Wenn der ADC 16 Bit oder mehr hätte, wäre das anders.
Wenn der Aufbau der Schaltung ok ist, sollte der ADC-Wert höchstens um ein, zwei Werte schwanken. Das ist zumindestens meine Erfahrung, egal was ich als Referenz benutzt habe (eine eingebaute oder Vdd oder AVdd je nach Chip). Ich hab mir das in der SW auch einfacher gemacht: den internen MUX auf den gewünschten Kanal gestellt, einige µs gewartet, den ADC gestartet und wenn er fertig war das Ergebniss verwendet. Manche PICs haben auch einen Auto-Modus, da wartet er selbsständig die Sample-Time ab und startet dann den ADC alleine. Die Ergebnisse sind gut brauchbar.
Du wandelst zweimal und wirfst einen Wert weg, das ist IMHO unnötig wenn die Sample-Zeit groß genug ist. Und wenn die Signalquelle eine Impedanz von wenigen Kiloohm hat, ist das in wenigen µs erledigt. Die ADC-Clock ist auch ein Punkt, wenn man da unsicher ist, kann man den internen Oszillator benutzen. den die PICs typischerweise haben.
My 2 cents
MfG Klebwax
Lesezeichen