www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

AC konverter in register ADCON1

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
grecko453
Član
Član



Pridružen-a: Pet 24 Sep 2010 13:02
Prispevkov: 86
Aktiv.: 0.45
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 24, 2011 6:34 pm    Naslov sporočila:  AC konverter in register ADCON1 Odgovori s citatom

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?



Untitled.png
 Opis:
 Velikost datoteke:  62.52 KB
 Pogledana:  14 krat

Untitled.png


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 11.95
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Jan 25, 2011 9:58 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
grecko453
Član
Član



Pridružen-a: Pet 24 Sep 2010 13:02
Prispevkov: 86
Aktiv.: 0.45
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jan 25, 2011 12:58 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 11.95
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Jan 25, 2011 1:24 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Tor Jan 25, 2011 3:47 pm    Naslov sporočila:   Odgovori s citatom

A je tak problem v programu spremenit tistih par pinov za LCD? Rolling Eyes
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
grecko453
Član
Član



Pridružen-a: Pet 24 Sep 2010 13:02
Prispevkov: 86
Aktiv.: 0.45
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jan 25, 2011 4:04 pm    Naslov sporočila:   Odgovori s citatom

gumby je napisal/a:
A je tak problem v programu spremenit tistih par pinov za LCD? Rolling Eyes


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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 11.95
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Jan 25, 2011 4:25 pm    Naslov sporočila:   Odgovori s citatom

Če ploščica ni komplicirana jo narišeš še 1x. Če pa imaš težave pri izdelavi (jedkanju) pa me kontaktiraj.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Tor Jan 25, 2011 4:52 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
grecko453
Član
Član



Pridružen-a: Pet 24 Sep 2010 13:02
Prispevkov: 86
Aktiv.: 0.45
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jan 25, 2011 9:18 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group