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 

LCD CMC216-02 + driver KSB0070B
Pojdi na stran 1, 2, 3, 4  Naslednja
 
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
dast
Član
Član



Pridružen-a: Tor 09 Jan 2007 19:14
Prispevkov: 21
Aktiv.: 0.09
Kraj: Slov. Konjice

PrispevekObjavljeno: Sob Apr 14, 2007 2:19 pm    Naslov sporočila: icon_angry LCD CMC216-02 + driver KSB0070B Odgovori s citatom

Ali je mogoče kdo usposobil lcd 2x16 CMC216-02 (kupljen v HTE)? Meni ga ne uspe inicializirat! Brick wall

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???



The Extension 'bmp' was deactivated by an board admin, therefore this Attachment is not displayed.


lcd.txt
 Opis:
Program za inicializacijo

Download
 Ime datoteke:  lcd.txt
 Velikost datoteke:  7.09 KB
 Downloadano:  24 krat

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



Pridružen-a: Ned 02 Jan 2005 19:24
Prispevkov: 746
Aktiv.: 3.15
Kraj: MB

PrispevekObjavljeno: Sob Apr 14, 2007 6:49 pm    Naslov sporočila: icon_angry Re: LCD CMC216-02 + driver KSB0070B Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Apr 14, 2007 7:52 pm    Naslov sporočila:   Odgovori s citatom

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



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

PrispevekObjavljeno: Ned Apr 15, 2007 9:46 am    Naslov sporočila: icon_angry Re: LCD CMC216-02 + driver KSB0070B Odgovori s citatom

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



Pridružen-a: Tor 09 Jan 2007 19:14
Prispevkov: 21
Aktiv.: 0.09
Kraj: Slov. Konjice

PrispevekObjavljeno: Ned Apr 15, 2007 11:25 am    Naslov sporočila: icon_angry Re: LCD CMC216-02 + driver KSB0070B Odgovori s citatom

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! Very Happy

Ga bom poskusil sedaj inicializirat.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Ned Apr 15, 2007 10:30 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Apr 15, 2007 10:42 pm    Naslov sporočila:   Odgovori s citatom

Imaš vse pravilno povezano? Vsi moji primeri, ki so na forumu so sigurno delujoči.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Ned Apr 15, 2007 10:54 pm    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Ned Apr 15, 2007 10:57 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Apr 16, 2007 5:33 am    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Tor 09 Jan 2007 19:14
Prispevkov: 21
Aktiv.: 0.09
Kraj: Slov. Konjice

PrispevekObjavljeno: Pon Apr 16, 2007 9:27 am    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pon Apr 16, 2007 2:44 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Apr 16, 2007 2:48 pm    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Apr 16, 2007 6:24 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Apr 16, 2007 6:27 pm    Naslov sporočila:   Odgovori s citatom

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
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
Pojdi na stran 1, 2, 3, 4  Naslednja
Stran 1 od 4

 
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group