Er der nogen her der har haft problemer med PIC18F4520s ADC funktion? ADCen fungerer forsåvidt fint nok men med kortsluttet indgang indeholder ADCen ikke 00 men 38 (decimalt) præcis som om der er en off-set fejl. Mit print har fungeret med en 16F877. P.g.a. manglende hukommelse opgraderede jeg til 18F. Koden er naturligvis ændret til 18F. Jeg har også skrabet programmet så kun ADC og LCDrutiner er tilbage men stadig med off-set fejl?
PIC18F og ADC
Nov 28, 2007
8 Replies
-når Du ikke lægger indgangen til stel, måler den så ellers noget "fornuftigt", eller viser den altid samme værdi ?
-hvilken reference bruger Du ?
-er referencen afkoblet godt, eller er der støjpulser på den, når du konverterer?
Bo //
ADCen virker, lige bortset fra at den ikke kan gå helt på 0. (forsøgsvis testet med batteri og 1Kohm potmeter med glideren koblet til ADCinput, potmeteret kan varieres fra 0-5V) det er denne restvisning der undrer mig? Jeg ved ikke hvilken reference du mener, alt er jo indbygget i Pic'en?
Enhver AD converter har en reference spænding, uanset hvor den kommer fra. Enten tilfører Du den udefra, eller osse bruger du forsyningsspændingen. Sidstvævnte er ikke hverken præcis eller temperaturstabil (med mindre du har gjort noget specielt for det)
På PIC'en kan du programmere hvorfra referencen kommer (p.224). Hvis du bruger forsyningsspændingen som reference, skal du sørge for at den er "ren" for støj.
-hvordan ser din filtrering af forsyningen ud?
-hvordan er dit printudlæg, m.h.t. stel omkring kredsen?
Husk på, at hvis du forsyner den fra 3.3V, og du har 10 bit, svarer et count i ADC'en til ca 3.2mV, og 38 counts er ca 0.12V. Har du ikke filtreret forsyningen grundigt, og driver du noget med andre output ben på kredsen er 100mV støj på gnd/forsyning ikke usandsynligt.
Bo //
Lige for at afslutte denne sag: Efter mange forsøg viste det sig at hvis jeg trissede PortA.3, An3 som output så mindskedes count på An0 til ca. 4 med kortsluttet indgang????. Jeg valgte så at undlade at bruge PortA.3 som inport, trissede den til output og brugte istedet PortA.4 som input. Der er åbenbart et eller andet samspil mellem min compiler (oshonsofts Picsimulator) ADcon0,ADcon1 opsætning som er vanskelig at gennemskue. I starten havde jeg trisset de 5 første Aporte som input og resten som output, det resulterede i at PortA.4 lå konstant på 5volt (virkede som output) da jeg trissede alle Aporte som input, pånær A.3 virkede min opstilling. Lidt utilfredsstillende at der måtte alle disse forsøg til!
Hej. Prøv lige at kontrollere i sw om du ikke bruger ekstern ref, ra2 og ra3 er refs. Hvis de bliver brugt som refs i sw, og der er noget tilfældigt på benene så måles der noget udefineret.
-- Hilsen Michael.
"Michael Olsen" skrev i en meddelelse news:47516cf1$0$90262$ snipped-for-privacy@news.sunsite.dk...
Det har du ret i men i så fald skal det være et compiler problem da der ikke er valgt ekstern ref. i sourcekoden.
pyh, det var en længere omgang. Måtte Du ned i assemblerkoden for at finde fejlen?
-men godt at Du slap forbi problemerne. Mit udgangspunkt var fra analog siden, idet jeg ikke programmerer ret meget, men derimod laver hardware, både digitalt og analogt
Bo //
Jeg er egentlig også hardware mand, og alle de hardware problemer jeg kunne forestille mig havde jeg testet for. Det jeg synes er lidt utilfredsstillende er at jeg egentlig ikke har fundet problemet men snarere fundet en 'work around'!
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required