 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
| Poglej prejšnjo temo :: Poglej naslednjo temo |
| Avtor |
Sporočilo |
grecko453 Član

Pridružen-a: Pet 24 Sep 2010 13:02 Prispevkov: 86 Aktiv.: 0.45 Kraj: Ljubljana
|
Objavljeno: Pon Jan 24, 2011 6:34 pm Naslov sporočila: AC konverter in register ADCON1 |
|
|
Imam PIC18F2525 in spodaj je stran 225 iz datasheeta kjer je opis funkcije registra ADCON1.
Programsko bi rad nastavila pine AN8,9,10,11 kot analogni vhod za ADC konverzijo.
Glede na spodnjo sliko bi moral torej biti biti PCFG3:PCFG0 0111
Vendar ne razumem osnovnega koncepta pri tem registru.
Register ADCON1 je 7 bitni register od katerih bit 5 (VCFG1) predstavlja VREF- source, bit 4 (VCFG0) pa VREF+ source. Vrednosti obeh sta 1 ali 0.
Z biti 3,2,1,0 (PCFG3 do PCFG0) pa naj bi izbral ali so posamezni AN pini digitalni ali analogni.
Vendar kako to storiti programsko (v mikroPascalu/Basicu/Cju)?
ADCON1:=$??; //katero vrednost vpisati?
//kako nastaviti bite PCFG3 do PCFG0?
| Opis: |
|
| Velikost datoteke: |
62.52 KB |
| Pogledana: |
14 krat |

|
|
|
| Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 11.95 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Jan 25, 2011 9:58 am Naslov sporočila: |
|
|
Ti imaš problem, ki ni rešljiv. Če želiš nastaviti AN8,9,10,11 kot analogne, boš moral nastaviti vse od AN0 - AN11 na analogne, kar storiš z 0011. Kakšne reference boš uporabljal nisi povedal, torej ti vrednosti ne morem povedati. Če boš vzel VDD in VSS moraš vpisati binarno številko 0b00000011, ker je decimalno 3.
ADCON1:=3;
pri tvojem predlogu 0111 boš imel AN0 - AN7 analogne, naprej pa digitalne.
|
|
| Nazaj na vrh |
|
 |
grecko453 Član

Pridružen-a: Pet 24 Sep 2010 13:02 Prispevkov: 86 Aktiv.: 0.45 Kraj: Ljubljana
|
Objavljeno: Tor Jan 25, 2011 12:58 pm Naslov sporočila: |
|
|
| mucek4 je napisal/a: |
Ti imaš problem, ki ni rešljiv. Če želiš nastaviti AN8,9,10,11 kot analogne, boš moral nastaviti vse od AN0 - AN11 na analogne, kar storiš z 0011. Kakšne reference boš uporabljal nisi povedal, torej ti vrednosti ne morem povedati. Če boš vzel VDD in VSS moraš vpisati binarno številko 0b00000011, ker je decimalno 3.
ADCON1:=3;
pri tvojem predlogu 0111 boš imel AN0 - AN7 analogne, naprej pa digitalne. |
Vref- bo gnd, Vref+ pa Vcc, tako da bosta oba bita 0.
Glede AN pinov pa tudi sam vidim da je zadeva nerešljiva glede na tabelo. Problem je ker imam na portuA LCD in verjetno ne bo delal če so AN pini analogni?
Ali je potem edina rešitev v menjavi čipa, kakšen 16F886 recimo?
|
|
| Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 11.95 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Jan 25, 2011 1:24 pm Naslov sporočila: |
|
|
| Problem je delomna rešljiv. Ko rabiš AD nastaviš AD modul, prebereš vrednosti in potem izklopiš AD. Tako lahko pišeš na LCD. Ko sper rabiš AD, spre konfiguracija portov, ....
|
|
| Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 17.60
|
Objavljeno: Tor Jan 25, 2011 3:47 pm Naslov sporočila: |
|
|
A je tak problem v programu spremenit tistih par pinov za LCD?
_________________ Tule nisem več aktiven. |
|
| Nazaj na vrh |
|
 |
grecko453 Član

Pridružen-a: Pet 24 Sep 2010 13:02 Prispevkov: 86 Aktiv.: 0.45 Kraj: Ljubljana
|
Objavljeno: Tor Jan 25, 2011 4:04 pm Naslov sporočila: |
|
|
| gumby je napisal/a: |
A je tak problem v programu spremenit tistih par pinov za LCD?  |
ja je ker je shema za ploščico že narisana in ploščica že izdelana. Problem je da je končni program presegel 8K kar omogoča PIC16F886 za katerega je bila ploščica narejena.
|
|
| Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 11.95 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Jan 25, 2011 4:25 pm Naslov sporočila: |
|
|
| Če ploščica ni komplicirana jo narišeš še 1x. Če pa imaš težave pri izdelavi (jedkanju) pa me kontaktiraj.
|
|
| Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 17.60
|
Objavljeno: Tor Jan 25, 2011 4:52 pm Naslov sporočila: |
|
|
Hja... to pa bo malo problematično... 16F886 ima drugačen način določanja ANx pinov. Rešitev tega problema je več:
- najdeš kak PIC z več flasha, pin kompatibilen in z enakim sistemom določanja ANx (tule odpade večina 5V 18F serije)
- uporabiš 3.3V PIC, recimo 18F27J53
- narediš novo plato - ta verzija bo najbolj neboleča, če že nimaš narejenih miljon...
- optimiziraš kodo, da bo šla v 8k
_________________ Tule nisem več aktiven. |
|
| Nazaj na vrh |
|
 |
grecko453 Član

Pridružen-a: Pet 24 Sep 2010 13:02 Prispevkov: 86 Aktiv.: 0.45 Kraj: Ljubljana
|
Objavljeno: Tor Jan 25, 2011 9:18 pm Naslov sporočila: |
|
|
Sam znam izdelat ploščico s foto postopkom vendar le enostransko, ta pa je dvostranska in je bila izdelana v Tajvanu za 30$ in je profi izvedbe (edini problem ponovne izdelave je čakalna doba cca 1mesec).
Če prestavim LCD na drug port oziroma pine, mi to pri enostranski plati predstavlja kar nekaj težav, saj je težko speljati vse povezave na drugo stran kontrolerja, še posebej ker je na ploščici kar nekaj drugih komponent, poleg tega sem omejen z velikostjo ploščice 4x7cm.
Sicer sem na tisti ki sem jo sam zjedkal imel tudi nekaj povezav zgoraj (5), samo je bila to navadna trda žica, ki sem jo prilotal na spodnji strani.
Optimizacija bolj težko (o assemblerju nimam blage veze), kompiler pa mi pri delu z spremenljivkami tipa REAL - 32bit (kar nekaj jih uporabljam) pobere nenormalne količine fleša. Tako da zgenerirana in zlinkana koda zavzame nekaj čez 9k. Kjer se je dalo sem se 32bitnim spremenljivkam izognil (nisem uporabljal deljenja in množenja z decimalkami pač pa div in mod funkcije), povsod pa se ne da.
Tako da mogoče je res edina rešitev (v kolikor ne obstaja kak mlinček iz družine 16F z 16k spomina), da v samem programu vklapljam in izklapljam analogne vhode.
Čudi me le da ima recimo 16F886 vsak AN pin posebej nastavljiv kot digitalen I/O ali analogen vhod (registra ANSEL in ANSELH), medtem ko niti nisem razmišljal da 18Fxxx to ne bo imel.
|
|
| Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 232 dni
Powered by phpBB © 2001, 2005 phpBB Group
|