Hallo, versuche mit einem 16F877A PIC Analogspannungen zu messen. Habe aber das Porblem, dass die Werte, welche vom eingebauten ADWandler(10bit) geliefert werden immer zu hoch sind. Bei Ref=5V bekomme i ca. bei 4,7V 1023 zurück, bei Ref=2,5V (extern festgelegt) bekomme ich 1023 schon bei 2,4V zurück. Wie kann das sein? Ich dachte zuerst dass die interne Referenz nicht ok ist, dann hab ich 2,5V von extern angelegt und ich habe das selbe Problem. Auffallend war, dass der Fehler immer kleiner wird, bis er bei 0,05V praktisch nicht mehr erkennbar wird? Also alle Spannungen sind direkt am PIC gemessen worden, der Fehler muss doch bei der Wandlung entstehen! Für was hab ich aber dann 10bit? Danke für Hilfe mfg C.Mentin
Danke schon mal für die schnellen Antworten. Vorab kann ich schon mal sagen, dass das Voltmeter sicherlich keinen Defekt hat. Wie kann ich die Samplingzeit beeinflussen? Welche Kapazitäten soll ich überprüfen? Ich nehme an du spielst auf nen ungewollten TP an? Aber wenn ich die Gleichspannung direkt am AD-Pin messe, ist die dann nicht gleich der Spannung welche intern gewandelt wird, oder gibts intern Kondensatoren? Grüße Christian
Also du kannst folgendes überprüfen. 1. Standardmässig nimmt der uc die Versorgungsspannung als Referenzspannung an - nur wenn du es ihm expliziet sagst nimmt er AN3 2. Masse kannst du auch Vss nehmen oder ober AN2 3. Normalerweise legt der Ad-Wandler intern einen Schalter an eine Kapazität C_Hold an und lädt diese auf nun gibts es folgende Probleme: a) die Zeit zum Aufladen ist zu kurz und das C wird nicht komplett auf die aussen anliegende Spannung aufgeladen. Die Zeit kannst du über ADCON0 und ADCON1 einstellen b) deine Spannungsquelle die du anlegst ist zu hochohmig (R > 2,5kOhm) und es passiert das selbe --> der Kondensator lädt sich nicht auf --> Lösung: Innenwiderstand der Quelle klein machen oder aber am AD-Eingang nochmal mit einem C abstützen --> somit kommt der Strom für die Umladung aus dem Kondensator Also stelle die Wandelzeit erstmal auf fosc/32 über adcon0 und Adcon1 starte dann die Ad-Wandlung, warte etwas, und polle dann das GO Done Bit bis es Null ist. Dann kannst du den Wert abholen. Grübel: Zumal es keinen Sinn macht das der Wert den du wandelst zu gross ist. Ich würd er denken er müsste zu klein sein. Das Verhalten was du feststellst hatte ich schon mal die Versorgungsspannung meines uC 4,8 Volt war ich aber 5V am AD-Kanal angelegt hatte. Dann hast du logischerweise bei 4,8V schon ne 1023 im wandelregister. Ich hoffe es hilft Dir. Beste Grüsse Andreas Krechla
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.