WG240128B TOSHIBA T6963C 240x128 GLCD ÇALIŞAN PROJE

Başlatan Phenomen, 26 Mart 2012, 14:55:29

Phenomen

Selam arkadaşlar. Bir süre önce WG240128B ekran ile ilgili bir proje için bayağı uğraştım. İlk olarak CCS C' nin içindeki sürücüler T6963C chipli ekranlara uygun değil bu yüzden internetten uygun bir sürücü buldum ve ekranın boyutlarına ve kullandığım 18F452' ye uygun hale getirdim. Sürücüye ek bir kaç özellik daha ekledim ve şu an düzgün biçimde çalışıyor.  Sürücüyü elinizdeki ekran boyutlarına ve kullanacağınız işlemcinin pin durumuna göre kolay biçimde adapte edebilirsiniz sürücü dosyasında gerekli açıklamalar ingilizce olarak mevcut. Takılırsanız yardımcı olurum.

Ekranı sürerken dikkat etmeniz gereken noktalar var bunları aşağıda sıraladım.

1- Ekranın pinleri sağdan başlıyor. Yani ekranı karşınıza aldığınızda 1. pin en sağdaki, alt tarafında yazıyor fakat ben ilk başta bakmadan devreyi kurdum ve bir ekranın font selektorünü bozdum şu an sadece 6x8 modunda çalışıyor. Fakat kullanışlı ve sürücüye uygun olan mod 8x8 aman dikkat.
2- Kesinlikle devrenizi kurarken Isis' te verdiğim şemaya uygun kurunuz. Pic' in elemanları standart Isis' te ekli değil ekleyin.
*3- Isis teki simülasyon bayağı yavaş çalışıyor hızlandıramadım, siz hızlandıracak bir ayar bulursanız buraya eklersiniz. Ayrıca simülasyonda ekrana alakasız pikseller falan çiziyor Isis fakat gerçek devrede düzgün çalışıyor. Isis' e  aldanarak hatalı çizim yapıldığını zannetmeyin. Bu arada kullandığım Isis sürümü 7.8 SP2 (Build 10468) -- Çözüldü
4- Harici Eeprom ile kullanılan iletişimde gerekli CCS C sürücüsünde donanımsal I2C protokolünü kullanmak için tanımlamayı şu şekilde yaptım "#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL, FORCE_HW)". Olduğu gibi bırakırsanızda çalışıyor.

Yazılım hakkında bilgi: (Özelllikle resim yüklemelerinde Isis yavaş çalışıyor sabırlı olun, işlem yapılmıyor sanıp simülasyonu durdurmayın)

1- İlk Olarak Rom hafızadan açılış resmi yükleniyor.
2- Rom hafızadan yeni resim yükleniyor.
3- Harici EEprom' dan resim yükleniyor.
4- Geometrik şekillerin çizimi.
5- Ekrana düz yazı ve farklı boyutlarda fontlu yazı yazılıyor.
6- Daha da birşey yok bu kadar :)

Resim kullanımı hakkında bilgiler

1- Resimleri istediğiniz resim düzenleme yazılımında bitmap(Siyah-Beyaz) modunda düzenleyip BMP formatında kaydedin.
2- Fast LCD programı ile resminizi çağırıp "BAS" tuşuna basın :)
                              Seçenekler 1- T6963C 2- 0(8 bits) 3- Image şeklinde olacak.  BAS dosyası olarak kaydedin.
3- Kaydedilen dosyayı notepad ile açıp Tüm "&h" leri "0x" olarak değiştirin. İlk 2 satırdaki tanımlama bilgilerini silin.
4- Artık resminiz CCS C' ye uygun hale geldi.

Ek olarak Harici Eeprom' a yazmaya uygun hale getirmek için *.BAS dosyasını Binary formatında kaydetmeniz gerekli. Bunun için birçok yöntem mevcut, benim kullandığım yöndem şu şekilde.

1- Fast LCD ile oluşturup düzenlediğimiz bas uzantılı dosyayı açıp tüm içeriğini kopyalıyoruz.
2- Hex Editor Neo Programını açıp kopyaladığımız verileri yapıştırıyoruz.
3- Sonra CTRL+A ya basarak yapıştırdığımız tüm verileri seçiyoruz.
4- Export seçeneğinden dosya ismimizi belirleyip alttan Raw Text Bölümünden "None"' ı seçip "Export" tuşuna basıyoruz.
5- Eeprom için kullanılan *.bin dosyamızda hazır, kullandığınız programlayıcı ile yazabilirsiniz.

Takıldığınız yerlerde bu konudan devam ederseniz bu ekranlar için derli toplu bir başvuru kaynağı oluşur.

Not: Sürücüde tanımlaması ile alakalı hatalar düzeltildi. Isis simülasyonundaki yavaşlık Data hattını PortB' ye taşıyıp dahili pullupları kullanarak düzeltildi.

Harici Pullup Dirençli Yavaş sürüm (Sadece Isis' te yavaş). Data Hattı PortD' de


Dahili Pullup Dirençli Hızlı sürüm. Data Hattı PortB' de

https://drive.google.com/file/d/0By7sRf0RIWttbFFWbmlGYjA0S1U/edit?usp=sharing

https://drive.google.com/file/d/0By7sRf0RIWttT1ljcXM4UzBlVDA/edit?usp=sharing

Murat Mert

S.A.
eline sağlık arkadaşım güzel bir projeymiş.
mert07

CeMiL_mktrnk

Mekatronik Mühendisi/Mechatronic Engineer

Phenomen


bolubeyi

#4
Paylaşım için teşekkür ederim.Port C de olan kontrol portunu diğer portlara nasıl alabilirim ve pinleri nasıl değiştirebilirm(Port a veya port b ye)?

Phenomen

#5
Tekrar selamlar,  "T6963C.c" sürücü dosyasındaki gerekli port tanımlama satırları var görmüşsünüzdür. Dosyanın başlarında portların tanımı yapılıyor fakat çok ilginç bir durum söz konusu :) Portları değiştirdiğinizde her zaman ilk önce kontrol portu sonra data portu olması gerekiyor yoksa sürücü çalışmıyor örnek Kontrol portA-Data portB şeklinde veya Kontrol portB-Data portC. Bu durum sürücüyü yazan arkadaşın data portunu "lcd_pin_def" yapısının içinde tanımlamasından kaynaklanıyor. Sürücüde gerekli değişiklikleri yaptım port tanımlamalarının yanlarına türkçe açıklamalar ekledim istediğiniz gibi portları tanımlayabilirsiniz artık. Konunun başındaki dosyayı yeniden yüklüyorum indirirsiniz.

Kolaylık olması açısından port değiştirmek için gerekli olan satırları ekliyorum:

#define set_tris_lcd(x) set_tris_d(x) // Data hattı hangi portta ise o tanımlanacak örneğin "set_tris_c(x)"
#use fast_io(D) // Yukarıda tanımlanan data portu girilecek örneğin fast_io(C)

#byte LCD = 0xf81        // Kontrol portunun işlemcideki adresi (18f452 için B port adresi 0xf81)
#byte LCD_Data = 0xf83   // Data portunun işlemcideki adresi (18f452 için D port adresi 0xf83)

set_tris_b(0x00);  // Kontrol portunun yönlendirilmesi
set_tris_lcd(0xff);      // Data portunun yönlendirilmesi

Ayrıca kontrol portundaki pinlerin (WR, RST, vs.) yerini değiştirmek için "lcd_pin_def" yapısındaki sıradan istediğiniz sıraya taşımanız gerekektedir. Örneğin PortB_1' e bağlı WR hattını PortB_3' e taşımak için aşağıdaki gibi yapmalısınız.

struct lcd_pin_def
{
   BOOLEAN unused1;  // Kontrol hattının 0. pini
   BOOLEAN unused3;  // Kontrol hattının 1. pini
   BOOLEAN unused2;  // Kontrol hattının 2. pini
   BOOLEAN w_bar;    // Kontrol hattının 3. pini Write bar bağlı (düşükte aktif)
   BOOLEAN unused4;  // Kontrol hattının 4. pini
   BOOLEAN r_bar;    // Kontrol hattının 5. pini Read bar bağlı (düşükte aktif)
   BOOLEAN cd;       // Kontrol hattının 6. pini Command/Data bar bağlı (1=command 0=data)
   BOOLEAN reset_bar;// Kontrol hattının 7. pini Reset bağlı (düşükte aktif)
};

Phenomen

Arkadaşlar sadece bendeki Isis sürümünden mi bilmiyorum ama simülasyon çok yavaş çalışıyordu fakat sorunun nereden kaynaklandığını buldum :). Data hattını PortB' ye alıp dahili pullup dirençleri kullanınca simülasyon inanılmaz hızlandı. Şimdi sadece eprom hattında harici pullup dirençleri olduğu için epromdan okuma yaparken yavaş çalışıyor. Yani denetleyicinin io hatlarında pullup direnç kullanılınca Isis çok yavaş çalışıyor bunu anladım. Öğrenmek istediğim sizde de aynımı çalışıyordu yoksa bendeki sürümden kaynaklı bir sorun mu? Bu arada yeni projeyide ilk mesaja ekliyorum indirebilirsiniz.

JKramer

Yanlış hatırlamyorsam Isis'deki dirençler analog ya da dijital olabiliyordu. Analog olduğu zaman, simulasyon bahsettiğiniz gibi yavaş çalışıyor sanırım.

Murat Mert

Alıntı yapılan: JKramer - 29 Mart 2012, 09:26:07
Yanlış hatırlamyorsam Isis'deki dirençler analog ya da dijital olabiliyordu. Analog olduğu zaman, simulasyon bahsettiğiniz gibi yavaş çalışıyor sanırım.

S.A.
Evet dirençleri analog yapınca baya hızlı oldu.
mert07

Phenomen

Alıntı yapılan: JKramer - 29 Mart 2012, 09:26:07
Yanlış hatırlamyorsam Isis'deki dirençler analog ya da dijital olabiliyordu. Analog olduğu zaman, simulasyon bahsettiğiniz gibi yavaş çalışıyor sanırım.

Çok iyi tespit dirençleri "dijital" yapınca çok hızlı çalışmaya başladı :). Teşekkürler bilgi için.

bolubeyi

Glcd_clr komutunun nasıl kullanıldığı hakkında bilgi sahibi olan var mı? ilk girdi olarak location ikinci girdi olarak size istiyo. glcd(0,128) diyelim 0. satırı 128. karaktere kadar temizlemesi gerekmiyor mu?

mierdogan

Selam

16F877A ile kontrol edilir mi bu display ekran? Ona göre işlemci değiştireyim

Teşekkürler

mustisal

Merhabalar, dosyalar silinmiş. Tekrar yüklerseniz sevinirim. Emeğinize sağlık.

Phenomen

Alıntı yapılan: mustisal - 10 Ağustos 2012, 18:22:03
Merhabalar, dosyalar silinmiş. Tekrar yüklerseniz sevinirim. Emeğinize sağlık.
Arkadaşlar dosyaları tekrardan yükledim.

Can_GLCD.rar
Can_GLCD_2.rar

KONYALI

@Phenomen
Bu model LCD'den bende de var şimdiye kadar kullanmadım hiç, arka aydınlatma için Vee ucuna negatif voltaj mı vermek gerekiyor. Siz simülasyon dışında bu devreyi kurup çalıştırdınız mı? Paylaşımınızdan dolayı teşekkür ederim.