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

Pridružen-a: Tor 09 Jan 2007 19:14 Prispevkov: 21 Aktiv.: 0.09 Kraj: Slov. Konjice
|
Objavljeno: Sob Apr 14, 2007 2:19 pm Naslov sporočila: LCD CMC216-02 + driver KSB0070B |
|
|
Ali je mogoče kdo usposobil lcd 2x16 CMC216-02 (kupljen v HTE)? Meni ga ne uspe inicializirat!
Imam pic 16f877a (4MHz), lcd je prikjučen v 4 bitnem načinu, inicializiral sem ga kot je navedeno v datasheet-u (program se nahaja v priponki), poskusil sem tudi z daljšo zakasnitvijo ob vklopu napajanja PA NIČ!!!
Na napajanje je lcd priključen kot je prikazano na sliki, samo da sem namesto potenciometra uporabil upora 1k in 100 da sem dobil na Vo pinu (pin za napajanje driverja) napetost okrog 4.5V, kot je navedeno v datasheet-u. Napajalna nepetost je 5V.
Mogoče kdo ve kako se preizkusi lcd? Na enem tujem forumu sem enkrat prebral da daš RS in R/W pin na GND in bi se morali vsi kvadratki vklopiti???
Opis: |
Program za inicializacijo |
|
 Download |
Ime datoteke: |
lcd.txt |
Velikost datoteke: |
7.09 KB |
Downloadano: |
24 krat |
|
|
Nazaj na vrh |
|
 |
mujo Član


Pridružen-a: Ned 02 Jan 2005 19:24 Prispevkov: 746 Aktiv.: 3.15 Kraj: MB
|
Objavljeno: Sob Apr 14, 2007 6:49 pm Naslov sporočila: Re: LCD CMC216-02 + driver KSB0070B |
|
|
dast je napisal/a: |
Na enem tujem forumu sem enkrat prebral da daš RS in R/W pin na GND in bi se morali vsi kvadratki vklopiti??? |
Tako je - kvadratki se pokažejo v zgornji vrstici.
Sicer pa raje uporabi 5k (nekje okoli te vrednosti - tudi 10k je dober) potenciometer (trimer) in nastavi vrednost kontrasta. Je bolj enostavno.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Apr 14, 2007 7:52 pm Naslov sporočila: |
|
|
Najprej okrog displeja. Če priključiš lcd na napajanje, ter imaš ustrezno nastavljen kontrast se bo pri neinicializiranem displeju pokazala prva vrstica (poln prikaz posameznega znaka)
Program:
Podrobna analiza bi mi vzela preveč časa. Gledal sem le komentarje. Mislim, da so timingi neustrezni.
Pravilno napisana inicializacija bi morala potekati nekako takole:
(4 bitni mod)
Koda: |
vklop napajanja
pavza 15mS
RS R/W D7 D6 D5 D4
0 0 0 0 1 1
pavza 4.1mS
0 0 0 0 1 1
pavza 100mS
0 0 0 0 1 1
pavza 4.1mS
0 0 0 0 1 0 ;vklopljeno 4 bitno naslavljanje
pavza 40us
0 0 0 0 1 0
0 0 1 F x x ;F=font 1-5x11 0-5x8
pavza 40uS
0 0 0 0 0 0
0 0 1 0 0 0 ;izklop vsega (displej, kurzor, utripanje)
pavza 40uS
0 0 0 0 0 0
0 0 1 1 K U ;vklop izklop kurzor, utripanje
pavza 1.7mS
0 0 0 0 0 0
0 0 0 1 V P ;nacin izpisa (V-vrivanje,P-smer premika displeja)
pavza 40uS
Konec inicializacije
|
ps
Uporabi iskanje. Na forumu boš našel kar nekaj mojih delujočih primerov, kjer sem uporabljal lcd. Po večini je priložena tudi izvorna koda.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Ned Apr 15, 2007 9:46 am Naslov sporočila: Re: LCD CMC216-02 + driver KSB0070B |
|
|
dast je napisal/a: |
...napetost okrog 4.5V, kot je navedeno v datasheet-u.... |
Tudi meni ni delovalo, potem sem pa V0 fizično priključil na 0V in LCD je magično oživel... Vsaj pi meni 4.5V ni dalo nobene koristi.
|
|
Nazaj na vrh |
|
 |
dast Član

Pridružen-a: Tor 09 Jan 2007 19:14 Prispevkov: 21 Aktiv.: 0.09 Kraj: Slov. Konjice
|
Objavljeno: Ned Apr 15, 2007 11:25 am Naslov sporočila: Re: LCD CMC216-02 + driver KSB0070B |
|
|
mucek4 je napisal/a: |
dast je napisal/a: |
...napetost okrog 4.5V, kot je navedeno v datasheet-u.... |
Tudi meni ni delovalo, potem sem pa V0 fizično priključil na 0V in LCD je magično oživel... Vsaj pi meni 4.5V ni dalo nobene koristi. |
Hvala mucek4, tudi moj lcd je sedaj oživel!
Ga bom poskusil sedaj inicializirat.
|
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Ned Apr 15, 2007 10:30 pm Naslov sporočila: |
|
|
Imam LCD dem16216 ki sem ga priklopil na Microchip-ov PicKit2 (portd), ampak mi ga ne uspe inicializirati. Ko ga priklopim na napajanje se mi v drugi vrstici izpisejo kvadratki cez celo vrstico , to pa je tudi vse! V config imam nastavljen INTERNAL oscilator, ker plosca nima zunanjega kristala. Ta je nastavljen na 4MHz (default after reset). Omenil sem zato ker sem gledal Datasheet pa je mozno nastavljati frekvenco od 31kHz do 8MHz, vendar je po defoltu 4MHz, zato mislim da je vredu ce samo v __config nastavim na internal oscilator??? (tole mi ni cisto jasno,ampak upam da prav razmisljam)
Tule koda inicializacije ce ima kdo kako pripombo ali nasvet!!
Aja, probal sem tudi par Silvotovih Primerov inicializacije pa mi pravtako ni uspelo!
Koda: |
LCD_init
bcf RS
movlw .30
call Pavza_ms
movlw b'00111000'
movwf PORTD
call Sporoci
movlw .5
call Pavza_ms
movlw b'00111000'
movwf PORTD
call Sporoci
call Pavza119us
movlw b'00111000'
movwf PORTD
call Sporoci
movlw .5
call Pavza_ms
movlw b'00100000'
movwf PORTD
call Sporoci
call Pavza119us
movlw 0x28
call LCD_pisi
movlw 0x08
call LCD_pisi
movlw 0x01
call LCD_pisi
movlw .2
call Pavza_ms
movlw 0x06
call LCD_pisi
movlw 0x0f
call LCD_pisi
return |
lp,Jaka
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Apr 15, 2007 10:42 pm Naslov sporočila: |
|
|
Imaš vse pravilno povezano? Vsi moji primeri, ki so na forumu so sigurno delujoči.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Ned Apr 15, 2007 10:54 pm Naslov sporočila: |
|
|
Zvezano bi moralo biti prav!
Napajanje imam direktno iz usmernika preko trimerja!
RS je RD1 --> 4 pin LCD-ja
E je RD3 --> 6 pin LCD-ja
RD4 je 11 pin LCD-ja
RD5 je 12 pin LCD-ja
RD6 je 13 pin LCD-ja
RD7 je 14 pin LCD-ja
Druge moznosti mislim da tu ni!
Bom se jutri probal!!!
lp,Jaka
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Ned Apr 15, 2007 10:57 pm Naslov sporočila: |
|
|
Se to , ce vzamem inicializacijo LCD-ja iz tvojega programa potem nerabim spremeniti drugega kot PORTA oz . se tega ne ce vzamem istega!
lp
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 16, 2007 5:33 am Naslov sporočila: |
|
|
kavelj22 je napisal/a: |
Zvezano bi moralo biti prav!
Napajanje imam direktno iz usmernika preko trimerja!
RS je RD1 --> 4 pin LCD-ja
E je RD3 --> 6 pin LCD-ja
RD4 je 11 pin LCD-ja
RD5 je 12 pin LCD-ja
RD6 je 13 pin LCD-ja
RD7 je 14 pin LCD-ja
Druge moznosti mislim da tu ni!
Bom se jutri probal!!!
lp,Jaka |
A pin RW lcd-ja je v zraku?
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
dast Član

Pridružen-a: Tor 09 Jan 2007 19:14 Prispevkov: 21 Aktiv.: 0.09 Kraj: Slov. Konjice
|
Objavljeno: Pon Apr 16, 2007 9:27 am Naslov sporočila: |
|
|
Jaz sem svoj CMC216-02 uspel inicializirat! Uporabil sem Silvotov postopek, le da sem vmes vrinil še ukaz Clear Display. Postopek poteka tako:
Koda: |
vklop napajanja
pavza 15mS
RS R/W D7 D6 D5 D4
0 0 0 0 1 1
pavza 5mS
0 0 0 0 1 1
pavza 100uS
0 0 0 0 1 1
pavza 5mS
0 0 0 0 1 0 ;vklopljeno 4 bitno naslavljanje
pavza 40us
0 0 0 0 1 0
0 0 1 1 0 0 ;font 5x8
pavza 40uS
0 0 0 0 0 0
0 0 1 1 1 0 ;kurzor ON, utripanje OFF
pavza 40uS
0 0 0 0 0 0
0 0 0 0 0 1 ;Display Clear
pavza 1.7mS
0 0 0 0 0 0
0 0 0 1 1 0 ;nacin izpisa (vrivanje ON, smer premika displeja OFF)
pavza 40uS
Konec inicializacije
|
Stvar je nekaj časa delovala, pojavil se je kurzor, potem pa nič več (prižgana je bila samo prva vrstica)! Potem sem opazil da se je ena žila flat kabla ki poteka iz lcd-ja iztaknila iz letvice (slab spoj), ki je vtaknjena v protoboard in se je dotikala sosednje žile. To stvar sem popravil, vendar sploh ne deluje več! Sumim da mogoče nekaj ni vredu z kristalom, ker na začetku se mi tudi ni hotel takoj inicializirat, potem sem pa ga nekajkrat resetiral in inicializacija je uspela. Mogoče kondenzatorja ob kristalu nista ustrezna (27pF karamična)??
Citiram: |
Koda:
LCD_init
bcf RS
movlw .30
call Pavza_ms
movlw b'00111000'
movwf PORTD
call Sporoci
movlw .5
call Pavza_ms
movlw b'00111000'
movwf PORTD
call Sporoci
call Pavza119us
movlw b'00111000'
movwf PORTD
call Sporoci
movlw .5
call Pavza_ms
movlw b'00100000'
movwf PORTD
call Sporoci
call Pavza119us
movlw 0x28
call LCD_pisi
movlw 0x08
call LCD_pisi
movlw 0x01
call LCD_pisi
movlw .2
call Pavza_ms
movlw 0x06
call LCD_pisi
movlw 0x0f
call LCD_pisi
return
|
Jaka, preveri če ukaze pravilno pošiljaš na PORTD.4 - 7! Pri meni je na začetku ravno to bil problem, zato ker če pošlješ za Clear Display 0x01 boš poslal b'00000001' to pomeni da bo 1 PORTD.0 ne pa PORTD.4 kamor je vezana podatkovna linija lcd-ja. Lahko je v tem problem, ali pa je to že rešeno v tvojem podprogramu LCD_pisi in je kaj drugega!
LP David
|
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Pon Apr 16, 2007 2:44 pm Naslov sporočila: |
|
|
Dast, nisi napisal kaksen kvarc uporabljas; 27 pF je s tipicnim oscilatorjem v MCuju recimo primerno za 8-10 MHz ali tam nekje, za visje frekvence (npr. 20 ali 24 MHz) pa bi bilo boljse uporabiti manjse (15 pF in vecje). Oscilator bodo sicer potegnili samo malo navzdol, a bo bolj obremenjen in bo prej zacel delati nepricakovane stvari ... (odstopanje od nazivne frekvence mocno izven specificiranih meja)
_________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 16, 2007 2:48 pm Naslov sporočila: |
|
|
Citiram: |
....da sem vmes vrinil še ukaz Clear Display. |
Ne vem na pamet - poglej v datashet a mislim, da je pavza 1.7mS po brisanju displeja prekratka. Če brisanje še poteka, bo zletela sledeča instrukcija v prazno.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Pon Apr 16, 2007 6:24 pm Naslov sporočila: |
|
|
Citiram: |
A pin RW lcd-ja je v zraku?
|
Ja, pin RW LCD-ja sem imel v zraku nato pa sem ga priklopil in dal na RD2!
Nobene razlike!
Citiram: |
Jaka, preveri če ukaze pravilno pošiljaš na PORTD.4 - 7! Pri meni je na začetku ravno to bil problem, zato ker če pošlješ za Clear Display 0x01 boš poslal b'00000001' to pomeni da bo 1 PORTD.0 ne pa PORTD.4 kamor je vezana podatkovna linija lcd-ja. Lahko je v tem problem, ali pa je to že rešeno v tvojem podprogramu LCD_pisi in je kaj drugega!
|
Tudi to sem pregledal in mislim da je prav. Prenos je v 4 bitnem nacinu tako da za prenos spodnjih 4 bitov uporabimo ins. SWAP in potem nemore biti PORTD.0 na 1!
Je pa tule koda za prenos!
Koda: |
LCD_pisi
movwf Temp1
movlw b'00001111' ; pobrisemo zgornje 4 bite PORTD
andwf PORTD,f
movf Temp1,w
andlw b'11110000' ;pobrisemo spodnje bite Temp1
iorwf PORTD,f ; prenesemo zgornje bite Temp1
call Sporoci
swapf Temp1,f ; zamenjamo spodnje in zgornje 4 bite
movlw b'11110000' ;spet pobrisemo spodnje(zgornje) 4 bite
andwf Temp1,f
movlw b'00001111' ;pobrisemo zgornje 4 bite PORTD
andwf PORTD,f
movf Temp1,w
iorwf PORTD,f ;prenesemo zgornje(spodnje) 4 bite
call Sporoci
return |
Nevem, probal sem vse nacine tudi ta dva ki sta v tem postu in nic. Nimam vec idej!!
lp, Jaka
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 16, 2007 6:27 pm Naslov sporočila: |
|
|
kavelj22 je napisal/a: |
Citiram: |
A pin RW lcd-ja je v zraku?
|
Ja, pin RW LCD-ja sem imel v zraku nato pa sem ga priklopil in dal na RD2!
Nobene razlike!
|
Pa si ta pin RD2 definiral kot izhod z nizkim stanjem? Pri pisanju na displej mora biti na RW nizko stanje.
_________________ lp
Silvo |
|
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: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|