PIC12F1822, problem med en utav de analoga kanalerna

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av Klas-Kenny »

Satt och grejade med en PIC12F1822 idag, och skulle ha fart på ADC'n.

Inget konstigt i det, ställde RA4 som analog ingång, ställde ADC'n till Ch3 och startade den osv.

Försökte läsa analogt värde, men icke! :humm:
För det mesta (möjligen alltid, när jag inte förstört något tillfälligt) fick jag ut värdet 1, vid enstaka tillfällen kunde en tvåa dyka upp (tror jag, kan ha varit tillfälliga kod-buggar vid diverse test).

Testade fram och tillbaka i säkert ett par timmar, grävde datablad, konsulterade gammal kod osv, allt verkade rätt, men inget fungerade.

Till slut bytte jag till RA1, ställde om ADC'n till Ch1, och allt fungerade med en gång.
Testade byta tillbaka och testade diverse olika saker, utan skillnad. Inte ett liv på RA4/AN3, och inga problem alls på RA1/AN1.

Har inte specifik kod tillgänglig just nu, men det var inget särskilt.
Körde en klockfrekvens på 32MHz, och ADC-registerna ställdes väl som ADCON0 = 0b00001101 (och bit 1 ändrades naturligtvis för att starta läsning vid lämpligt tillfälle) och ADCON1 = 0b11100000, TRISA.RA4 = 1 och ANSELA = 0xff (Och samtliga har ändrats fram och tillbaka på olika sätt under försöken).

Övriga periferienheter som användes var ECCP(PWM som single output på P1A) och Timer1.

Så, är det någon här som använt AN3 på en 12F1822?
Någon som kan hitta något i databladet, som gör just den kanalen speciell på något sätt?
gunnerfeldt
Inlägg: 87
Blev medlem: 29 november 2010, 00:32:55

PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av gunnerfeldt »

Pröva stänga av USART och MSSP (och/eller det som kan vara kopplat till RA4). Kanske ett långskott men jag har något minne av att någon av periferimodulerna kan vara på vid reset.
H.O
Inlägg: 5917
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av H.O »

MSSP, EUSART och komparatorn delar pinne med AN3 (RA4) men samtliga är avstängda by default så om du inte specifikt aktiverar de i din kod borde de inte ställa några problem.
Hur har du oscillatorn inställd? RA4 är ju också CLKOUT så beroende på hur dina CONFIG ser ut är det ju möjligt att du skickar ut FOcs/4 där.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av Icecap »

Man ska aldrig anta att "per default" faktisk är korrekt! Det finns gott om exempel här i forumet på att någon har förlitat sig på att saker står "i default" - men när programmet sedan gör rätt fungerar skiten.
XorXaX
Inlägg: 409
Blev medlem: 27 maj 2004, 09:44:16

Re: PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av XorXaX »

Jag skulle gissa att komparatorn är boven i dramat, det brukar det vara på de PICar jag användt åtminstånne. Jag har tagit för vana att göra som icecap föreslår; anta inget! Det första jag gör är att ställa in komparatorn så att resten av funktionerna kan fungera som tänkt, aovsett resetvärden.
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av Klas-Kenny »

USART och MSSP var ej påslaget av mig, men det kan ju vara som Icecap säger att de är påslagna trots att jag inte gjort det.

Oscillatorn var inställd (I CONFIG) på INTOSC, CLKOUT disabled samt PLL Enabled.



Efter att ha skrivit en stund på ett svar här, grävt mer i databladet och sådär slog det mig att jag har för fasen haft exakt samma problem förut (förmodligen på annan modell av µC men), när jag försökt använda det ben som USART har som Tx till ingång, trots att jag inte startat USART..

Men, jag testade att ändra i APFCON så att inga av de valbara funktionerna där låg på just RA4, utan resultat, så det *borde* väl ändå inte vara det..
Nåja, får väl skriva ett nytt väldigt enkelt program idag som inte gör någonting annat än att läsa analogvärdet och typ tända en lysdiod, så får vi se.

Skrev för övrigt i MicroC igår (det är inte riktigt mitt projekt, hjälpte en kursare), ska nog testa med den vanliga XC8 istället.


Och nu kom ett inlägg till, känns lustigt att det skulle vara komparatorn eftersom att RA1 är precis motsvarande ingång för den andra komparator-kanalen..
Men, kan ju testa att stänga av den. Har aldrig använt komparatorn i en PIC, kollade snabbt och det borde väl bara vara till att sätta CM0CON0 och CM1CON0 till 0?


Edit: Komparatorn kan kanske vara en god idé ändå. Hade faktiskt problem med att använda RA2 som utgång, och den är ju komparator-utgång för samma kanal. Hade hunnit glömma bort det då jag bytte den utgången ganska snabbt och tänkte inte mer på det sen.

Edit igen: Var visst RA5 som hade strulat som utgång, inte RA2.
Senast redigerad av Klas-Kenny 6 februari 2015, 12:19:03, redigerad totalt 2 gånger.
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC12F1822, problem med en utav de analoga kanalerna

Inlägg av Klas-Kenny »

Kollade vidare på det nu och fann problemet!


Visade sig vara Timer1 som var startad (medvetet), och hade lyckats få T1OSCEN satt till 1, dvs "Dedicated Timer1 oscillator circuit enabled".
Så den ville ha en oscillator mellan RA5 och RA4, vilket var varför båda dessa I/O var problematiska, nu fungerar båda utan problem. :)
Skriv svar