Giriş
Grafik LCD ürünlerinin yapısal karakterlerini belirleyen öğelerden biri de kontrol çipleridir. Kontrol çipleri ekrandaki görüntünün nasıl oluşturulacağı yanında, bizim GLCD ile nasıl iletişim kuracağımızı da belirler.Piyasada bulunan kontrol çiplerinden biri de T6963C grafik kontrol çipidir.Bu projede Atmega32 işlemcisi ile T6963C kontrolcü içeren 240x128 grafik LCD modülünü sürme üzerinde çalışacağız.
Not:Grafik LCD'nin markası şu diyebilmeyi isterdim. Satın alınan yerde büyük ihtimalle markanın bulunduğu etiket söküldüğü için bir marka belirtememekteyim. Marka farklı bile olsa LCD'nin bacak bağlantıları bulunduğu takdirde aynı kontrol çipini kullanan grafik LCD üzerinde de proje uygulanabilecektir
T6963C Grafik işlemcisi
Şekil-1 :240x128 Grafik LCD'nin önden görünümü.
Şekil-2 :240x128 Grafik LCD'nin arkadan görünümü. Kırmızı
çerçeve içinndeki soldaki entegre T6963C'dir ve hemen sağındaki entegre RAM'dir.
Diğer kare şeklindekiler LCD sürücüler.
Şekil-3 :240x128 Grafik LCD'nin üzerindeki dünya haritası varken
pikselleri.Grafik ve yazı birlikte(XOR modunda)
240x128 nokta matris gösterge alanı, 8 bit paralel arayüzü, 128 karakter iç CG-ROM, metni ve grafikleri birleştirebilme yeteneği, ayrı adresleme alanları olan metin, grafik ve Karakter üreteci RAM (CGRAM) gibi özellikleri sayılabilir.
Şekil-4 :240x128 Grafik LCD'nin karakter yazıldığında ekran
modeli. Sol taraftaki hex sayılar o satırların başlangıç adreslerini
göstermektedir.
Şekil-5 :240x128 Grafik LCD'nin grafik ekran modeli. Sol üst
köşedeki ilk sıranın adresi 0x0200'dür. İkinci sıra ise 0x0222 ve diğerleri 0x22
eklenerek devam eder.
Şekil-6 :Grafik ekran modunda herhangi bir satırda yer alan
herhangi bir baytın bit yerleşimi. Görüntünün piksellerinin durumunu bu bayt
üzerindeki bitler belirler. 0=beyaz ,1= mavi(negatif görüntü)
Şekil-7 :240x128 Grafik LCD'nin font modunun ekran üzerindeki
görünümü. Resimdeki metin aslında resim değil. Bloktaki bir metin,doğrudan
GLCD'nin ROM'undaki karakterleri kullanılarak ekrana yazıldı. Programa (Latin-5)
Türkçe karakter eklenmediği için metin içindeki diğer dillerde olmayan
karakterler Latin-1'e göre değiştirmek gerekti.
CD: Register seçme ; CD=1 komut registeri, CD=0 için veri registeri seçilmektedir.
RD:Okuma (RD=0 okuma) T6963C'den okuma
WR: Yazma (WR=0 yazma) T6963C'ye yazma
CE: Çip seçme (CE=0 çip seçme) LCD ile iletişimi ile ilgili tüm işlemlerde bu bacağın kullanımı şarttır.
DB: İki yönlü veri hatları. T6963C ile işlemci arasındaki tüm veri ve kontrol bilgisi okuma ve yazma bu hatlar üzerinden gerçekleştirilir.
RES:Sıfırlama (RES=0 T6963C sıfırlama)
FS: Font seçme FS=1 6x8 , FS=0 8x8 font.
Şekil-8 :Atmega32 kartının tasarlanırken mümkün olduğu kadar bu
grafik LCD bacak bağlantısı göz önüne alınarak tasarlardı. (küçük bir kaç hata
hariç) Bu nedenle 40 yollu yassı kablo ile kullanılabilmektedir. Sadece işlemci
kartı ve GLCD üzerindeki bağlantılar 20'li sıra pin yassı kablonun icindaki
konnektör 2x20 IDC dişi konnektördür.
Bacak No | Sembolü | Açıklaması |
1 | FG | Modül Çerçeve Şasesi |
2 | Vss | 0V |
3 | Vdd | +5V |
4 | Vo | Kontrast Ayarı |
5 | WR | Veri Yaz |
6 | RD | Veri Oku |
7 | CE | Çip İzni |
8 | CD | Komut/Veri Seçme |
9 | RST | Reset Sinyali |
10 | DB0 | Veri Biti 0 |
11 | DB1 | Veri Biti 1 |
12 | DB2 | Veri Biti 2 |
13 | DB3 | Veri Biti 3 |
14 | DB4 | Veri Biti 4 |
15 | DB5 | Veri Biti 5 |
16 | DB6 | Veri Biti 6 |
17 | DB7 | Veri Biti 7 |
18 | FS | Font Seç |
19 | LED+ | LED'in Anot uçu (+5V) |
20 | VEE | -16.5V çıkış |
Mikrokontroller barındıran sistemlerde ilk açıldığında hangi değerler alacağı belirlenemez, dolayısı ile sistemin kararlı bir başlangıç değerleri alabilmesi için sıfırlanması gerekir. Bu işlem RES bacağını 6 saat çevrimi süresince RES=0 yapılması gerekir. RES bacağı modül üzerindeki kontrollerin içinden 1'e çekilmiştir. Yani bacak boşta kalsa bile lojik-1 seviyesinde kalır. Dolayısı ile RESET işlemi için RES bacağının toprağa çekilmesi yeterlidir.
LCD modül üzerinde T6963C kontroller sistemi gerekli bellek fonksiyonlarını sağlamak üzere 8KBayt veya 32Kbayt bir bellek ile desteklenmektedir. Ayrıca modül üzerinde LCD ekranı sürmek için sürücü çipleride vardır.
LCD modül üzerinde kullanılan bellek adresleri olarak
- Metin adresi:0x0000
- Grafik adresi:0x0200
- CGRAM adresi:0x1400
Yani bir yazı yazdırmak istersek öncelikle 0x0000 adresini tanımlayıp bunu LCD ekrana göndermemiz gerekiyor. Aynı şekilde Bir Grafik şeklini ekrana göndermek için önce 0x0200 adresini tanımlayıp LCD ekrana göndermemiz gerekiyor.
Bir veriyi bir satıra yazmak için;
- LCD ekran veriyi 8 bit olarak kabul ettiğiniden iki tane 8 bit adres oluyor ve adres bilgisi LCD ekrana gönderiliyor
- LCD ekrana (0b00100100) adres işaretçisini ata komutu gönderiliyor
- LCD ekrana (0b10110000) otomatik yazma komutu gönderiliyor
- Kaç tane isteniyorsa ekrana veriler gönderiliyor
- LCD ekrana (0b10110010) otomati yazma komutu gönderiliyor.
Şekil-9 :240x128 Grafik LCD ve Atmega32 kartı ile oluşturulmuş
bir görüntü. GLCD üzerinde işlemci kartının PCB 1:1 görüntüsü.
Şekil-10 :240x128 Grafik LCD ve Atmega32 kartı ile oluşturulmuş
bir görüntü. Resimin sol tarafındaki yazılar metin modundadır,arka plan harita
ise resimdir.
Şekil-11 :Seçilebilecek ekran modları. (bit 7 - bit 4) 4 biti
sabit olmak üzere diğer 4 bit üzerinde yapılan değişiklikler ile ekran modları
seçilebilir. 0b10010000 veya 0x90 şeklinde girilirse ekran kapalı konumda
olur.
- 0b10000000 ; iç CG ROM OR
- 0b10000011 ; iç CG ROM AND
- 0b10000001 ; iç CG ROM XOR
- 0b10000100 ; iç CG ROM metin özellik modu
Metin gösterim modunda kullanılan önemli konuda: imleçtir. 0b1010000 komutu kullanılarak 1 satır imleç seçilmektedir.
- 0b1010000: 1 satır
- 0b1010001: 2 satır
- 0b1010010: 3 satır
- 0b1010011: 4 satır
- 0b1010100: 5 satır
- 0b1010101: 6 satır
- 0b1010110: 7 satır
- 0b1010111: 8 satır
Şekil-12 :İmleç modlarının görünümleri (imleç açık mavi ile belirtilmiştir)
imleç seçimine olarak tanımaktadır. Tabii ki imleç görünmesi için ekran modunda imleç görülecek şekilde seçim yapılması gerekmektedir.Tabii ki imlecin yanıp sönmesi için yine ekran modundan gerekli bitin seçinmiş olması gerekmektedir.
Not:GLD hakkında ayrıntılı bilgi için ürün veri kağıtlarına bakılması yerinde olacaktır. Bulabilirseniz
Devre
Devrede basitçe iki ana bölümü ayrılabilir. İşlemci kartıve grafik LCD . İşlemci kartı haricindekilerin fazla bir ayrıntısı yok.İşlemci kartı üzerinde besleme, işlemciyi süren Atmega32 var. Ekran ile işlemcinin bağlanması konnektör üzerinden yapılması planlansa da kartın yapılında bazı aceleye getirme sorunları nedeniyle kablo ile yapılması gerekti.(Kart farklı bir işlemci için tasarlandığında bacak bağlantıları farklı o yüzden kablo bağlantılarının T6963C için olan bağlantılar için dikkatli yapılması gerekmektedir.)
Şekil-13 :240x128 GLCD önden görünümü.
Şekil-14 :İşlemci kartınını ön ve arkadan görüntüsü (Kartın
arkadan görüntüsündeki beyaz kablo -16.5V VEE ucunun 10K trimpota bağlantı için
kullanılmaktadır. Verilen PCB üzerinde bu bağlantı düzenlenmiştir.)
Şekil-15 :Yassı kablo
Şema
Sistemin kalbini IC1 ile Atmega32 oluşturuyor. Aslında kristale gerek olmasada kesin zamanlama ihtiyacını karşılamak için XT1(3.6864MHz) kristal ile C6 ve C7 (27pF) kondansatörler ile birlikte işlemci için gereken zamanlama frekansını üretirler. R1 (1K) ve LED1 (LED) ile devrenin çalışmasını izlemek üzere kullanılsada bu bölümde ihtiyaç olmadığından devre dışı bırakılmıştır. R2 (150Ohm) ekran arkaplan aydınlatması akım sınırlama direnci olarak kullanılıyor. Kendi isteiğinize göre değerini ayarlayabilirsiriz. R3 (10K) trimpot GLCD kontrast ayarı için kullanılmaktadır. Grafik LCD ekran şemada gösterilmese de M1 konnektör bağlatısı üzerinden kablo ile bağlanmaktadır.Devrenin beslemesi P1 konnnektörü üzerinden D1 (W10M) köprü diyodu üzerinden IC2(7805)regüle edilerek devrelinin ihtiyacı olan beslemeyi oluşturur.
Belirtilmeyen geri kalan kondansatörler filtre amaçlıdır.
Şekil-16:Blok şeması
Şekil-17:Devre şeması (isp ve P1 haricindeki konnektörler
gösterilmemiştir)
Devre Yapımı
Şekil-17:Grafik LCD sürücü kartı ve buton kartı yollar
Şekil-18:Grafik LCD sürücü kartı ve buton kartı eleman
yerleşimi
Şekil-19:Grafik LCD sürücü kartı ve buton kartı yolları birlikte
eleman yerleşimi
Devre Elemanları
1K | R1 |
150R | R2 |
10K yatık trimpot | R3 |
27pF | C6,C7 |
100nF | C1,C2,C3,C5 |
10µF/25V | C4 |
3mm yeşil LED | LED1 |
ATMEGA32 (DIL) | IC1 |
7805 | IC2 |
W10M veya benzeri | D1 |
3,6864 Mhz kristal | XT1 |
2x3 Header (ISP6) | isp |
2'li klemens | P1 |
40 bacaklı entegre soketi (DIL) | - |
240x128 GLCD | M1 |
20'li sıra pin (2adet) | - |
40 yollu şerit kablo | - |
40 bacaklı şerit kablo için konnektör (2adet) | - |
Ekran Görünümleri
Şekil-20:Dünya haritası.
Şekil-21:Portre.
Şekil-22:Yunuslar.
Şekil-23:Penguen. Resmi kodlarken ekranın negatif gösterdiğini
unutunca resim haliyle biraz negatif çıkmış durumda.
Şekil-24:GLCD üzerindeki görüntü bu resim kullanılarak
üretilmiştir.
Şekil-25:Kış manzarası. Manzara resminden görüntü oluşturup
basmak için biraz yetersiz kalıyor.
Bilgisayar Programı
Bu projede kullanılan resimler doğrudan bitmap olarak tanımlanan siyah beyaz resimden kodlarak üretilmiştir. Bu elle yapılabilir tabi bunun için 240x128 matris alanını elle taramak anlamına gelir ki hata yapmaya son derece elverişlidir. Çözümü bilgisayar programı kullanmak. Bu amaç için C# üzerinde bu amaç için bir program yazılmıştır.
Şekil-26:İşlemci programı içine yeni resmi eklenmesi.
Şekil-27:Resim kodlama programı pencesi. (Yunus Balığı pencere ilk açıldığında gösterilen resimdir. Her açılan resim bir sonraki açılana kadar resim alanında kalır)
- Resmin gösterildiği alan 240x128 boyutlarında siyah-beyaz;
- Resim alanında gösterilen resim negatifini alır.
- Resim açmak için bir diyalog penceresi açar ve bmp formatındaki resmi 1 nolu resim alanına yerleştirir.
- Resim alanındaki resmi tarar ve TC6963C için bir veri tabanı kodu üretir. Kodu Atmel AVR asm koduna uygun olarak 6 nolu yazı alanına ekler.
- Bir diyalog penceresi açarak, 6 nolu alandaki kodu bir.asm uzantılı belge içine kaydeder. (sizin verdiğiniz isimle).
- Resimden üretilen veritabanı kodlarının yazıldığı, saklandığı ve görüntülendiği alan.
Atmega32 hakkında bilgi için
"Atmega32 işlemcisi ile 240x128 grafik LCD modülünü sürme" projesi için gereken dosyalar
Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....
Hiç yorum yok:
Yorum Gönder