Nejasnosti s PICem - konfiguracni bity

Jiri Bezstarosti jiri@bezstarosti.cz
Sobota Prosinec 1 15:05:41 CET 2007


Presne tak to je, je to snadne. Takze mrkneme do PDF k PIC16F676.

ADC je rizeno tremi registry a to ADCON0, ADCON1 a ANSEL.

Registr ADCON0:
Bit 7 - ADFM: Nastavuje, zda se ulozi prevedena hodnota do registru 
ADRESH a ADRESL vlevo nebo vpravo.

Pokud vlevo (bit ADFM=0), pak vyssich 8 bitu po prevodu je ulozeno v 
ADRESH a nizsi 2 v ADRESL bitech 7 a 6. To vlevo je vhodne, pokud Vam 
staci 8b rozliseni, protoze pak si vezmete potrebnych 8 bitu v ADRESH 
registru, ktery je navic v bance 0, ve ktere budete v programu asi 
nejcasteji.

Pokud vpravo (bit ADFM=1), pak nizsich 8 bitu po prevodu je ulozeno  v 
ADRESL a nejvyssi 2 v ADRESH v bitech 0 a 1. Tohle je vyhodne, pokud 
potrebujete celou 10b hodnotu. Protoze nevyuzite bity se rovnou 
nastavuji do 0, muzete s obsahem ADRESH a ADRESL rovnou pracovat (bez 
maskovani tech nepouzitych bitu) jako se 16b cislem.

Bit 6 - VCFG: urcuje, zda pouzivate externi napetovou referenci pro AD 
prevodnik (VCFG=1) a nebo napajeci napeti PIC (VCFG=0).

Bit 5 - neimplementovan

Bit 4 az 2 - CHS2 az CHS0: je volba kanalu, ze ktereho budeme do AD 
prevodniku privadet napeti. 000 je AN0, 111 je AN7. Zkratka cislo 
odpovidajici hodnote v tech trech bitech rika, ze ktereho vstupu se do 
AD prevodniku bere napeti.

Bit 1 - GO/DONE: nahozenim do 1 zapocne AD prevod a az se sam tento bit 
shodi do 0, prevod skoncil. V nejjednodussim pripade zvolite v CHSx 
bitech ktery kanal chcete prevadet, chvili pockate (to je dulezite) a 
pak nahozenim GO bitu spustite prevod. Az ten bit spadne do 0, je 
prevedeno v ADRESH a ADRESL, takze muzete jen udelat smycku, ktera ceka 
na shozeni bitu GO.

Bit 0 - ADON: si nezapomente nahodit do 1, je to zapinani a vypinani ADC.


Registr ADCON1:
Obsahuje pouze 3 bity a to ADCS2 az ADCS0. Ty bity urcuji rychlost AD 
prevodniku (nebo spise cim se ma delit jeho taktovani). Kdyz se podivate 
do tabulky v PDF, treba pro 4MHz je vhodne nastavit 8Tosc nebo 16Tosc a 
nebo RC oscilator (ten je uvnitr chipu a je urcen k taktovani ADC). 
Takze pro 4MHz nastavime ADCS bity na 001, zvolime 8Tosc a cela hodnota 
v ADCON1 je b'00010000'.

Registr ANSEL:
Obsahuje pro kazdy AN0 az AN7 prislusny bit. Bit 7 v registru ANSEL 
patri AN7 az bit 0 k AN0. Bit v 1 rika, ze ANx bude vstup do ADC, v 0 ze 
jde o digitalni IO na prislusnem pinu. Lze tedy zvolit, ktere vyvody 
pouzijeme pro ADC a ktere pro digitalni IO.

Pokud se pouziva externi napetova reference, pripojuje se na AN1 (RA1) .

Co se tyce elektrickych specifikaci, tedy jaky cas musite dat po 
prepnuti kanalu prevodniku pred prevodem, jake hodnoty napeti muzete 
pouzit atd., to uz si najdete v PDF sam, neni to nic tezkeho.

Pozor na jine typy PIC, ADC mohou byt usporadany jinak. Napriklad 
registr ANSEL neni samozrejmosti a jine typy PIC maji jen nekolik 
moznosti nastaveni, co ma byt vstup do AD a co digitalni IO, pricemz 
zdaleka ne vsechny moznosti jsou mozne.

Verim, ze jsem to popsal pochopitelne a pokud jsem se nekde preklepl, 
mohlo se stat, pisu to fakt v rychlosti v pauze mezi praci.

--
Jiri Bezstarosti

>Nakopnete mne nekdo? Predpokladam, ze to bude neco desne jednoducheho az 
>debilniho, jen jsem to nekde prehlidnul nebo nepochopil.
>
>Diky.
>
>Pavel Kutina
>  
>




Další informace o konferenci Hw-list