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.

15 Ocak 2010 Cuma

AVR309 ile USB-Seri LCD Sürülmesi


Gelişen günümüz teknolojileri ile birlikte bilgisayar çevre birimlerinde de ciddi gelişmeler yaşandı. Özelliklede bilgisayar ile çevre birimler arasındaki iletişimlerde. Daha 10 yıl öncesinde iletişim olarak paralel port ve seri port yer alırken, şu anda bazı bilgisayar ana kartları üzerinde bile yoklar. Bu günün yaygın iletişim yöntemi olarak USB bağlantılarını görmekteyiz. Bilgisayar çevre birim üretiyorsanız veya geliştiriyorsanız USB bağlantı ile iletişim kurmak bazı zorluklara sebep olabilir.

Burada Atmel firmasının uygulama notları arasında yer alan AVR 309 yardımı ile bir USB-LCD sürücüsünü anlatacağız. Bu Uygulama Notu içinde gerekli bilgiler, sürücü ve örneklerler ile açıklamalar yer almaktadır.

Not: internet üzerinde tek mikrokontroller ile yapılmış USB-LCD uygulamaları da mevcuttur.

Şekil-1 :Ekrandaki görüntü.

USB LCD

USB temelde içinde 4 tanel bağlantı kablosu ile bilgisayar ile çevre birimler arasında bağlantının gerçekleştirilmesini sağlayan iletişim yöntemidir. (en azından USB1.1 ve USB2.0 için) Bu kabloların 2 tanesi besleme +5V ve toprak ucudur. Geri kalan iki kablo ise veri iletişim kablolarıdır. Bu iletişimin nasıl yapıldığı konusunda internet üzerinde yapacağınız bir araştırma ile bulabilirsiniz.

Bu projede kullanılan USB-seri köprüsü "Yazılım Emülasyonu ile USB-Seri çevirici" (USB modülü) projesi üzerinde anlatılmıştır. Eklenen LCD modülü, LCD ekran ve bilgisayar ile USB modülü arasında iletişimi sağlayacak programın oluşturulmasıdır. Bilgisayar programı zaten AVR309.dll kütüphanesini kullanarak işin büyük kısmını halletmiş olacak.

USB modül ile LCD modül arasındaki bağlantı seri bağlantısıdır.(rs232 portunda kullanılan iletişim protokol) . Yani aralarında sadece 3 tane bağlantı var : Rx,Tx ve GND. LCD modülü olarak "FT232 ile USB-Seri LCD Sürülmesi" projesinde anlatılan LCD Modül devresi kullanılacaktır.

Her iki USB modülü ve LCD modülü bilindik projeler olduğundan (ilgili projeleri inceleyebilirsiniz) iş sadece bunları birbiriyle uyarlama gerekir.

Yaptığı işi şöyle özetleyebiliriz, bilgisayar üzerindeki program üzerinden gelen bilgilerin (USB bağlantısı) LCD ekran (karakter LCD ekran) üzerinde gösterilmesidir. Bu bilgiler MP3 player üzerindeki şarkı adı olabildiği gibi, işlemcinin kullanım bilgileri veya sabit diskin doluluk oranı da olabilir. Tabii ki fazla abartmayacağız sadece tarih ve saat gibi bilgilerle yetineceğiz.
USB üzerinden İletişim

Bu projede kullanılan sistemde herhangi bir USB ayarı mevcut değildir. Var olan ayar olarak Delphi üzerinde LCD modülün seri port iletişim hızı olan 9600 bps ayarıdır. Bu ayar doğrudan USB-Seri modülüne yüklenir. Geri kalan sadece verilerin USB-seri modüle göndermek ve oradan da LCD modülüne gitmesidir.

AVR 309 için gerekli örnekleri Atmel internet sitesinde bulabilirsiniz. Bu örnekleri kullanarak istediğiniz programlama dili üzerinden program geliştirebilirsiniz.

Şekil-2 :Kartlar ve bağlantıları.


Şekil-3 :AVR309 USB-seri modül ve LCD modül arasındaki bağlantı kablosu.

Şema

Aslında şemayı iki bölüme ayırmak gerekiyor. USB bölümü "Yazılım Emülasyonu ile USB-Seri çevirici" projesinde zaten anlatıldığı için o bölümü için ilgili bölüme bakılabilir. "Yazılım Emülasyonu ile USB-Seri çevirici" projesinin yaplımşı olduğunu varsayayıyoruz. LCD modülü için aslında aman aman bir durum yok. Temel düzeyde (iletişim bölümleri hariç) "RS485 (Seri) LCD Çevirici" ve "AVR Seri LCD Çevirci" projelerinde anlatıldı.

Devrede IC1 (ATtiny2313) işlemci seri port üzerinden gelen bilgiyi LCD ekran üzerine gönderiyor. Buna bağlı XTL1, C3 ve C4 işlemci için saat sinyalini üretiyor. R1 LCD ekranın kontrast ayarını sağlar. geri kalan kondarsatörler filtre için. ISP konnektörü işlemcinin programlanması için. R2 LED akım sınırlama direnci olmak üzere ve D1 LED için kullanılan sistem. IC2 5V regülatör olan 7805 D2 ise girişteki köprüdür. Geri kalan kondansatörler filtredir.

Besleme sadece LCD modül içindir. USB-seri modülü kendi beslemesi vardır, daha doğrusu doğrudan bilgisayardan beslenir.

Şekil-4:Blok şeması


Şekil-5:Devrenin şeması

Devre Yapımı

Devre yapımı sadece LCD modülü için anlatılacak. USB modülü için "Yazılım Emülasyonu ile USB-Seri çevirici" projesine bakılması gerekiyor. Öncelikle köprüleri ve dirençleri lehimle, sonra kondansatörleri. Konnektörleri tak,(entegre için dahil),sonra kristal ve LED tak. Kart üzerinde besleme için bölüm bulunsa da, besleme kullanılmamıştır..
Tüm dirençler çeyrek wattır.

Şekil-6:Devrenin baskı devre planı(eleman tarafından göründüğü şekilde)


Şekil-7:Devrenin yerleşim şekli


Şekil-8:Eleman ve yolların birlikte görünümü


Şekil-9:LCD Modülünün alttan görünümü


Şekil-10:USB-Seri Modülünün alttan görünümü

LCD Modülünün Devre Elemanları

10K TrimpotR1
1KR2
27pFC3,C4
100nFC2,C6,C8
10µFC1,C5,C7
Attiny2313IC1
7805IC2
B125C1500D2
3mm kırmızı LEDD1
3,6864Mhz kristalXTL1
10P erkek konnektörP2
14P erkek konnektörP1
6 bacak konnektörisp

Not:
1. Kartlar arası bağlantı kabloları eleman listesinde verilmemiştir.
2. LCD ekran ve bağlantı kabloları malzeme listesinde verilmemiştir. (şekil-3)
3. P3 9V bağlantı konnektörü malzeme listesinde verilmemiştir.

Şekil-11:USB-Seri Modülünün LCD modülü


Şekil-12:USB-Seri Modülünde kullanılan USB modül


Şekil-13:İki kartın bağlantı şekli

İki kartın bağlantısın belki konnektör yerine doğrudan kablolar ile yapmak isteyen olur veya iki kartı birleştirmek isteyen olabilir diye iki kart arasındaki bağlantı Şekil-13 üzerinde gösterilmiştir.
Bilgisayar USB kontrol programı

Bu bölüm açısından söyleyebileceğim AVR309.dll dosyasının uygulama programı ile aynı klasörde olması gerektiğidir. Veri göndermek için öncelikle seri iletişim hızının belirlenmesidir. Sonra gönderilecek verinin gönderilmesidir. LCD modülüne her bir satır için 1 satır kodu, 20 karakter yazılacak bilgi ve 1 satır sonu kodu(tüm satırlar için aynı). Alında bir satırın tüm bilgisi bir anda gönderilebilsede, burada her bir karakteri ayrı ayrı gönderiyoruz. (biraz yavaşlatacaktır)
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. Bilgisayardaki program Borland Delphi 7 ile yazıldı. (Neyse ki ücretsiz sürümü vardı)

Program birkaç ana bölümden oluşuyor.
  • Girdi-Yazı alanlarına girilen metni LCD ekrana yazar.
  • Metin-Metin bölümüne girilen veya kayıtlı bir metni LCD ekrana yazar.
  • Seçenekler-Program ve LCD ekranla ilgili ayarların yapıldığı bölüm.
  • Yardım-Temel düzeyde bilgilerin verildiği bölüm.


Girdi

Girdi penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Ekrandaki satırları temsil eden yazı alanları. Buraya girilen metin LCD ekranda gösterilir.
  2. 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. İşaretlendiğinde yazı alanlarına girilen metin LCD ekranda ortalanır.
  4. LCD ekrana yazı alanlarındaki bilgiyi tek seferlik gönderir.
  5. LCD ekrana yazı alanlarındaki bilgiyi sürekli gönderir. (saat ve tarih sürekli güncellenir)
  6. LCD ekranı siler
  7. Seçenekler bölümünü açar

Metin


Metin penceresinin görünümü


Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bu alandaki metin seçenekler bölümündeki ayarlara uygun olarak LCD ekrana gönderilir. Bu alana metin girişi yapılmaz ama değişiklik için satın seçilebilir.
  2. Seçilen satırda değişiklik veya yeni metin giriş alanı. Metin girişini onaylamak için enter'a bas.
  3. Kaydedilmiş metinler 1 nolu alana yükler.
  4. Metnin bulunduğu 1 nolu alanı kaydeder.
  5. Metin alanındaki bilgiler seçeneklere uygun olarak LCD ekrana gönderir ve durdurur.
  6. Metin alanını(1 nolu) siler.
  7. Girilmiş olan metni(2 nolu) metin alanındaki (1 nolu) metnin sonuna ekler.
  8. Metin giriş alanındaki karakter sayısını gösterir.
  9. LCD ekranı siler.
  10. Seçenekler bölümünü açar

Not: Bu bölüm tam bir metin düzenleme programı değildir. Sadece kısıtlı düzeyde metin girdi ve düzenleme işlevlerine izin verir

Seçenekler


Seçenekler penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. LCD ekran satır sayısı. Burada 2 ve 4 vardır.
  2. Metnin ekrana gönderim şeklini belirler. Satır satır kaydırarak veya Satırları grup olarak.
  3. LCD ekrana gönderilecek bilgi kaynağı. Girdi veya metin
  4. Metin halinde LCD ekrana gönderildiğinde LCD ekran bilgisinin yenilenme süresi
  5. Seçenekleri onaylar ve pencereyi kapatır


Bilgisayar ekranındaki saat değiştiğinde LCD ekranda görülen yeni saat değeri de yenilenir.

Ekler:

Attiny 2313 hakkında bilgi için

AVR309 ile USB-Seri LCD Sürülmesi için dosyalar- birleşik

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

13 Ocak 2010 Çarşamba

FT232 ile USB-Seri LCD Sürülmesi


Bilgisayar ile birçok yöntemle çevre birimler iletişim kurabilir. Seri port, paralel port. USB, ethernet, kızıl altı, fiber optik günümüzde giderek yaygınlaşan kablosuz bağlantılar gibi bir çok iletişim yöntemi var. Bunları arasında günümüzde en yaygın olanı USB kullanıcılar açısından kullanımı en kolayıdır diyebilirim. Bu projede bir FT232 USB-seri dönüştürücü yardımı ile karakter LCD karakter modülünü süreceğiz.

Not:USB-seri dönüştürücü modu üzerinden (sanal seri port) iletişim için doğrudan "RS485 (Seri) LCD Çevirici" ve "AVR Seri LCD Çevirci" projelerinde verilmiş olan bilgisayar programı kullanılarak LCD ekrana bilgi gönderilebilir. (Türkçe karakterlere dikkat)

Şekil-1 :Ekrandaki görüntü.

FT232

"FT232BL USB-Seri Dönüştürücü" projesinde bir FTDI Chip firmasının ürettiği FT232BL tümdevresi ile bir USB-Seri dönüştürücü gerçekleştirdik. Normalde sürücüleri yüklendiği zaman kendisi doğrudan bilgisayara sanal bir seri port atamakta ve bu port üzerinden modülün seri çıkışına bilgi gönderilebilmekte. Ama bu işlemin aslında bilgisayarın seri portuna bilgi göndermekten farkı yok.

Burada doğrudan herhangi bir seri port işlemi uygulamadan doğrudan FT232 çipine USB üzerinden göndereceğiz. Sonuçta bu aletin bir USB portuna bağlı olduğunu göz önünde bulundurursak, ve üretim amacının USB-seri köprüsü olduğunu düşünecek olursak pek ala mümkün. Bunun için zaten aletin sürücüleri yüklenirken birlikte yüklenen" D2XXUnit.dll" kütüphanesinden faydalanacağız. Bu kütüphane üzerinde USB üzerinden FT232 entegresi ile nasıl iletişim kurulacağı tanımlanmış durumda.

USB üzerinden İletişim

Her USB alet için bir isim, seri numarası tanımlanmıştır. Bizde USB modülümüzü yaparken bir seri numarası verdiğimizi ve bir isim atadığımızı varsayalım. USB modülü programlarken isim olarak "LCD USB Serial Converter" ve seri numarası olarak "FTSM7TG9"(bu programlayıcı program tarafından otomatik verildi) atandı. Bu bölüm önemli iki veya daha fazla USB alet taktığınız zaman (neyseki USB sürücüleri sadece FTDI firmasının ürettiği aletleri algılıyor) eğer düzgün seçemezseniz bilgisayar hangisi olduğunu ne yazık ki bilemeyecektir.

Bu noktada yapılacak tüm iletişimler öncelikle ya alet adı yada alet seri numarası üzerinden yapılması gerekiyor.

Şekil-2 :USB aletin seçilmesi.


Bu proje geliştirilirken hem Delphi hem de Visual Basic 6 üzerinde denendi. Öncelikle "D2XXUnit.dll" modülünü programınıza ekliyor ve bundan sonra kütüphanesindeki fonksiyonları kullanarak istenilen işlemleri yerine getiriyorsunuz.

İşlemci tarafında aslında temelde bir sorun oluşturmadan kod üzerinde fazla değişiklik yapılmadı (Türkçe karakterler ve eklenen LED hariç). Teorik olarak alete eklenecek RS232 köprüsü ile bilgisayar ile doğrudan iletişim kurabilir.

Yani alet için LCD modül ile USB modül bağlantısını sağla, LCD ekranın konnektörünü LCD modüle tak, USB modülü bir USB kablosu üzerinden bilgisayara bağla. Sonrası için bilgisayar USB modülü tanımladığında USB-seri LCD programını çalıştır. Eğer ilk defa takılıyorsa Seçenekler bölümünden USB aleti seç. Seçeneğini onayla ve metin giriş bölümünden göndermek istediğin metni gir ve gönder butonuna bas.

Şekil-3 :Kartlar ve bağlantıları.

Şema

Aslında şemayı iki bölüme ayırmak gerekiyor. USB bölümü "FT232BL USB-Seri Dönüştürücü" projesinde zaten anlatıldığı için o bölümü için ilgili bölüme bakılabilir. "FT232BL USB-Seri Dönüştürücü" projesinin yaplımşı olduğunu varsayayıyoruz. LCD modülü için aslında aman aman bir durum yok. Temel düzeyde (iletişim bölümleri hariç) "RS485 (Seri) LCD Çevirici" ve "AVR Seri LCD Çevirci" projelerinde anlatıldı. Dikkat edileceği üzere devre üzerinde besleme devresi yok. Yani devre beslemesini bilgisayar üzerinden alıyor. LCD ekranın arkaplan aydınlatılması kullanılmadığında bilgisayarın USB portu devreyi beslemeye yeterlidir. İsteyen kendi besleme kaynağını ekleyebilir.(USB modül üzerinden gerekli ayarları yaparak).

Devrede IC1 (ATtiny2313) işlemci seri port üzerinden gelen bilgiyi LCD ekran üzerine gönderiyor. Buna bağlı XTL1, C3 ve C4 işlemci için saat sinyalini üretiyor. R1 LCD ekranın kontrast ayarını sağlar. geri kalan kondarsatörler filtre için. ISP konnektörü işlemcinin programlanması için. R2 LED akım sınırlama direnci olmak üzere ve D1 LED için kullanılan sistem.

Şekil-4:Blok şeması


Şekil-5:Devrenin şeması

Devre Yapımı

Devre yapımı sadece LCD modülü için anlatılacak. USB modülü için "FT232BL USB-Seri Dönüştürücü " projesine bakılması gerekiyor. Öncelikle köprüleri ve dirençleri lehimle, sonra kondansatörleri. Konnektörleri tak,(entegre için dahil),sonra kristal ve LED tak. Kart üzerinde besleme için bölüm bulunsa da, besleme kullanılmamıştır..
Tüm dirençler çeyrek wattır.

Şekil-6:Devrenin baskı devre planı(eleman tarafından göründüğü şekilde)


Şekil-7:Devrenin yerleşim şekli


Şekil-8:Eleman ve yolların birlikte görünümü


Şekil-9:LCD Modülünün alttan görünümü


Şekil-10:USB-Seri Modülünün alttan görünümü

LCD Modülünün Devre Elemanları

10K TrimpotR1
1KR2
27pFC3,C4
100nFC2,C6,C8*
10µFC1,C5,C7*
Attiny2313IC1
7805IC2*
B125C1500D2*
3mm kırmızı LEDD1
3,6864Mhz kristalXTL1
10P erkek konnektörP2
14P erkek konnektörP1
6 bacak konnektörisp

Not:
1.* işaretli elemanlar LCD modül üzerine takılmamıştır.
2. Kartlar arası bağlantı kabloları eleman listesinde verilmemiştir.
3. LCD ekran ve bağlantı kabloları malzeme listesinde verilmemiştir.
4. P3 9V bağlantı konnektörü malzeme listesinde verilmemiştir.

Şekil-11:USB-Seri Modülünün bir görünümü


Şekil-12:USB-Seri Modülünde kullanılan LCD ekranlar

Bilgisayar USB kontrol programı

Bu bölüm aslında sadece yapılan programı tanıtmak amaçlı olsada yüzeysel olarak USB için bilgi verecek olursak,burada her satır için 20 karakter, 1 satır kodu, 1 satır sonu kodu olmak üzere 22 karakter gönderiliyor. Bu bilgi işin güzel tarafı bir defada gönderiliyor. Her karakter tek tek gönderilmiyor. USB üzerine blok olarak gönderiliyor.
    USB alet için, program adımları
  • aleti açıyor veya tanımlıyor,(alet seri numarası veya alet adı ile);
  • aletin seri port ayarlarını atıyor;
  • alete gönderilecek veri USB porta aktarılıyor;
  • USB kapatılıyor.

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. Bilgisayardaki program Borland Delphi 7 ile yazıldı. (Neyse ki ücretsiz sürümü vardı)

Program birkaç ana bölümden oluşuyor.
  • Girdi-Yazı alanlarına girilen metni LCD ekrana yazar.
  • Metin-Metin bölümüne girilen veya kayıtlı bir metni LCD ekrana yazar.
  • Seçenekler-Program ve LCD ekranla ilgili ayarların yapıldığı bölüm.
  • Yardım-Temel düzeyde bilgilerin verildiği bölüm.

Girdi


Girdi penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Ekrandaki satırları temsil eden yazı alanları. Buraya girilen metin LCD ekranda gösterilir.
  2. 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. İşaretlendiğinde yazı alanlarına girilen metin LCD ekranda ortalanır.
  4. LCD ekrana yazı alanlarındaki bilgiyi tek seferlik gönderir.
  5. LCD ekrana yazı alanlarındaki bilgiyi sürekli gönderir. (saat ve tarih sürekli güncellenir)
  6. LCD ekranı siler
  7. Seçenekler bölümünü açar

Metin


Metin penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bu alandaki metin seçenekler bölümündeki ayarlara uygun olarak LCD ekrana gönderilir. Bu alana metin girişi yapılmaz ama değişiklik için satır seçilebilir.
  2. Seçilen satırda değişiklik veya yeni metin giriş alanı. Metin girişini onaylamak için enter'a bas.
  3. Kaydedilmiş metinler 1 nolu alana yükler.
  4. Metnin bulunduğu 1 nolu alanı kaydeder.
  5. Metin alanındaki bilgiler seçeneklere uygun olarak LCD ekrana gönderir ve durdurur.
  6. Metin alanını(1 nolu) siler.
  7. Girilmiş olan metni(2 nolu) metin alanındaki (1 nolu) metnin sonuna ekler.
  8. Metin giriş alanındaki karakter sayısını gösterir.
  9. LCD ekranı siler.
  10. Seçenekler bölümünü açar

Not: Bu bölüm tam bir metin düzenleme programı değildir. Sadece kısıtlı düzeyde metin girdi ve düzenleme işlevlerine izin verir.
Seçenekler


Seçenekler penceresinin görünümü

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. LCD ekran satır sayısı. Burada 2 ve 4 satır seçenekleri vardır.
  2. Bağlı olan USB aletlerin listesi. Seçmek için tıkla.
  3. Seçili aletin Seri Numarası
  4. Seçili aletin Adı
  5. Bağlı aletlerin listesini yeniler.
  6. Metnin ekrana gönderim şeklini belirler. Satır satır kaydırarak veya Satırları grup olarak.
  7. LCD ekrana gönderilecek bilgi kaynağı. Girdi veya metin
  8. Metin halinde LCD ekrana gönderildiğinde LCD ekran bilgisinin yenilenme süresi
  9. Seçenekleri onaylar ve pencereyi kapatır


Bu bölümde LCD ekran ile ilgili ayarlar var. USB alet adı , USB alet seri numarası, LCD ekran satır sayısı gibi seçenekler seçilebilir.

Dikkat ilk defa çalıştırıldığında bu bölümde USB aletin seçilmesi gerekir. Seçilen alet programın ini dosyasında saklanır. Sonraki açılışlarda bu seçimin yapılması gerekmez.

Küçük Türkçe karaklerin denetimi ve doğru şekilde gösterimi yapılırken, ne yazık ki büyük harfler için aynı şeyi söylemek zor. Çünkü 7x5 matris alanı büyük harflerin oluşturulması için yetersiz kalıyor.


Film üzerinde; LCD modül LED sürekli yanar, USB-seri modül üzerindeki LEDler bağlantı durumunu gösterir.(iletişim durumunda yanar). Besleme bilgisayarın USB portu. Görüldüğü gibi saat satırı sürekli yenilenmektedir. (kaydın yapıldığı saatte). Bu her ekran bilgisi yenilendiğinde LED yanıp sönmektedir.
Ekler:
Attiny 2313 hakkında bilgi için

FT232 ile USB-Seri LCD Sürülmesi için dosyalar- birleşik

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


Translate

Sayfalar

Etiketler

İzleyiciler