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.

10 Eylül 2014 Çarşamba

FT232BL Bootloader USB-Seri Dönüştürücü

Giriş
Her ne kadar bu proje daha önce gerçekleştirilse de bootloader konusu ortaya çıkınca, USB dönüştürücü gerekliliği nedeniyle bu proje bootloader konusuna destek olarak yönlendirildi. Görüleceği gibi bu proje önceki DIP kılıf FTDI232BL projelerinin SMD kılıflı sürümü gibidir. Aslında bir yerde doğrudur.

Bu projede "FT232BL Bootloader USB-Seri Dönüştürücü" konusu incelenecektir.

FTDI232BL
Geniş bir uygulama alanında kullanılabilecek şekilde tasarlanan ürün, özellikle bilgisayarın USB portu ile işlemciler UART arasında (bu blog sayfalarında kullanılan ATMEL serisi gibi) bir köprü hizmeti vermektedir. 5V ile çalışan bir çok sistemde rahatlıkla ihtiyacı karşılayabilir.

Günümüzde artık pek çok 8 bitlik işlemciler üzerinde USB modülü bulunmaktadır. Ama Üzerinde USB portu bulunmayan işlemciler için FTDI232BL ve benzerleri elemanlar proje için işlemcinin USB bağlantı ihtiyacını karşılamak için gerekli bir öğe olacaktır.

USB portu şu anki durumda 1.1 ve 2.0 sürümlerinde sadece 4 kablo üzerinden çevre birimlerin bağlanmasına olana tanıyan bir iletişim sistemidir.(3.0 sürümünün farklı bir bağlantı şekline ve kablo sayısına sahiptir.) Değişik şekillerde bulunan bağlantı kabloları basitçe +5V,D+,D- ve GND uçlarından oluşan bir bağlantı içerir. USB portuna bağlanan çevre birim çektiği akım 500mA geçmediği sürece bilgisayar üzerindeki USB portundan beslenebilir. Eğer 500mA geçerse bu durumda bilgisayara zarar vermemesi için harici besleme sistemleri gerekir.
Şekil-1:USB 5V çıkış ayarlanmış köprü bağlantısı

Her ne kadar FT232 5V ile beslense de, üzerinde 3.3V için bir çıkış ucu mevcuttur. Gerektiğinde düzenlemeler yapılarak sistem 3.3V ile çalıştırılabilir. Bunun için FT232 üzerindeki VCCIO bacağına uygulanan 3.0 ile 5.25V arasındaki besleme gerilimine göre çıkışlar üzerindeki gerilim değerleri kontrol edilebilmektedir. VCCIO bacağına uygulanan gerilim seviyesinden;

BacakSimgesiDurumu
10SLEED#çıkış
11RXLED#LED sürücü
12TXLED#LED sürücü
14PWRCTLgiriş
15PWREN#çıkış
16TXDENgiriş
18RI#giriş
19DCD#giriş
20DSR#giriş
21DTR#çıkış
22CTS#giriş
23RTS#çıkış
24RXDgiriş
25TXDçıkış
bacakları etkilenmektedir.

D+ ve D- uçları ise iletişim uçlarıdır. Her iki yöndeki iletişim bu hatlar kullanılarak yerine getirilir. Şimdi bu alet USB1.1 veya USB2.0 olduğunu nasıl anlar. Aslında bunu çip üzerindeki bir parça değil de, D+ veya D- uçlarına bağlanmış bir direnç belirler.

D- ile +5V arasına eklenen 1K5 direnç USB1.1 belirler

D+ ile +5V arasına eklenen 1K5 direnç USB 2.0 olmasını sağlar.

Bunun anlamı eğer herhangi bir alet yokken bu bağlantıları yaparsanız bilgisayarınız doğrudan USB cihaz bulduğunu ama tanımlayamadığını belirtir. Çünkü bu USB tipini belirledikten sonra bilgisayar USB çevre birimle iletişime geçer ve ne olduğunu öğrenmeye çalışır.

Bu noktada dikkate alınması gereken D- ve D+ uçlarının lojik seviyesinin 3.6V civarında olduğunu unutmamak olur.
Devre
Devre zaten başlıktan anlaşılacağı üzere iki adet USB bağlantı ucu (D+ ve D-) var. Bu uçlar direnç üzerinden USB portuna bağlanabilir.

Devre üzerinde bazı ayarlamalar yapılacak ve saklanacaksa devreye bir EEPROM eklenme gerekir. Tüm devre üzerinde donanım olarak yer alan EEPROM sürücüsü sayesinde bu ihtiyacı çözecektir. Önerilen EEPROM çeşitli üreticiler tarafından üretilen 93C46,93C56 ve 93C66 ailesidir.

Seri port için ek kontrol bacakları (özellikle modem gibi araçlar ile iletişimde) ek kontrol olanakları sunacak şekilde eklenmiştir.

Seri port üzerinden iletişim yaparken bir şekilde bu iletişimin izlenmesi gerekir. Bunu olanak tanıyan iki adet LED bacağı var.

Tüm devre üzerinde kristal veya rezonatör bağlantısı mevcut. Üretici firma tarafından verilen örneklerde bu 6MHz olduğu görülür. Ama bu sizi yanıltmasın tüm devre içinde frekans çarpıcı devre var ve devre 12MHZ ve 48MHz iç sistemlerinde kullanılmak üzere üretiliyor.

FT232BL görüldüğü üzere 32 bacaklı bir yüzey montaj yapısında. Aslında internet üzerindeki birçok örnekte tüm elemanların (USB port hariç) yüzey montaj olacak şekilde örnekler mevcut. Ama devrenin bu şekliyle de çalıştığını söyleyebilirim. Bu tüm devrenin başka bacak bağlantı yapısına sahip sürümü yok

Bu devredeki kırmızı köprü ile belirtilen seçme bölümüdür. Bu köprü çıkışların 3.3V ve 5V arasında bir seçme imkanı tanıyacaktır. Yeşil ve mavi renkli köprülerin olduğu gibi kullanılmaları önerilir. Aksi durumu devre için harici besleme gerekecektir. Bu durum bu sistem için öngörülmemiştir.
Şekil-2:Kart üzerine köprülerin bağlantıları. Kullanılmakta olan projede devre 5V olacak şekilde ayarlanmıştır.

Şema
Devrenin kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 (27 Ohm) seri USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 (1k5) direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 ve R7 devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 (220 Ohm) dirençleri D1 ve D2 LED’lerinin akım sınırlama dirençleridir. D1 ve D2 LED’leri seri port iletişim monitörü olarak çalışır. R3 (10K) ve R4 (2k2) IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 (27pF)ve XTL1 ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 (RXD,TXD ve DTR uçları) programlama portu olarak kullanılmaktadır.. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. P4 ise 5V ve 3.3V arasında seçme içindir Her üçüde takılacak köprü yardımıyla kullanılabilir. Geri kalan kondansatörler ise filtre için kullanılıyor
Şekil-3:Blok şeması

Şekil-4:Devrenin şeması

Devrenin Çalışması
Devre üzerinde çalışma durumanda fazla bir ayar yok. Sadece P2, P3 ve P4 üzerindeki köprülerin konumu ayarlanması gerekiyor. Bu köprüler devrenin USB hattından mı, yoksa ayrı bir besleme üzerinden mi besleneceğini belirler.

Buradaki asıl marifet POWERCTL ucunda(P3):POWERCTL=1 ise harici beslemeli olur, POWERCTL=0 ise USB üzerinden beslenir
Şekil-5:Kırmızı köprülü bacak çıkış gerilimini ayarlamaktadır. Soldaki 3.3V için, sağdaki 5V içindir.

Devre Yapımı
Devrenin yapımına aslında her zaman direnç ve köprülerle başlanır. Ama bir değişiklik olarak yüzey montaj elemanları önce yapmak yerinde olabilir. Dikkatlice FT232BL yerine doğru olarak bacakları PCB üzerindeki yollara hizalanmış olarak sabitlenir ve sonra iki bacağı sabitlenerek diğer bacakları dikkatlice lehimlenir. Geri kalan elemanların takılmasında bir şey yok. Sadece lehimlerken soğuk lehim yapılmaması veya kısa devreye yol açabilecek durumlardan kaçınılması için dikkatli olmak yerinde olacaktır.

Şekil-6:Devrenin baskı planı(eleman yüzü tarafından görünüm)

Şekil-7:Devrenin yerleşim şekli

Şekil-8:Devrenin yerleşim şekli (SMD kılıftaki elemanlar).

Şekil-9:Devrenin yollarla birlikte yerleşim planı

Şekil-10:Devrenin yollarla birlikte yerleşim planı(SMD kılıftakiler)

Şekil-11:Kartın alttan ve üstten görünümü.

Eğer devrenin ayarlarında bir değişiklik yapılması düşünülmüyorsa köprü yerine doğrudan tel lehimlenebilir. Bu şekilde köprülerin kaybolması veya biri tarafından kurcalanma riski ortadan kalkar
Şekil-12:İşlemci kartı ile bağlantı için kullanılacak şerit kablonun bağlantı şekli.

Devre Elemanları
27R (SMD-1206)R9,R10
220R (SMD-1206)R1,R2
470R (SMD-1206)R5
1k5 (SMD-1206)R8
2k2 (SMD-1206)R4
4k7 (SMD-1206)R6
10K (SMD-1206)R3,R7
27pF (SMD-1206)C1,C2
100nF (SMD-1206)C3,C4,C5,C7
Kırmızı LED (SMD-1206)D2
Mavi LED (SMD-1206)D1
FT232BLIC1
93C46 (SO8)IC2
6Mhz kristalXTL1
10 HeaderP1
USB-B konnektörUSB-A
3 bacak sıra pinP2,P3,P4
köprü3 köprü(jumper)
IDC101 adet
10'lu şerit kablo1 adet

Program
Bu noktada bilinmesi gereken şey, gerekli sürücü EEPROM programlayıcı ve devre ile ilgili örnekler için FTDI Chip firmasının internet sitesi size yardımcı olacaktır.

Bir USB alet tek başına doğrudan bilgisayara bağlanmaz, yani bilgisayar için sürücü gerekir. Devreyi bilgisayara bağladığınızda zaten bilgisayar durumu algılar ve sürücü yüklenmesi konusunda size uyaracaktır ve sizden sürücüleri isteyecektir. Siz bu sürücülerin yerini belirledikten sonra bilgisayar sürücüleri yükleyecek, USB alet olarak tanıyacak ve seri port bölümüne alet için bir port ekleyecek.

İsteyen FTDI sitesinden elde edebileceği programlayıcı program ile aletin ismi ve seri numarası ve birkaç seçeneği ayarlayıp devreye yükleyebilir.

Şekil-13:Klavye-seri dönüştürücü devresi için oluşturulmuş metin düzenleme programı

Şekil-12 EEPROM programlamak için yapılan düzenlemeler için bir örnek göstermektedir. Burada USB alet için özel bir isim ve seri numarası atandığı görülmektedir. Bu kısım özellikle birden fazla aynı özellikli USB aletin takıldığı bilgisayarlarda neyin ne olduğunu belirlemek açısından önemlidir.

Yani iki tane alet bilgisayara takıldığında seçilen USB cihazın hangisi olduğunu belirlemek için gereklidir. Özellikle USB üzerinden doğrudan kontrol ediliyorsa..
Şekil-14: Bilgisayara takılan USB-seri dönüştürücünün "Aygıt Yöneticisi" üzerinde belirlenmesi

Bu proje üzerinde doğrudan bir program verilmeyecektir. Programlar kendi uygulama özelliği olan devreler ile verilecektir. FTDI Chip internet sitesinden bu devre için gerekli sürücü ve programlara erişilebilir.


Ekler:

FT232BL için bilgi

"FT232BL Bootloader USB-Seri Dönüştürücü" için gereken dosyalar.

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


11 Ağustos 2014 Pazartesi

Atmega128 ve T6963C Grafik Kontroller İçeren 240x128 GLCD ile Saat


Zaman konusundaki güncel hayatımızda kullandığımız en basit araç saattir. Değişik yöntemlerle ve yollarla ölçülebilen zaman, elektronik uygulamalar ile de gerçekleştirilmesi oldukça basitleştirilmiştir. Her ne kadar asıl amacımız GLCD sürülmesi konusu.

Bu projede "Atmega128 ve T6963C Grafik Kontroller İçeren 240x128 GLCD ile Saat" uygulaması gerçekleştirmeye çalışacağız.

Saat
Şekil-1 :Zaman ölçümünde kullanılmış ve kullanılan saat modelleri

İnsanlar zamanın ölçülebilir bir büyüklük olarak ele alınabilir bir kavram olarak algılamaya başladığından beri değişik yöntemlerle zamanı ölçmeye çalışmıştır. Kendi zamanının teknikleri kullanılarak, mum, güneş, kum, ip yakma, su saati gibi bir çok yöntemle zamanı ölçmeye çalışmış, insanların mekanik alanındaki ilerlemeleri ile saat mekanik örnekleri oluşturulmuş, daha sonra elektroniğin gelişimi ile de, günümüz elektronik saatleri ortaya çıkmıştır.

Saat kavramını saniye, dakika ve saat olarak ele alabiliriz.

Saat konusunda son gelişmeler atom saatlerini ortaya çıkarmıştır ki, saniye olarak Sezyum-133 izotopunun rezonansının (iki radyasyon salınımı) kez  9.192.631.770 sayılmasına eşit olduğa karar verilmiştir. Tabii bu nokta Sezyum'un 0 K sıcaklıkta olma durumuna göre belirtilmiştir. Günümüzde lazer destekli atom saatleri kullanılmaktadır.

Saat konusunda, 1 gün=24 saat, 1 saat=60 dakika ve 1 dakika=60 saniye olarak ölçeklenmiştir. Saniyenin alt katları da mevcut ise de günlük kullanımda yer almaz. Hatta çoğu durumda saniye bile pek kullanılmaz.

T6963C Grafik LCD
Ölçülen bir büyüklüğün gösterilmesinde (kullanıcının anlayacağı şekilde yansıtılması) çeşitli yöntemler vardır. Bunlardan biri de grafik LCD'dir. Düşük enerji harcaması sayesinden birçok cihazın yapılmasına imkan tanımıştır. Özellikle düşük enerji gerektiren taşınabilir el tipi cihazlar.

Sıvı kristal teknolojisine dayanan sistemde, bir iki elektrod arasındaki sıvı kristalin elektrik alanı etkisi ile konum değiştirmesine bağlı görüntü oluşturulur. Burada 240x128=30720 pikselli bir görüntü alanı oluşturur. Neyse ki matris sürme tekniği sayesinde daha az bacak ile LCD sürülmesi sağlanmıştır.
Şekil-2 :GLCD üzerinde işlemciden gelen bir verinin yerleşimi...
Projede kullanılan GLCD 240x128 piksel çözünürlüğü sahip, T6963C grafik kontroller içeren mavi filtreli, negatif gösterime sahip,beyaz arkaplan aydınlatmalı bir üründür.

Veri iletişimini 8 bitlik paralel veri yolu üzerinden yapmaktadır. Kontrol uçları ile veri yönü, tipi gibi denetimler sağlanmaktadır. Her piksel 1 bitlik bir ver alanı kapsadığından 30720/8=3840 bayt'lık veri alanına denk düşer. Bu ya daha düşük kapasiteli bir işlemci kullanıp harici RAM kullanarak çözülecek ya da doğrudan yüksek kapasiteli işlemci seçilerek. Projede Atmega128 gibi (diğer özelliklerde sıkıntı olmadığından) 4Kbayt ram kapasitesine sahip olduğu için seçilmiştir.
Bacak NoSembolüAçıklaması
1FGModül Çerçeve Şasesi
2Vss0V
3Vdd+5V
4VoKontrast Ayarı
5WRVeri Yaz
6RDVeri Oku
7CEÇip İzni
8CDKomut/Veri Seçme
9RSTReset Sinyali
10DB0Veri Biti 0
11DB1Veri Biti 1
12DB2Veri Biti 2
13DB3Veri Biti 3
14DB4Veri Biti 4
15DB5Veri Biti 5
16DB6Veri Biti 6
17DB7Veri Biti 7
18FSFont Seç
19LED+LED'in Anot uçu (+5V)
20VEE-16.5V çıkış
Yukarıda projede kullanılan 240x128 GLCD bacak bağlantıları verilmiştir.

Devrenin çalışması
Şekil-3 :Ekran arkaplan resmi. Diğer öğeler bu resim üzerine eklenir.

Devredeki tüm denetimler Atmega128 tarafından yürütülmektedir. Devreye besleme verildiğinde öncelikle arkaplan resmi ekran için ayrılmış RAM alanına taşınır. Bundan sonra ayraç noktaları bu veriye eklenir. (Bu sabit resimdir) saat, dakika ve saniye değerlerine göre RAM üzerine eklenir. Ve değerler güncellendikçe sadece rakamlar değişir.

Harici bir gerçek zaman saati çip kullanılmadığı için, saat, dakika, saniye sayma işlemleri Atmega128 üzerinde gerçekleştirilmektedir. Atmega 128 üzerindeki Timer 1 yardımı ile 1 saniyelik kesmelerle 1 saniye sinyali üretilmektedir. Saat, dakika ve saniye sayma işleminden sonra elde edilen değerler bir sonraki aşamaya taşınır.
Şekil-4 :Saati göstermek için kullanılan rakamlar. Üstteki rakamlar ile alttaki rakamlar P1 üzerinde köprü (jumper)ile seçilmektedir.Takılırsa üsttekiler, takılmazsa alttakiler seçilmektedir.

GLCD üzerideki görüntü elde edilen saat, dakika ve saniye değerlerine göre işlemcinin üzerindeki RAM alanında oluşturulmakta ve görüntü oluşturma işlemi tamamlandıktan sonra Grafik LCD üzerine gönderilmektedir. Devre çalıştıkça (zaman değerleri değiştikçe) sadece rakamlar güncellenir ve ekrana gönderilir.
Şekil-5 :Ekran üzerindeki öğelerin yerleşim sıralaması.1,2 ve 3 nolu öğeler ekran ilk açıldığında yerleşir ve sonra hep sabit kalır. 4,5,6,7,8,9 saat değerine göre sürekli güncellenir. Tabi bu işlem öncelikle Atmega128 RAM alanı üzerinde gerçekleştirilir ve bütün olarak ekran güncellenir.

Devre üzerindeki P1 konnektörün ekranda gösterilen rakamların seçilmesini bir köprü yardımı ile sağlar. Ekran güncellemesi saat sayma aşamasında yerine getirilir. (En fazla 1 saniye sürer)
Şekil-6 :P1 köprüsünün ekran üzerindeki etkisi. Üstteki resimde P1 köprü takılı. Alttaki resimde P1 köprüsü takılı değil. (köprü mavi renkte)

İki adet buton saat ve dakika ayarı için kullanılır. Projede kullanılan butonlar ışıklı, devre butonlar kullanıldıkları zaman ışık verecek şekilde düzenlenmiştir.

Devre şu hali ile 70mA civarında bir akım çekmekte. Değiştirilecek elemanların (özellikle besleme) bu akımı taşıyacak kapasitede olmasına dikkat etmek gerekir.

Şekil-7 :S1 ve S2; saat ve dakika butonları.Biraz özel bir yapı olması dileği ile ayar butonları ışıklı seçildi. Hem ayar yaparken ışık verirler (hangisine basılmış ise) hemde saniye başında kısa bir süre yanıp sönerler. Sağdaki saat ayarı, soldaki dakika ayarı.

Devre
Devre basitçe ,işlemci (saat sayma dahil ) tüm denetimleri yerine getirir, 240x128 GLCD, besleme bölümü ve buton bölümünden oluşmaktadır.

İşlemci kartı aslında farklı bir proje için oluşturulduğundan buton bağlantıları biraz dağınıktır. Havya ve bir parça lehimin çözemeyeceği bir şey değil.

İşlemci kartı ile GLCD uçlarında IDC 40 dişi konnektör takılı yassı kablo ile bağlantısı sağlanmaktadır. Ekran ve işlemci kartı üzerinde 20 bacak sıra pin yer almaktadır. IDC'nin doğru sırasının takılı olduğundan emin olun. Çünkü sadece 1 sırası aktif olarak çalışmaktadır. İşlemci kartı üzerine 2x20 şeklinde bir sıra pin takılacak şekilde düzenlenirse bu sorun kalmaz.
Şekil-8 :İşlemci kartının ve buton kartlarının arkadan görünümü

Şekil-9 :Projede kullanılan T6963C grafik kontroller barındıran 240x128 GLCD

Şekil-10 :İşlemci kartı ile GLCD arasında bağlantıyı sağlayan kablo

Şekil-11 :Tüm bağlantıları tamamlanmış proje.Yassı kablo uzun olduğu için katlayıp halka lastik ile sabitlenmiş halde görülmektedir.

Şema
Devre IC1 (Atmega128) üzerine kuruludur. İşlemcinin osilatör için harici kristal XT1 (8MHz) ve C5 ve C6 (27pF) kondansatörler ile saat sinyali üretimini yerine getirmektedir.

P4 (besleme girişi), D1 (DF10M) köprü (kendisi aslında SMD değildir, bacakları biraz bükülerek SMD haline getirilmiştir), ve IC2 (7805) devre için gereken 5V besleme gerilimini sağlar.

R1 (10k) trimpot GLCD için kontrast ayarıdır ve GLCD ile kart arasındaki bağlantı P2 konnektörü üzerinden sağlanmaktadır. R7 (120 Ohm) GLCD arkaplan aydınlatması için akım sınırlama elemanı olarak kullanılmaktadır.

S1 ve S2 (ayar butonları) R8 ve R9 (10k) pull-up dirençleri üzerinden işlemciye bağlanmıştır. Butonun içinde yer alan şemada DS1 ve DS2 LED'dir. LED'ler bağlı R10 ve R11 (470R) LED'ler için akım sınırlama elemanı alarak iş görür.

Not: Bu tür buton bulunamadığı takdirde normal buton kullanılabilir.

Geri kalan kondansatörleri filtre amaçlıdır.

PCB üzerinde gösterilen P3,R3,R4,R5,R6 bu projede kullanılmamıştır.
Şekil-12:Blok şeması

Şekil-13:Devre şeması (projede kullanılmayan elemanlar gösterilmemiştir)

İşlemci bacağıProgramlayıcıAçıklaması
PE0MOSISeri veri girişi
PE1MISOSeri veri çıkışı
PB1SCKSeri saat
Atmega128 ISP programlama bacakları SPI iletişim bacaklarından farklı bacaklar üzerine atanmıştır.(SCK hariç) Bu nedenle PCB kendi çizeceklerin bu konuya dikkate almaları gerekmektedir.

Devre Yapımı
Devre yapımı konusunda işlemcinin durumunu saymazsak pek bir şey yok. Çünkü buradaki ön önemli konu işlemcinin lehimlenmesi. TQFP kılıfında olmasından dolayı işlemciyi lehimlemek biraz tecrübe gerektirecek.

Diğer SMD elemanları olan direnç ve kondansatörler 12/6 kılıfında olduğu için o kadar zor değildir. Zorlarsa biraz 7805 zorlayacaktır. Hatta iyi bir şekilde lehimlenmezse kararlı bir besleme elde etmekte zorlanabilirsiniz.

DF10M aslında SMD değil ama bacaklarını biraz eğip bükerek SMD haline getirildi. İsteyen uygun bir SMD köprü diyodu da kullanabilir..
Şekil-14:Grafik LCD sürücü kartı ve buton kartı yollar

Şekil-15:Grafik LCD sürücü kartı ve buton kartı yerleşimi

Şekil-16:Grafik LCD sürücü kartı bakır ve buton kartı yolların olduğu taraftaki elemanların yerleşimi

Şekil-17:Grafik LCD sürücü kartı ve buton kartı yolları ve yolların olduğun taraftaki yollarla birlikte eleman yerleşimi

Şekil-18:Grafik LCD sürücü kartı ve buton kartı yolları birlikte eleman yerleşimi

Şekil-19:İşlemci kartı ve buton kartı arasındaki kablo bağlantıları

Şekil-20:Montajı ve bağlantıları yapılmış sistemin arkadan görünümü

Şekil-21:Buton kartının arkadan kabloları ile birlikte

Şekil-22:Karta lehimlenmiş Atmega128 (buton kartından gelen kablolarla birlikte)

Devre Elemanları

120R (1206)R7
470R (1206)R10,R11
0R (1206)J1,J2
10K (1206)R2,R8,R9
10K yatık trimpotR1
27pF (1206)C5,C6
100nF(1206)C2,C3,C4,C7,C8,C9,C10,C11,C12,C13
10µF/25V (1206)C1
ATMEGA128 (TQFP)IC1
7805 (D2PAK)IC2
DF10MD1
8 Mhz kristalXT1
2x3 Header (ISP6)isp
2'li klemensP4
240x128 GLCDM1
12X12 LED ışıklı butonS1,S2
20'li sıra pin (2adet)- (P2)
40 yollu şerit kablo-
40 bacaklı şerit kablo için konnektör (2adet)-
Besleme için 9V'luk adaptör,belirtilmemiştir, isteğe göre kablo kullanılabilir. P5 için PCB üzerinde konnektör belirtilmiş ise de, kart üzerine doğrudan kablo lehimlenerek de bağlantı sağlanabilir.

Ekran Görünümleri
Şekil-23:P1 takılı değilken.

Şekil-24:P1 takılı iken

Şekil-25:Atmega128 için sigorta ayarları. Elimde sadece AVR Studio ile ilgili ayarlar olduğu için bunu verebiliyorum. Butonların hemen üzerindeki alanda yer alan hex sayıları kullanarak kendinize göre uyarlayabilirsiniz.

Şekil-26:Timer1 ayarı için kullanılan programın penceresinin ekran görüntüsü.



Ekler:

Atmega128 hakkında bilgi için

"Atmega128 ve T6963C Grafik Kontroller İçeren 240x128 GLCD ile Saat" projesi için gereken dosyalar

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


12 Temmuz 2014 Cumartesi

Atmega128 ve LM35 ile T6963C kontroller bulunan 240x128 GLCD termometre

Giriş
Bu projede termometre veya LM35 kullanımından ziyade T6963C kontroller barındıran 240x128 grafik LCD'nin ATMEGA128 ile sürülmesini sağlamaktı. KS108 kontroller barındıran GLCD'lerden farklı bir yapıya sahip olduğu için sürülmesi biraz farklı bir yaklaşık gerektiren 240x128 GLCD daha önceki blog sayfalarında anlatıldı.

Bu projede "Atmega128 ve LM35 ile T6963C kontroller bulunan 240x128 GLCD termometre" konusu işlenecektir.
LM35
Şekil-1 :Sıcaklık algılayıcı olarak kullanılan LM35. Besleme bacakları arasına eklenen 100nF kondansatör ile birlikte. (Şema ve PCB üzerinde bu kondansatör gösterilmemiştir.)

İnternet üzerinde bir çok örnek ve uygulama bulunabilen LM35 bilindiği gibi analog olarak çıkış bacağından sıcaklığa bağlı olarak bir gerilim veren bir entegredir. 4V ile 20V aralığında beslede çalışabilen entegre 10mV/C ölçek çarpanına sahiptir. Normalde çıkış ucu ile GND ucu arasına (Besleme verilmek şartı ile) bağlanan bir voltmetre ile de değer okunabilir.
Şekil-2 :LM35 test devresi. Besleme 9V (kırmızı ve siyah krokodil) Ölçü aleti; sarı (çıkış) siyah (GND) krokodil. Ekranda ortam sıcaklığı ölçümü. Multimetre 2V kademesinde olduğu için hali ile noktanın yeri önemsenmeyecek. Sağdaki ilk hane bizim ondalık hane olarak ele alınacak. (Ortam sıcaklığı 27.6 C)

T6963C Grafik işlemcisi
Toshiba tarafından üretilen T6963C Grafik işlemcisi kendine özgü bazı özellikler taşımaktadır. T6963C grafik işlemcisi piyasada yaygın olarak kullanılan S6B0108 veya eşdeğer grafik işlemcilerinden biraz farklı özellikler içermekte. En azından bu projede kullanılan 240x128 grafik LCD için tek sayfa olarak düzenlenmiş. Yani ekrana yazılan her bilgi sayfa seçmeden doğrudan ekrana gönderilebiliyor.

Şekil-3 :240x128 Grafik LCD'nin ekran veri yerleşimi

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.

Grafik açısından satırlar bir bitlik bir yapıdadır. Ama sütunlar 8 bit veri içerecek şekilde gönderilmekte. Dolayısı ile ekrana gönderilecek veri bir satıra 30 bayt ve 128 tane de satırı olduğu sonucu çıkarılır. Ekrana grafik verinin tümünü gönderdiğimizi düşünürsek bu 3840 bayt edecektir. Atmega128 seçilmesinin neden oluyor ki, Atmega128'in ram kapasitesi 4kbayttır.

Grafik verisi için ayrılan RAM başlangıç adresi 0x0200 olmaktadır.

Projede düşünülen nokta ekranın her değişikliğinde tüm ekranın güncellenmesi idi. Şu şekilde ekran ile fazla iletişik kurmadan sadece gerektiği noktada yani görüntünün ekrana gönderilmesi noktasında iletişim kurulması idi.

Bu iş için ekran görüntüsü için gereken 3840 bayt'lık bir RAM alanına ihtiyaç var. Tabi çözüm olarak Atmega 16 veya Atmega32 kullanıp yanına harici RAM eklemek olabilir. Bu hem işlem miktarını artıracak, hemde kendine göre sorunlar ortaya koyacaktır. Devrenin basit tutulması adına en iyi çözüm 4Kbayt dahili RAM'ı olan Atmega128 kullanmaktır. Her güzel de olduğu gibi kusur sayılırsa, tek kusuru SMD yapısında olması.(DIP sürümünün bulunmamasıdır)

Bacak NoSembolüAçıklaması
1FGModül Çerçeve Şasesi
2Vss0V
3Vdd+5V
4VoKontrast Ayarı
5WRVeri Yaz
6RDVeri Oku
7CEÇip İzni
8CDKomut/Veri Seçme
9RSTReset Sinyali
10DB0Veri Biti 0
11DB1Veri Biti 1
12DB2Veri Biti 2
13DB3Veri Biti 3
14DB4Veri Biti 4
15DB5Veri Biti 5
16DB6Veri Biti 6
17DB7Veri Biti 7
18FSFont Seç
19LED+LED'in Anot uçu (+5V)
20VEE-16.5V çıkış
Yukarıda projede kullanılan 240x128 GLCD bacak bağlantıları verilmiştir.

Devrenin çalışması
Şekil-4 :Ekran arkaplan resmi. Diğer öğeler bu resim üzerine eklenir.

İşlemci çalışmaya başladığı zaman önce arkaplan görüntüsü RAM için ayrılmış alana aktarılır. İşlemcinin RAM başlangıç adresi 0x0100'dür. Her ne kadar nokta ve Derece işaretleri de arka plan görüntüsü üzerine gömülebilirse de, işi fazla dallandırıp budaklandırmamak için ayrı bir veri olarak işlemci üzerindeki RAM alanına ayrı bir veri olarak eklenmekte ve ilk açılıştı ADC ölçümü henüz yapılmadığı için hali ile 000.0 şeklinde bir veri de ekrana yazılır. Tek farkla soldaki iki sıfır gizlenir.Tüm bu veriler RAM'e aktarıldıktan sonra RAM'deki veri GLCD ekrana aktarılır.
ekil-5 :Ekran üzerinde sıcaklığı göstermekte kullanılan rakamlar (Tahoma 60pt).

Başlangıçta ayarlanmış olan Timer1 belirli bir zaman sonra bir kesme üretip bir bayrağı tetiklediğinde, ADC grubunun ADC7 bacağına bağlı olan (PF7) LM35 çıkışı ADC tarafından okunur. Bilindiği üzeri ADC 10 bitliktir. Referans gerilimi olarak iç refrans gerilim 2.56V olarak ayarlanmıştır. (LM25 çıkışı 2.56V üzerine çıkamayacağı için)Alınan veri sıcaklık verisi olarak hanelerine ayrıştırılır ve her hane belirlenmiş RAM bölgelerine hangi rakama karşılık geliyorsa o şekilde yazılır. Son olarak RAM'de oluşturulan görüntü GLCD'ye aktarılır. Bu işlem timer1'den kesme geldikçe tekrarlanır. Ekrana veri aktarımı ve görüntünün RAM üzerinde hazırlanması zaman aldığı için çok hızlı değildir.
Şekil-6 :Verilerin ekran üzerine (işlem RAM) üzerine yerleşim sıralaması). 1,2 ve 3 (arkaplan, nokta ve derece santgrad işaretleri) sistem ilk açıldığında RAM üzerine aktarılır, sonraki aşamalarda, sadece 4,5,6 ve 7 (rakamlar) sürekli olarak güncellenir.

RAM üzerinde sadece rakamların hazırlandığı bölüm ekrana aktarılırsa görüntü güncelleme hızı artırılabilir. Bu program karmaşıklığını artıracağı kesindir.

T6963C grafik ekran kontroller sistemindeki yapı işlemciden gelen verilerin ekrana yatay yerleşmesidir. Bu nedenle ekrana gönderiler rakamların yerleşiminde 8 piksellik bloklar halinde yerleşme zorunluluğu vardır. Bu nedenle karakterlerin boyutları ve yerleşimi konusunda dikkatli olmak gerekir.

Şekil-7 :Sistem ilk çalıştığında ekranda gösterilen değer.

Başka bir proje olarak okunan sıcaklık değerinin ekran üzerinde grafik olarak gösterimi olabilir.

Devre
Devre üzerinde fazla bir şey yok. GLCD, GLCD kontrast ayarı için bir trimpot,işlemci atmega128 , kristal,besleme için7805 ve DF10M köprü diyotu var .İşlemcinin istenilen kapasitede RAM'a ve çevre birimlere sahip olması devreyi basitleştirmeye olanak sağladı.
                                     Şekil-8 :İşlemci kartının ön ve arkadan görünümü

                        Şekil-9 :Projede kullanılan T6963C grafik kontroller barındıran 240x128 GLCD


Şekil-10 :İşlemci kartı ile GLCD arasında bağlantıyı sağlayan kablo

Sadece LM35 kart üzerinde değilde bir kablo ile uzatılmıştır.
Şekil-11 :Tüm bağlantıları tamamlanmış proje

Şema
Devre IC1 (Atmega128) üzerine kuruludur. İşlemcinin osilatör için harici kristal XT1 (8MHz) ve C5 ve C6 (27pF) kondansatörler ile saat sinyali üretimini yerine getirmektedir.

P4 (besleme girisi), D1 (DF10M) köprü (kendisi aslında SMD değildir, bacakları biraz bükülerek SMD haline getirilmiştir), ve IC2 (7805) devre için gereken 5V besleme gerilimini sağlar.

R1 (10k) trimpot GLCD için kontrast ayarıdır ve GLCD ile kart arasındaki bağlantı P2 konnaktörü üzerinden sağlanmaktadır. R7 (120 Ohm) GLCD arkaplan aydınlatması için akım sınırlama elemanı olarak kullanılmaktadır.

Geri kalan kondansatörleri filtre amaçlıdır.

PCB üzerinde gösterilen P1,R2,R3,R4,R5,R6 bu projede kullanılmamıştır.

Şekil-12:Blok şeması
Şekil-13:Devre şeması (projede kullanılmayan elemanlar gösterilmemiştir)

İşlemci bacağıProgramlayıcıAçıklaması
PE0MOSISeri veri girişi
PE1MISOSeri veri çıkışı
PB1SCKSeri saat
Atmega128 ISP programlama bacakları SPI iletişim bacaklarından farklı bacaklar üzerine atanmıştır.(SCK hariç) Bu nedenle PCB kendi çizeceklerin bu konuya dikkate almaları gerekmektedir

Devre Yapımı
Devre montajı açısından kritik eleman Atmega128'in kendisidir.. Görüldüğü gibi devre son derece sadedir. Sadece kabloları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır.
Şekil-14:Grafik LCD sürücü kartı yollar

Şekil-15:Grafik LCD sürücü kartı yerleşimi

Şekil-16:Grafik LCD sürücü kartı bakır yolların olduğu taraftaki elemanların yerleşimi

Şekil-17:Grafik LCD sürücü kartı yolları birlikte eleman yerleşimi

Şekil-18:Grafik LCD sürücü kartı yolları ve yoların olduğun taraftaki yollarla birlikte eleman yerleşimi

Şekil-19 :Montajı yapılmış işlemci kartı
Şekil-20:İşlemci kartına LM35'in bağlantısı

Şekil-21:Karta lehimlenmiş Atmega128

Devre Elemanları
120R (1206)R7
0R (1206)J1,J2,J3
10K yatık trimpotR1
27pF (1206)C5,C6
100nF(1206)C2,C3,C4, C7,C8,C9,C10,C11
10µF/25V (1206)C1
ATMEGA128 (TQFP)IC1
7805 (D2PAK)IC3
DF10MD1
LM35IC2
8 Mhz kristalXT1
2x3 Header (ISP6)isp
2'li klemensP4
240x128 GLCDM1
20'li sıra pin (2adet)- (P2)
40 yollu şerit kablo-
40 bacaklı şerit kablo için konnektör (2adet)-
Besleme için 9V'luk adaptör, LM35 ile kart arasında kablo belirtilmemiştir, isteğe göre kablo kullanılabilir..

Ekran Görünümleri
Şekil-22:Devre çalışırken ölçülen ortam sıcaklığı.

Şekil-23:Biraz sıcak hava üfleyince çeşitli zamanlarda çekilmiş ekran görüntüleri. 100 derece üzerine çıkıldı ise de hem sıca hava üflecini tutmak, hem fotograf çekmek pek kolay olmuyor. Görüntü bulanık çıkmış..

Şekil24:Atmega128 için sigorta ayarları. Elimde sadece AVR Studio ile ilgili ayarlar olduğu için bunu verebiliyorum. Butonların hemen üzerindeki alanda yer alan hex sayıları kullanarak kendinize göre uyarlayabilirsiniz.


Ekler:
Atmega128 hakkında bilgi için

"Atmega128 ve LM35 ile T6963C kontroller bulunan 240x128 GLCD termometre" projesi için gereken dosyalar


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


Translate

Sayfalar

Etiketler

İzleyiciler