Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

17 Nisan 2010 Cumartesi

EDMCPR6YOY LCD Ekran Sürülmesi


Giriş

Bir zamanların en çok kullanılan lazer yazıcılarından ömrünü tamamlamış olan HP LJ 4p modelinin sökülmesinden elde edilmiş olan LCD ekranı sürülmesi üzerinde çalışacağız. (Belirtilen her ürün kendi üreticisinin tescilli markasıdır)
Not:Sökülmesi zevkli ve bir o kadar kolay olan bir makinedir.
LCD Modül

LCD yazıcının ön panelinde buton kartı üzerine monte edilmiş halde bulunmaktadır. Çip ek bir kart üzerine takılmış olarak bulunmakta: MB624496. İnternet üzerindeki araştırma sonucunda bu entegrenin Fujitsu Microelectronics firmasına ürünü olduğu anlaşıldı (en azından tahmini). İşlev olarak CMOS kapı dizisi olarak tanımlanmış. Yani bacakları istenildiği gibi fonksiyon atanabiliyor. Dolayısı ile bu entegre hakkında fazla bilgi yok ama en azından tek başına buton, LCD ve LED kontrolu yaptığı devreden anlaşılıyor. Bağlantıları incelendiğinde öncelikle VCC ve GND bağlantıları devre üzerindeki elektrolitik kondansatörden bulundu. Bu sayede devreye enerji verilerek en azından sistemin çalışıp çalışmadığı bulunmuş oldu.(Çünkü LCD LED aydınlatmalı-5V uygulandığında arka plan aydınlatma çalıştı.)

Şekil-1 :EDMCPR6YOY LCD modülünün bağlı olduğu buton kartının önden görünümü.LCD bağlantı noktası 10 tane sıralı olarak kartın üstünde görülmektedir.


Şekil-2 :EDMCPR6YOY LCD modülünün bağlı olduğu buton kartının arkadan görünümü.


Şekil-3 :Buton kartının çipi.

Yazıcının çok eski olması nedeniyle ve LCD'nin ayrı bir kart üzerinde olması ile en azından piyasada satılan LCD modüllerden olduğu varsayımından gidilerek 4 bitlik LCD bağlantısı olduğu düşünülerek sistem oluşturuldu ve sistem çalıştı.

Şekil-4 :EDMCPR6YOY LCD modülünün önden görünümü.

Kart üzerinde PC-PR60J şeklinde bir yazı var. LCD 1x16 ekran şeklinde olduğu görülmektedir. LCD ekran RAM 0,1,2,3,4,5,6,7 şeklide devam ederken ikinci satır için kullanılan RAM bölgesine geçerek devam ediyor. Ekranın arkasındaki karta bakıldığında değişik bir yapı olduğu görülür. Bir entegre öncelikle bir karta monte edilmiş. Ve bu küçük kartta ana LCD modül kartına monte edilmiş. Bu küçük kart üzerinde SA-22950A (internetten) gibi bir kod var.

Şekil-5 :EDMCPR6YOY LCD modülünün arkadan görünümü.

LCD kart üzerinde EDMCPR5YOY yazılı bir etiket yapıştırılmış. Bağlantıları ekranın sağ alt tarafında yer alıyor. LCD için kart üzerinde kontrast ayar bağlantısı yapılmadan da çalışabiliyor. Ne de olsa yazıcı böyle bir ayar konulması biraz sorunlara sebep olabilir.

Şekil-6 :EDMCPR6YOY LCD modülünün çipinin yakından görünümü.

Not: internet üzerinde bu LCD'nin ve işlemcisi hakkında bilgi bulunamamıştır. Bazı forumlarda LCD hakkında bazı fikirleri var ise de laftan ibaret.

Şekil-7 :EDMCPR6YOY LCD modülünün bacak bağlantısı (en azından RW haricindekiler kesin).

LCD bağlı olduğu karttan söküldü ve ucuna 14p kablosu takılın bir şerit kablo ile bağlantısı yapıldı. Bu bağlantıda Vo, D0, D1, D2, D3 bağlantı kabloları boş bırakıldı. Geriye kalan Vcc, GND, RS, RW, E, D4, D5, D6, D7 bağlantılarını sağlayan kablo bağlantıları sağlandı. Sistem üzerinde LCD arka plan aydınlatması için ayrı bir bağlantı olmayıp doğrudan VCC-GND bağlantısı üzerinden sağlanmaktadır.

Bu LCD'nin kullanıldığı zaman dilimi düşünülecek olursa, birçok alet için ne yazık ki Türkçe desteği olmayan bir zaman dilimiydi. Asıl anlatılmak istenen konu, bu aletin karakter ROM'u üzerinde sadece Latin karakterleri var, ve bu karakterler karakter kodu girilerek erişilebiliyor. Karakter ROM'unda Ç,Ö,Ü,ç,ö,ü gibi karakterler var. (Aslında bu karakterleri kullanan başka diller olduğu için var). LCD incelemesi ile bu karakter kullanılabilecek şekilde LCD programına eklendi.

Ayrıca LCD sürücü çipi üzerinde Karakter RAM bölgesi ya yok, yada farklı bir çalışma şekli var. Bu nedenle programdan bu bölüm çıkartıldı.

RW kullanımı var olduğu üzerine hareketle 4-bit programlama üzerine hareket edildi. Ama program çalıştığı halde bu ekran RW kullanımı ile erişimi mümkün olmadı. (en azından başka LCD modüller üzerinde çalıştı)

Not: Belki bir başkası bu konuda başarılı olabilir veya olmuştur. (Farklı bir LCD sürücü çipi kullanılmış olabilir).
4 bit LCD bağlantısı

Bu tür bağlantılar özellikle işlemcinin bacak sayısı sınırlı olan projeler için oldukça kullanışlıdır. Aslında LCD ile işlemci arasında yine 8 bitlik iletişim vardır. Ama işlemci ve ekran arasında veri iletişimi 4-bitlik gruplar halinde yapılır. Yani veri 2 tane 4-bitlik veri grubu olarak gönderilir. 0x38 şeklinde bir verimiz olduğunu varsayarsak, önce 0x03 verisi gönderilir sonra 0x08 verisi gönderilerek veri aktarımı tamamlanır. (Ama bu projedeki işlemcinin üst 4-bitlik grubu kullanıldığından veri 0x30 ve 0x80 şeklinde gönderildiğini belirtmekte fayda var.)

Bu bağlantı şekli LCD ekranın ilk başlatma adımlarında gönderiler bir komut ile sağlanır.

LCD başlangıç kodlarının ilk 4 komut zaten alt 4-bitini gönderilmesi gerekmiyor. Çünkü alt 4 bit ne olursa olsun şeklinde bir tanımı var. Bu ilk 4 komuttan sonraki veri ve komutlar 8 bit (4bit+4bit) olarak gönderilmesi gerekiyor.

Verilerin 4 bit iletişimini saymazsak geri kalan işlemler aynı 8-bit ile yapıldığı gibi yapılır. Aynen başlama komutları, LCD düzenleme komutları, gereken gecikmeler, hane seçimi aynen 8-bitlik bağlantı şeklinde olduğu gibi yerine getirilir.

Aslında tahmini olarak RW bağlantısı olduğu varsayımı üzerinden 4-bitlik iletişim üzerinde gidilmeye çalışıldı, ama başarılı olamayınca "NEA02017 LCD Ekran Sürülmesi" projesindeki LCD mesguliyetine zaman tanıyarak geçiştirme yöntemi ile başarılı şekilde kullanıldı.

Daha fazla bilgi için LCD'lerin veri kağıtlarının ve diğer sitelerden örneklere ulaşabilirsiniz.
Devre

"NEA02017 LCD Ekran Sürülmesi" projesinde kullanılan donanım aynen bu proje içinde kullanılmıştır. Aslında bu projedeki kartlar iyi bir LCD modül sürücüsü oldu.

Şekil-8 :EDMCPR6YOY LCD modülüne kablo bağlantısı yapılmış halde. İşlemci kartı bacak bağlantılarına uygundur. LCD modül tarafında kesilmiş bağlantılar görülebilir.


Şekil-9 :Attiny2313 ile işlemci kartı.


Şekil-10 :RS232 seri kartı.

Şema

Sistemin kalbini IC1 Attiny2313 işlemcisi oluşturuyor. Bu işlemci için gereken saat sinyallerini XT1,C3,C4 oluşturuyor. D2,C7,C8 ve IC2 sistem için gereken besleme gerilimini (5V) üretir. R2,D1(LED) işlemcinin durumunu gösteren monitör LED'i olarak çalışır. R1 (C1) direnci kontrast ayarı için verilmiş olsada bu LCD modül üzerinde kullanılmamaktadır.

C10,C11,C12,C13 ve IC3 bilgisayar ile işlemci kartı arasında RS232 iletişimini düzenliyor. P4 DB9 seri port konnektörüdür. D3,R3 Aslında bu kart için kullanılsada, projede devrenin çalıştığını gösteren besleme monitörüdür.

Geri kalan kondansatörler zaten filtre için kullanılıyor. P1 LCD için bağlantı konnektörü, ISP işlemci için programlama konnektörü, P2 ve P2_2 işlemci kartı ve RS232 kartı arasındaki bağlantı için konnektördür.

Şekil-11 :LCD dönüştürücü blok şeması


Şekil-12 :Devrenin şeması

Devre Yapımı

Devre yapımı hakkında fazla bir şöylemeye gerek yok. Devre herhangi bir şekilde kurulabilir. Sadece farklı frekanslarda kristal kullanılırsa işlemci programının değiştirilmesi gerekir. En azından RS232 ve LCD ekran başlangıç işlemlerindeki zamanlayıcıların yeniden ayarlanması gerekir.

Kendi beslemesi olan ve kendine güvenen besleme devresi üzerinde değişiklik yapabilir. LED'ler ve bunlara bağlı dirençler(LED ve direnç birlikte)istenildiğinde takılmayabilir. Tabii ki kristal topraklanmalıdır. Sistem 9V besleme ile çok az akım çeker (LCD üzerindeki aydınlatma kullanmadığında) Bu nedenle 7805 üzerinde ek bir soğutucuya ihtiyaç duyulmamaktadır. Tüm dirençler çeyrek wattır. İsteyen RS232 kartı ile işlemci kartını birleştirerek P2 ve P2_2 konnektör bağlantısını iptal edebilir.

LCD modül için kullanılan bir alet üzerinden söküleceğinden, bu işlem sırasında dikkatli olmakta fayda var. Ayrıca kablo bağlantıları yapılırken uygun bacağa bağlandığına ve bağlantılar arasında kısa devre yapılmadığına emin olmakta fayda var

Şekil-13:Devrenin baskı devresi şekli(üstten görünüm)


Şekil-14:Devrenin yerleşim planı


Şekil-15:Kartın eleman ve yollarla birlikte yerleşim planı (Şemadaki D3 baskı devrede LED3 olarak gösterilmiştir)

Devre Elemanları

10K TrimpotR1
1KR2,R3
10µF/25VC1,C5,C7,C10,C11,C12,C13,C14
27pFC3,C4
100nFC2,C6,C8,C9
B125C1500 veya benzeriD2
Max232IC3
ATtiny2313IC1
7805IC2
3mm LEDD1,D3
3,6864Mhz kristalXT1
DB9 dişi konnektörP4
14P konnektörP1
10P konnektörP2,P2_2
KlemensP3
6'li headerisp
EDMCPR6YOY (1x16)LCD modül
10'lu kablo-

Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 20 ve 16 bacaklı soket oluşabilecek problemlerin önüne geçecektir.
Şekil-16:işlemci kartı ile RS232 kartı arasındaki bağlantıyı sağlayan kablo (konnektörleri ile birlikte)

Çalışması

İşlemci programlama için ekran takılmamalıdır. Sürekli programlayıcı devrede olmadığı için koruma öngörülmemiştir. Programlama ve sigorta ayarları tamamlandığı zaman besleme kesilir ve programlayıcı kablosu sökülür ve EDMCPR6YOY kablosu takılır. (Herşey tamamsa, ekranda bu tür ekranlar için kullanılmış olan test sayfası yer alacaktır).

Bu noktada alet seri port üzerinden bilgisayara bağlandığı göz önüne alınarak, bilgisayar üzerindeki "LCDEkran2x8.exe" programı çalıştırılır. Ayarlar bölümünden aletin bağlı olduğu port seçili olduğuna emin olunur.

Bu noktada hangi satıra ne yazılacağı artık kullanıcıya kalmıştır. Örneğin birinci satıra ismini yazarken, ikinci satıra tarih veya saat gösterimini seçebilir. İki buton seçeneği var. Eğer ekrandaki bilgi sürekli değişmeyecese sadece "LCD Ekrana Gönder" butonu kullanılabilir. Ama sürekli değeri değişen bir girdi(saat) varsa o zaman "LCD Ekrana Sürekli Gönder" butonu kullanılabilir.

Şekil-17:Proje çalışır halde


Şekil-18:Proje çalışır halde iken birkaç ekran mesajı:Açılış Ekranı, Saat ve yazılmış bir mesaj

Bilgisayar Programı

Bu devredeki işlemcide bir yazılım mevcut ama bu sadece işin yarısı. Diğer yarısını ise bilgisayardaki yazılım oluşturuyor. Yani bilgisayardaki yazılım ekranda ne gösterileceğini denetliyor. Tama ekran 1x16 görünümünde iken sistem olarak ele alındığında 2x8 gibi çalışıyor ve dolayısı ile işleri basit tutmak için kontrolu 2x8 olarak düzenlendi

Bilgisayar programı iki ana pencereden oluşuyor. Birincisi girdilerin yapıldığı ana pencere, diğer sadece port ayarını yapıldığı pencere

Ana pencere


Şekil-19 :Ana pencerenin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Birinci satır yazı alanı. Burada yazılan değer LCD ekran birinci satırda görüntülenir.(8 karakterle sınırlıdır)
  2. Birinci satır açılır menü şeklinde tanımlanan metin giriş türü vardır: Metin, saat, tarih, gün(haftanın günü) ve boş
  3. İkinci satır yazı alanı. Burada yazılan değer LCD ekran ikinci satırda görüntülenir.(8 karakterle sınırlıdır)
  4. İkinci satır açılır menü şeklinde tanımlanan metin giriş türü vardır: Metin, saat, tarih, gün(haftanın günü) ve boş
  5. LCD ekrana yazı alanlarındaki bilgiyi tek seferlik gönderir.
  6. LCD ekrana yazı alanlarındaki bilgiyi sürekli gönderir. (saat ve tarih sürekli güncellenir)
  7. LCD ekranı siler
  8. Seçenekler penceresini açar


Seçenekler


Şekil-20 :Seçenekler penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. LCD ekran seri port bölümünün bağlı olduğu portu seçilir. (bağladığınız porta dikkat.)
  2. Seçenekleri onaylar ve pencereyi kapatır



Ekler:

ATtiny2313 hakkında ayrıntılı bilgi için

EDMCPR6YOY LCD Ekran Sürülmesi için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

Hiç yorum yok:

Translate

Sayfalar

Etiketler

İzleyiciler