Försöker använda AN6 st13 på en 16F88 som analog ingång . Med multimeter mäter jag stabilt 1.72 V på denna pinne. Programmet nedan skriver dock ut värden mellan 0 och 170 lite slumpmässigt. Teoretiskt borde det ju bli cirka 360. Om jag kopplar 0 V till AN6 skrivs dock resultat värdet 0 ut konsekvent. AN6 är kopplad till en icke inverterande op koppling med motstånd 1k och 6.1k så ADC borde se en impedans mindre än 10k. Rutinen för att läsa ADC har använts i andra sammanhang och har då fungerat som den ska. Har gått igenom min kod och hittar ingen miss vid konfigureringen av ADCn. Så jag uppleveratt jag fastnat här.
Matning från PICkit 2
Har kollat att stift som ska jordas är det. Också den spänning på 1.72 V jag får är ungefär vad jag teoretiskt förväntar mig från OP kopplingen.
Har tyvärr inget oscilloskop.
Bild visar inte offset trimpot och jordning samt Vcc
[img]
scematic.JPG
[/img]
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Det första du ska göra om du vill felsöka är att ersätta hela kopplingen
med en vanlig 5-10 kohm pot. Försök aldrig att felsöka flera olika
varabler/parametrar samtidigt. Se *först* till att få själva ADC'n
att fungera och fundera sedan på opamp kopplingen. Jag skulle
även göra detsamma med koden. Se först till att det fungerar
med en "rak" kod med alla register hårdkodade (inga funktioner,
shift av parametrar o.s.v).
Jag ersatte kopplingen med en vanlig spänningsdelare och resultatet blev precis det teoretiskt förväntade stabila adc värdet utan dessa variationer. OP kopplingen kopplades till en annan analog ingång AN4 och uppvisade där samma onormala beteende.
Så felet ligger uppenbart i op kopplingens hårdvara. Inspänningen till + ingången uppmätes till 218 mV +/- någon mV. Detta är förväntat från LM35 temperatur sensorn vid rumstemperatur. Utgången uppmätes till 2.25 V +/- någon tiondels volt. Uppmätt med multimeter.
Känner Du till att CA3130 saknar intern frekvenskompensering? Du MÅSTE ha en kondensator mellan pinne 1 och 8 på denna för att den skall vara stabil.
Testa med t.ex. 56pF. Alternativt byt till CA3160, som är samma men med inbyggd kompensering och är stablil ända ned till 1:1 förstärkning. Då Din applikation inte behöver maxxad bandbredd finns det ingen anlening att välja just CA3130. Du måste även ha avkoppling på matningsspänningen till såväl MCU som OP.
Du måste också mäta med oscilloskop för att veta VAD Du mäter. En multimeter säger ingenting om vad det är som mäts. Stabil DC eller självsvängande trasig kretslösning, Du vet inte vilket. Ett primitivt sätt att testa med en multimeter är att se om utspänningen från OP'n ändrar sig när Du håller handen i närheten eller berör något i kopplingen med en isolerad skruvmejsel. I så fall kan Du vara ganska säker på att ha byggt en oscillator istället för en förstärkare.