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

Pridružen-a: Sob 11 Apr 2009 9:51 Prispevkov: 83 Aktiv.: 0.42 Kraj: Ljubljana
|
Objavljeno: Ned Apr 04, 2010 1:09 pm Naslov sporočila: PIC16F1933 in njegov LCD driver |
|
|
Lep pozdrav!
Že 3 dni se ukvarjam z omenjenim PICem (19F1933) in ga poizkušam usposobiti za upravljanje LCD prikazovalnika (LCD-S2X1C50TR). Slednji mora biti krmiljen v static načinu. Moj problem je prikazan na priloženih slikah. Na izhodnem skupnem pinu (COM1 v mojem primeru) dobim lep pravokotni signal z amplitudo VDD. Na izhodnem pinu, ki bo krmilil segment z ugasnjenim pixlom je signal enak (torej napetost med segmentom in COM1 bo vedno 0V, kot mora biti). Problem pa je pri pinih, ki bodo krmilili prižgane segmente. Tam namreč ne dobim zgolj invertiranega signala COM1 ampak še oslabljenega. To pa pomeni, da bo na teh segmentih na LCDju vedno prisotna neka DC komponenta, kar pa bo uničevalo prikazovalnik.
Kodo za inicializacijo LCDja, z datasheetom v roki, pregledujem že zadnje 3 dni vendar ne najdem napake. Če stvar pravilno razumem, bi moral namreč na pinih, ki bodo krmilili prižgane pixle dobiti le invertiran COM1 signal.
Prosim vse, še posebej tiste ,ki ste že kdaj uporabljali tale PIC, če bi lahko na hitro preleteli kodo in me opozorili na napako. Veščim uporabnikom bo najbrž to vzelo bolj malo časa. Prilagam tudi kodo programa.
Za odgovore pa že vnaprej hvala!
LP!
EDIT: Poizkusil sem še z drugim (enakim) čipom in tokrat je napetost na pinih, ki krmilijo prižgan pixel 2.2Vpp. Pri prvem čipu je bilo 1.44Vpp. Sumljivo
Opis: |
|
Velikost datoteke: |
23.96 KB |
Pogledana: |
1 krat |

|
Opis: |
|
Velikost datoteke: |
24.59 KB |
Pogledana: |
2 krat |

|
Opis: |
|
 Download |
Ime datoteke: |
LCD.txt |
Velikost datoteke: |
1.86 KB |
Downloadano: |
9 krat |
|
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Ned Apr 04, 2010 11:57 pm Naslov sporočila: |
|
|
Preveri predvsem nastavitve:
Citiram: |
REGISTER 26-3:LCDREF: LCD REFERENCE VOLTAGE CONTROL REGISTER
R/W-0/0R/W-0/0R/W-0/0U-0R/W-0/0R/W-0/0R/W-0/0U-0
LCDIRELCDIRSLCDIRI —VLCD3PEVLCD2PEVLCD1PE —
bit 7 bit 0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
u = Bit is unchangedx = Bit is unknown-n/n = Value at POR and BOR/Value at all other Resets
‘1’ = Bit is set‘0’ = Bit is clearedC = Only clearable bit
bit 7 LCDIRE: LCD Internal Reference Enable bit
1 =Internal LCD Reference is enabled and connected to the Internal Contrast Control circuit
0 =Internal LCD Reference is disabled
bit 6 LCDIRS: LCD Internal Reference Source bit
If LCDIRE = 1:
0 =Internal LCD Contrast Control is powered by VDD
1 =Internal LCD Contrast Control is powered by a 3.072V output of the FVR.
If LCDIRE= 0:
Internal LCD Contrast Control is unconnected. LCD bandgap buffer is disabled.
bit 5 LCDIRI: LCD Internal Reference Ladder Idle Enable bit
Allows the Internal FVR buffer to shut down when the LCD Reference Ladder is in power mode ‘B’
1 =When the LCD Reference Ladder is in power mode ‘B’, the LCD Internal FVR buffer is disabled.
0 =The LCD Internal FVR Buffer ignores the LCD Reference Ladder Power mode.
bit 4 Unimplemented: Read as ‘0’
bit 3 VLCD3PE: VLCD3 Pin Enable bit
1 =The VLCD3 pin is connected to the internal bias voltage LCDBIAS3(1)
0 =The VLCD3 pin is not connected
bit 2 VLCD2PE: VLCD2 Pin Enable bit
1 =The VLCD2 pin is connected to the internal bias voltage LCDBIAS2(1)
0 =The VLCD2 pin is not connected
bit 1 VLCD1PE: VLCD1 Pin Enable bit
1 =The VLCD1 pin is connected to the internal bias voltage LCDBIAS1(1)
0 =The VLCD1 pin is not connected
bit 0 Unimplemented: Read as ‘0’
Note1: Normal pin controls of TRISx and ANSELx are unaffected. |
|
|
Nazaj na vrh |
|
 |
Neper Član

Pridružen-a: Sob 11 Apr 2009 9:51 Prispevkov: 83 Aktiv.: 0.42 Kraj: Ljubljana
|
Objavljeno: Pon Apr 05, 2010 10:09 am Naslov sporočila: |
|
|
LCDIRE imam postavljen, saj če se igram z kontrastom (spreminjam LCDCST<2:0>), se nivo signala, ki naj bi krmilil prižgane pixle, spreminja. Poleg tega, če bi bil notranji delilnik izklopljen (torej če bi imel LCDIRE na 0), ne bi na izhodu (tako COM kot SEGx) dobil nobenega signala. Problem je, da kljub spreminjanju kontrasta COM signal ostaja enak. Če zadevo prav razumem, bi se morala z spreminjanjem kontrasta spreminjati tudi amplituda COM signala. Signali za krmiljenje ugasnjenih pixlov bi morali biti enaki COM signalu, signali za krmiljenje prižganih pa zgolj invertiran COM (oz. za 180 stopinj zamaknjen).
V mojem primeru pa se zdi, da je COM signal vedo vezan na napajanje (torej zaobide sprmenljiv upor, ki nastavlja kontrast). Kot da nekje manjka nastavitev, da naj se COM signal krmili iz vrha notranjega delilnika (reference ladder).
LCDIRS pa imam na 0 (torej notranji delilnik napaja VDD), ker čip napajam z 3.3V, kar je pribljižno enako kot bi dobil iz FVR bufferja.
Pa še tole, samo da preverim: Signal, ki ga dobim je definitivno napačen, je res? Na LCD pixlih, ki bodo prižgani bo vedno neka DC napetost, kar je narobe, je tako?
Tole so sicer bolj blodnje obupanega moža vendar ali je možno, da ima modul napako? Če sem prav zasledil, je PIC16F1933 na tržišču "šele" od junija lansko leto. Na internetu pa tudi ni o njem kaj dosti napisanega. Projekta z LCD modulom še nisem zasledil.
Ali pa si napačno predstavljam kakšen mora biti izhodni signal? Čeprav v poglavju 21.9 - LCD Waveform Generation na str. 258 v datasheetu, so signali narisani in tisti za prižgan pixel (SEG0-v datasheetu) niso takšni kot sem jih pripel zgoraj.
|
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Pon Apr 05, 2010 5:06 pm Naslov sporočila: |
|
|
Tule ima microchip napisano veliko o LCD-jih ... mogoče kaj pomaga .... KLIK
Našel sem pa še power meter aplikacijo ki uporablja PIC16F917, ki ima tudi LCD modul. V tem AN-ju je tudi source, če ti kaj pomaga. KLIK
|
|
Nazaj na vrh |
|
 |
Neper Član

Pridružen-a: Sob 11 Apr 2009 9:51 Prispevkov: 83 Aktiv.: 0.42 Kraj: Ljubljana
|
Objavljeno: Tor Apr 06, 2010 6:31 pm Naslov sporočila: |
|
|
Bungee, najlepša hvala za tale zadnji link. PIC je sicer drug (največja razlika glede LCD modula je, da nima notranjega uporovnega delilnika, ampak ga je potrebno dodati externo) vendar kolikor toliko podoben.
Pomembna razlika med mojim programom in tistim iz zgornjega linka je inicializacija AD pinov. Sicer mislim, da bi naj bili v originalu analogni pini izklopljeni, vendar pa velja poizkusiti. Pin za skupni signal (COM1) v mojem primeru ima namreč lahko tudi funkcijo analognega vhoda. Morda ga to kaj moti.
Druga zadeva, ki bi jo bilo vredno preizkusiti pa je izklop notranjih pull-up uporov na portu B, kjer se nahaja tudi COM0 pin.
Malo sicer dvomim v uspeh omenjenih poizkusov, saj bi to verjetno pisalo v datasheetu v poglavju o uporabi LCD modula. Vendar poizkusiti ni greh.
Prizkusil in poročal bom čez vikend, ko bo čas.
Če pa ima kdo še kakšno idejo pa jo bom seveda zelo vesel.
LP
|
|
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: 496 dni
Powered by phpBB © 2001, 2005 phpBB Group
|