128x64 grafik LCD 4 bit olarak kullanilabilir mi ?

Başlatan nusyil, 16 Ekim 2012, 07:13:53

nusyil

Herkese Merhaba

Konuyu dogru yerde mi actim bilemiyorum. Sorum su:

128x64 grafik LCD'ye 16x2 LCD'lerde oldugu gibi sadece 4 data pinini kullanarak bilgi gondermek mumkun mudur? Amacim islemcide bacak tasarrufu saglamak. Ayrica 4094 gibi 8 bit veya bu2090f gibi 12-bit shift register kullanarak grafik lcd ler ile seri haberlesmek mumkun mudur? Internette biraz arastirma yaptim. 16x2 ler icin bu mumkun ancak grafik lcd'ler icin pek birsey goremedim.

Saygilar..

mustafa_cmbz

Seri iletişim mümkündür hatta sitemizin arama motoruna anahtar kelimeler olarak glcd vs. yazarsan aradığını bulacaksın...

Kabil ATICI

Elbette istenilen işlevleri yapmak mümkün.

Grafik LCD modüllerde bu tür devrelerin girilmemesi sanırım ekrana gönderilecek bilginin çok fazla olmasından kaynaklanıyor. 128x64 ekran için 1Kbayt veri gönderilmesi gerekiyor. Oysa 2x16 için en fazla 36 bayt veri gönderilmesi yeterlidir.
ambar7

Burak B

#3
Küçük çin malı mp3 playerlardaki LCD ler 128x32, 96x64, 96x32 gibi çözünürlüklerde ve SPI arayüz kullanır. Buna benzer COB (Chip on Board), COG (Chip on Glass), COF (Chip on Flex) LCD' lerde bulunabiliyor piyasada. SPI 4 pin kullandığından pinden tasarruf edebilirsin. SPI data hattına birden çok cihaz bağlanabildiğinide göz önünde bulunduracak olursan. Sadece bir /CS pini ve SPI ile bu işi halledebilirsin.

Ek: Şimdi aklıma geldi Nokia 3310 v.b. ekranları SPI mesela :) Tonla örnek var nette.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

arslan74

Merhaba,

Karakter LCD ler bilgiler byte byte gönderilir, o baytın ne anlama geldiği içindeki karater tablosunda alır ve ekrana yazar. Yani grafik işiyle uğraşmassınız. Oysa GLCD dendiğinde ekrana pixel olarak resim basabilen bir sistem den bahs ediliyor. bu sistemde datalar byte byte olarak alır. Yani bir sefer 8 bit pixel bilgisi iletilir ve 8 bit pixel bilgsi yazılır. sadece bir bit pixel bilgisini değiştirmek için önce 8 bit pixel bilgisini okuman gerek. Sonra içinden bir bit pixsel bilgisini değiştirip ona o bilgiyi tekrar geri yazman gerek dolaysıyla GLCD ye hem okuma hemde yazma yapmalısın. Karater LCD sadece yazma yaparak bilgi gönderebilirsin, okuma zorunluluğu yok. Okuma yapmak size ekstra bir emniyet sağlar, lcd bozulmuş veya bağlantı hatası var ise onu anlarsınız. O yüzden karater LCD leri cok rahat shift register ile sürebilirsiniz. Ama iş GLCD leri shift register sürme işine geldiğinde o zaman okuma yapamayacaksınız, bu durumda pixel olarak resim basamassınız. Bu aşmanına yolu var tabi, GLCD içindeki RAM bilgisini bir kopyasını sizin kendi ram hafısanızda tutarak yapabilirsiniz. önce işlemsinin raminde değişiklik yaparsınız sonra o bilgiyi ekrana iletebilirsiniz. 128x64 bir GLCD için 1024byte bir ram alanına ihtiyac duyar. Yeterince RAM alanızı var ise bu şekilde yapabilirsiniz.

nusyil

Cevaplar icin tesekkurler..

Alıntı yapılan: mustafa_cmbz - 16 Ekim 2012, 08:03:37
Seri iletişim mümkündür hatta sitemizin arama motoruna anahtar kelimeler olarak glcd vs. yazarsan aradığını bulacaksın...

Sitede arattim GLCD ile ilgili cok konu var ancak seri bilgi gonderme ile ilgili bir konuya rastlayamadim.

Alıntı yapılan: ByteMaster - 16 Ekim 2012, 11:36:04
Küçük çin malı mp3 playerlardaki LCD ler 128x32, 96x64, 96x32 gibi çözünürlüklerde ve SPI arayüz kullanır. Buna benzer COB (Chip on Board), COG (Chip on Glass), COF (Chip on Flex) LCD' lerde bulunabiliyor piyasada. SPI 4 pin kullandığından pinden tasarruf edebilirsin. SPI data hattına birden çok cihaz bağlanabildiğinide göz önünde bulunduracak olursan. Sadece bir /CS pini ve SPI ile bu işi halledebilirsin.

Ek: Şimdi aklıma geldi Nokia 3310 v.b. ekranları SPI mesela :) Tonla örnek var nette.

Uzerinde calistigim proje icin GLCD kullanmak zorundayim.

Elinde ornek bir baglanti semasi ,kod veya web sayfasi linki olan var mi ?

arslan74

Proteusta istediğin hepsi var. örnek projeleri incele.

nusyil

Alıntı yapılan: arslan74 - 16 Ekim 2012, 19:37:21
Proteusta istediğin hepsi var. örnek projeleri incele.

Proteus'ta sadece 16x2 LCD icin ornek var hocam, GLCD icin yok. Bana GLCD lazim.

arslan74

Alıntı yapılan: nusyil - 16 Ekim 2012, 22:08:46
Proteus'ta sadece 16x2 LCD icin ornek var hocam, GLCD icin yok. Bana GLCD lazim.

Sayın nusyil,

Beni yanlış anlamayın ama siz gercekten proteus'u inceleyecek mu yaziyorsunuz, bilemiyorum. Zira GLCD ile yapılmış bir sürü örnek var. Tam sizin istediğiniz gibi PIC18 ve 128x64 ile yapılmış örnek bir oyun programı bile var adı da "space invaders". Yoksa siz GLCD diye başka birşeyden mi bahs ediyorsunuz ?

Yazmadan önce lütfen biraz araştırma yapalım, öyle yazalım. Buraya benim yazı yazmanın sebebi, gercekten birşeyler örğenmek isteyen ve bazı konularda takılan arkadaşlara elimden geldiğince yardımcı olup yol göstermek dir. Bunda da karşı tarafın o gayretleri içinde olduğunu anlamam gerek ki devamında da yardım edeyim. Eğer karşı tarafta o gayreti ve kapasiteyi görmez isem artık onun üzerinde fazla durmam.







nusyil

Sayin arslan74,

Uyariniz uzerine Proteus'u (burada proteus derken Isis'i kasdediyoruz degil mi?) bir kez daha inceledim. Isis programinin "Samples" altklasorunun altindaki "VSM for 8051" klasoru icinde sadece "Calc" ve "8051 lcd driver" klasorlerinde LCD'li ornekler var. Onlar da 16X2 LCD, benim istedigim GLCD degil. Ha, sizin kullandiginiz Isis versiyonu ile benimki farkli olabilir mi veya olsa bile aralarinda cok buyuk farklar olur mu onu konuda bilgim yok. Ben PIC'in P sini bile bilmiyorum. Hep ATMEL ile calistim. Zira dikkat ederseniz konuyu da ATMEL basligi altinda actim.Bu nedenle zahmet olmazsa lutfen bana  klasor adi ve dosya adi vererek ama lutfen GLCD olan bir ornek gosterebilirseniz size minnettar kalacagim.

Internette bircok yerde 16x2 ile ilgili bir suru ornek var ancak benim istedigim bu degil. Sizden ve buradaki diger arkadaslardan bu is mumkun ise somut ornekler veya bilgi istiyorum bu kadar. Ha mumkun degil ise veya bilginiz yok ise de lutfen acik olarak yazin ki ben de bosa kurek cekmeyeyim. Cevap yazan her arkadasa cok tesekkur ediyorum, kimsenin iyi niyetinden en kucuk bir suphem yok lakin genel ve yuvarlak cevaplar yerine kesin ve soruya odakli cevaplar gelse hepimiz icin daha iyi olur diye dusunuyorum. Hem zaman hem emek israfi olmaz.

Sorumu tekrar ve basit olarak yineleyeyim :

Sevgili arkadaslar, 128x64 Grafik LCD'ye (16x2 degil) elimdeki 4094 veya BU2090 tarzi shift registerkeri kullanarak seri bilgi yollamak MUMKUN mu DEGIL mi ? Lutfen mumkun ise SOMUT orneker veya sema veya bilgi rica ediyorum. Mumkun degilse de olmadigini soyleyin ve ben bosuna ugrasmayayim, bu kadar.

Sayin arslan74 ,ben burada bir soru sormadan veya konu acmadan once muhakkak internette arastiriyorum,yoksa niyetim kimsenin zamanini calmak veya laf olsun torba dolsun tarzi sorular sormak degil. Bunun boyle oldugunu daha onceki actigim konulardan veya sordugum sorulardan gorebilirsiniz. Zaten bu sitenin kullanim sekli de bence boyle olmali. Insanlar sormadan once biraz internetten arastirma yapmali, son care olarak veya muallakta kaldiginda buradaki diger arkadaslara ve daha uzman kisilere danismali, benim dusuncem bu.

Cevabiniz icin tekrar tesekkur ediyorum.Kolay gelsin.

ErsinErce

Benzer(tam istediğin değil benzer yanları olan) örnekler nette mevcut onlara baktığında göreceğin yapı ve yapman gereken şeyleri şu şekilde sıralayayım;
lcd yi 8 bit ve Busy flag kontrolü yapmadan(yerine gecikme konulurak) süren bir driver mevcut ayrıca shift register süren bir driver daha var
yapılan iş; LCD driver dosyasında 8 bit çıkış yapan her kod satırını shift register yardımıyla süren kod satırlarıyla değiştirmek

istediğin şekilde belki nette vardır araştırmak lazım ama yoksa da yapman gereken iş bu

Murat Mert

Alıntı yapılan: nusyil - 16 Ekim 2012, 07:13:53
Herkese Merhaba

Konuyu dogru yerde mi actim bilemiyorum. Sorum su:

128x64 grafik LCD'ye 16x2 LCD'lerde oldugu gibi sadece 4 data pinini kullanarak bilgi gondermek mumkun mudur? Amacim islemcide bacak tasarrufu saglamak. Ayrica 4094 gibi 8 bit veya bu2090f gibi 12-bit shift register kullanarak grafik lcd ler ile seri haberlesmek mumkun mudur? Internette biraz arastirma yaptim. 16x2 ler icin bu mumkun ancak grafik lcd'ler icin pek birsey goremedim.

Saygilar..

S.A.
Maksadınız pinlerden kar yapmaksa siteden bir arkadaş ccs c için pic le 3 pinden 2*74595 ile glcd sürücü yapmış arayıp incele derim.
mert07

nusyil

A.S Mert07

Cevabin icin sagol. Ben de dunden bu yana 2x 4094 ile yapmaya calisiyorum, bayagi bir yol aldim sayilir. Bugun- yarin biter insallah.Bitirince burada yayinlayacagim. Anladigim kadari ile mantik ayni, islemciler farkli. Ben Atmel kullaniyorum.

Saygilar,kolay gelsin.

arslan74

Alıntı YapUyariniz uzerine Proteus'u (burada proteus derken Isis'i kasdediyoruz değil mi?) bir kez daha inceledim. Isis programinin "Samples" altklasorunun altindaki "VSM for 8051" klasoru icinde sadece "Calc" ve "8051 lcd driver" klasorlerinde LCD'li ornekler var. Onlar da 16X2 LCD, benim istedigim GLCD değil. Ha, sizin kullandiginiz Isis versiyonu ile benimki farkli olabilir mi veya olsa bile aralarinda cok buyuk farklar olur mu onu konuda bilgim yok. Ben PIC'in P sini bile bilmiyorum. Hep ATMEL ile calistim. Zira dikkat ederseniz konuyu da ATMEL basligi altinda actim.Bu nedenle zahmet olmazsa lutfen bana  klasor adi ve dosya adi vererek ama lutfen GLCD olan bir ornek gosterebilirseniz size minnettar kalacagim.

Bir başka arkadaşımızın dediği gibi cok farklı özellikle bir cok GLCD ler var. Siz tam olarak hangisi GLCD bahs ettiğinizi bilemiyorum. Ben piyasada cokca bulunan ve KS0108 chip setli veya ona muadil GLCD baz aldığınız varsarak cevaplayayım.

Öncelikle Proteusun içinde KS0108 ve başka GLCD lerin simülasyon kütüphaneleri var. Yadımcı olması içinde aynı şeyi tekrar etmiş olacağım ama değişik işlemcilerle hazırlanmış bir sürü örnek proje proteusun içinde mevcut. Örnek projeleri neden bulamadığınızı hala anlamış değilim.
Size projelerin klasör isimlerinde vereyim. İnşallah bu sefer bulablirsiniz.
1) c:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for PICMICRO\VSM for PIC18\Space Invaders\
   PIC18 ve KS0108 ile yapılmış örnek uygulama. Kodlar basic.
2) c:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for PICMICRO\VSM for PIC18\Tiny Chess\
  PIC18 ve touch screenlı GLCD ile yapılmış Satranc oyunu. Hi-tech de yazılmış.
3) c:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for AVR\Tiny Chess\
   AVR ve touch screenli GLCD ile yapılmış satranc oyunu. Kodlar C de yazılmış.
4) c:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for ARM7\LPC2138 with Graphics LCD\
  ARM7 ile yapılmış örnek uygulama GLCD kodu.

Umarım bu yapılmış örnek kodları bulabilirsiniz.

Selamlar


nusyil

Alıntı yapılan: arslan74 - 18 Ekim 2012, 21:50:06

Öncelikle Proteusun içinde KS0108 ve başka GLCD lerin simülasyon kütüphaneleri var. Yadımcı olması içinde aynı şeyi tekrar etmiş olacağım ama değişik işlemcilerle hazırlanmış bir sürü örnek proje proteusun içinde mevcut. Örnek projeleri neden bulamadığınızı hala anlamış değilim.
Size projelerin klasör isimlerinde vereyim. İnşallah bu sefer bulablirsiniz.


Merhaba,

Verdigniz ayrintili klasor bilgileri icin sagolun. Bu kez "Labcenter Electronics" klasorunun icindeki butun dosyalari tek tek inceledim.Sadece "VSM for PIC18" klasorunu ve altindaki "satranc" ve "space invaders" oyununu bulabildim. Dedigim gibi benim proteus da bir sorun var galiba, eksik mi yukledim yada birseyler mi sildim bilemiyorum ama diger klasorler bende yok.

Ancak o ornekler de paralel haberlesiyor ustadim. Benim paralel haberlesme ile ilgili bir sorunum yok.Onu su anda kullaniyorum zaten. Benim istedigim, kullandigim Atmel 89s52 islemcide butun bacaklar dolu oldugundan ve birkac tane daha bacaga ihtiyac dogdugundan GLCD pinleri ile ilgili bir tasarrufa gidebilmek,tabii basarabilirsem.

Mert07 arkadasa verdigim cevapta dedigim gibi su anda 2 adet 4094 8-bit shift register kullanarak bunun uzerinde calisiyorum. Eger araya baska isler girmezse kisa surede bitirmeyi umuyorum.

Ilginiz ve emeginiz icin tesekkurler,selamlar.