Nejasnosti s PICem - konfiguracni bity
Bitovod
hw@prelude.cz
Sobota Prosinec 1 16:10:38 CET 2007
Diky, takhle polopaticky to opravdu pomohlo. Jadro pudla tkvelo v
nepochopeni, ze selekce toho, ktery pin bude AD, se dela jen v ANSEL, ze to
v ADCON0 je prirazeni prave toho aktivniho, ze to uz vlastne neni
konfigurace.
Jeste jednou diky.
Pavel Kutina
----- Original Message -----
From: "Jiri Bezstarosti" <jiri@bezstarosti.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Saturday, December 01, 2007 3:05 PM
Subject: Re: Nejasnosti s PICem - konfiguracni bity
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
>
>
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list