pcbway

Pic Basic ile MM5450 kullanımı ?

Başlatan zakbay, 22 Kasım 2008, 15:08:08

zakbay

Merhaba

daha önce MM5450 34 kanal led display driver kullanan oldu mu datasheetini inceledim fakat bir neticeye
ulaşamadım yardımlarınız için şimdiden teşekkür ederim..

gevv


zakbay

28 Kasım 2008, 23:02:13 #2 Son düzenlenme: 29 Kasım 2008, 00:09:09 zakbay
gevv hocam ilginiz için teşekkür ederim malesef bununla ilgili bütün yabancı siteleri inceledim hepsini denedim ama yine de bunun çalışmasında bir incelik saklı hala araştırmaktayım.  ???  ???

gevv

28 Kasım 2008, 23:12:20 #3 Son düzenlenme: 28 Kasım 2008, 23:26:43 gevv
anladım fakat http://forums.parallax.com/forums/default.aspx?f=5&m=133462 buradaki bilgiler yeterli olur diye düşünmüştüm belki gözden kaçmıştır  ben yinede araştırmaya devam ederim




eemkutay

Merhaba

@zakbay

Picbasic kullanmıyorum(o konuda yardımcı olamam) ama bu IC\'nin kullanması çok basit. Bir data hattı var bir de clock hattı ve data enable hattı var. Burada dikkat edilecek iki nokta var.
1) Data gönderirken data enable hattını low yaptın mı? (tüm 36 bit gönderilirken low olmalı)
2) Bu daha önemli, ilk göndereceğin bit daima 1 olmalı sonra 35 bit takip etmeli, yanlış sayıda clock gönderirsen yükleyemezsin. (ilk başta gönderilen 1  ile 36 clock\'ta latch ediyor yani içerideki registerlere yüklüyor.)
Programlama sırası aşağıdaki gibidir
Başlangıçta data enable hattı 1, clock ve data 0 olacak şekilde ayarla 
1) data enable hattını low (0)
2) data hattını high (1) 
3) clock 1  ve sonra clock 0 (osc frekansın hızlıysa  1 ile 0 arasına küçük bir delay yerleştir çünkü IC max 500Khz\'e kadar çalışıyor, yani clock 1-0 arasındaki zaman farkı en az 2us olmalı)
4) geri kalan 35 bit, 2 ve 3\'deki gibi gönderilir
5) 36. bitte gönderdiğin 35 bit dahili registerlere aktarılıyor ve ta ki sen değiştirinceye kadar kitlenir (seridata yolu ile yüklediklerin geçici registerler)
6) 36.bitin düşen kenarında ise geçici registerler silinir yani reset işlemi

Bu IC ile haberleşmenin tümü budur

zakbay

eemkutay merhaba
önce mm5450 yi aşağıdaki kod ile sıfırlıyorum ya da sıfırladığımı sanıyorum
mmdata = 0 ;enable açık
for a = 0 to 37
    high mmclk
@ nop
  low mmclk
@ nop
next
mmen = 1 ;enable kapalı



sonra
mmen = 0         ;enable low veri alım açık
SHIFTOUT   mmdata, mmclk, 2, [veri1\\16,veri2\\16, veri3\\5]
mmen = 1 ;enable kapalı
;burada veri1 ve veri2 16 bitlik değişken veri3 ise byte olarak tanımlı 8 bit

şimdi eğer sabit değerler gönderirsem sıkıntı olmuyor normal gibi
örnek olarak önce tüm bitleri sıfırladım sonra hepsine 1 yükledim. normal bütün çıkışlar flash yapıyor
bir de tüm değişkenleri sıfırladım
veri1 i ya da veri2 yi de 500 ms aralıklarla bir artırıp göndermeyi denediğimde
alakasız değerler çıkmaya başladı. shiftout komutunun gönderme modunu da değiştirdim önce LSB yi göndersin ya da önce MSB yi göndersin diye fakat anormal çalışmada bir değişiklik olmadı

bu entegreyi esasında displayleri sürmek için kullanmak istiyorum bir nevi portları çoğaltmayı amaçlıyorum. Elimde de oldukça fazla miktarda bulunduğu için tercih sebebimdir.





eemkutay

Merhaba,

picbasicten anlamam ama yardımcı olmaya çalışayım
reset işlemin doğru, önemli olan 36 clock puls göndermek ve 36nın düşen kenarında reset gerçekleşir

ama shiftout denen altprogramda ilk giden bit 1 olmalı (sanırım veri1\'in ilk biti,(ilk msb veya lsb hangisini gönderiyor bilmiyorum))  yoksa latch etmez
 



zakbay

Merhaba

bu linkte mm5450 nin garip çalışmalarından birisinin videosu var

http://img531.imageshack.us/my.php?image=mm54503998434tu0.flv

yarın ilk işim bu ilk bitin 1 yapılması ile ilgili çalışacağım sonuçları paylaşırım

görüşmek üzere
teşekkürler

zakbay

Günaydın
dediğim gibi sabah ilk işim sakin kafayla akşam konuştuklarımızı denemek oldu ve sonuç mükemmel
işte çalışan kod

veri1 var word
veri2 var word
veri3 var byte
baslik con 1
son    con 1

mmen = 0         ;data al
SHIFTOUT mmdata, mmclk, MSBFIRST, [baslik\\1,veri1\\16,veri2\\16,veri3\\2,son\\1]
mmen = 1         ;data alış kapalı


yardımlarınız için teşekkür ederim

iyi çalışmalar






sungur

sayın arkadaşlar bi ödevim var yardımcı olabilecek varmı ödev:0-5 volt ölçüp grafik lcd göstern programı yazabilen varmı