İki PIC arasında Grafik LCD bilgileri nasıl gönderilir?

Başlatan musti463, 07 Kasım 2013, 15:34:36

musti463

Merhaba,bir sistem kurdum ve bu sistemde işlemci bölümü ve panel bölümü var.İşlemci bölümünden panel bölümüne grafik lcd kablosu gidiyor.Sorun şu kablo 22 adet grafik LCD damarı + 5 adet buton damarı + 5 adet led damarı olmak üzere 32 damarlı oluyor.Mesafe yaklaşık 5-6 metre.Panel kısmına bir mcu lu devre daha kurup oradaki bilgileri SPI ile işlemci bölümüne aktarmayı düşünüyorum.Bu sayede damar sayım 2 Besleme + 1 TX + 1 RX olmak üzere 4 damara düşüyor.Fakat SPI ile iki PIC arasında bu işi nasıl yapabiliriz fikri olan arkadaşlar var mı? Birde bu işi yapan hazır devre var mı? yada SPI arayüze sahip 240x128 piksel Grafik Ekran var mı?
Mustafa Emir SADE

ercan_t

selamlar,

iki cihaz /işlemci arasında en çok kullanılan yöntem rs232/485 diye biliyorum.

iki cihaz arasında mesafe  baudrate bağlıdır rs232 eğer 9600bps ise 10-30metredir daha çık hızlarda örneğin 115200 de bu mesafe 3-4 kat azalır.
rs485 de ise 1km civarındadır.

kolay gelsin...


Kabil ATICI

SPI'da  iletişim mesafesi  10-20cm civarında diye biliyorum. (bazı belgelerde 10' deniyor) Frekansı düşürülürse belki biraz daha uzar.
Ayrıca senin hesabına göre 5 kablo olması lazım. clk ucunu atlamışsın
5-6m için iki işlemci arasındaki iletişim ancak RS485 olur. Hatta çift kullanırsın haberleşmen full dublex olur.
ambar7

musti463

Alıntı yapılan: ambar7 - 07 Kasım 2013, 16:22:38
SPI'da  iletişim mesafesi  10-20cm civarında diye biliyorum. (bazı belgelerde 10' deniyor) Frekansı düşürülürse belki biraz daha uzar.
Ayrıca senin hesabına göre 5 kablo olması lazım. clk ucunu atlamışsın
5-6m için iki işlemci arasındaki iletişim ancak RS485 olur. Hatta çift kullanırsın haberleşmen full dublex olur.

SPI haberleşme mesafesinin o kadar kısa olduğunu bilmiyordum.Peki hocam RS485 ile yaparsak 240x128 piksel grafik ekranda görüntünün geç gelmesi,yavaş gelmesi gibi sorunlar çıkabilir mi? Birde PIC portlarında göstermesi gereken bilgileri seri haberleşme hattına vermeli bu nasıl yapabiliriz
Mustafa Emir SADE

CLR

Alıntı yapılan: musti463 - 07 Kasım 2013, 16:31:55
SPI haberleşme mesafesinin o kadar kısa olduğunu bilmiyordum.Peki hocam RS485 ile yaparsak 240x128 piksel grafik ekranda görüntünün geç gelmesi,yavaş gelmesi gibi sorunlar çıkabilir mi? Birde PIC portlarında göstermesi gereken bilgileri seri haberleşme hattına vermeli bu nasıl yapabiliriz

240x128 monocolor bir ekrana tüm resim basman gerekirse 16*240=3840byte veri transferi gerekir,

Rs232 normalde 15metreye kadar kullanılabilir ama 115200'de basarmı bilmem test etmen gerekebilir, yada nette araştır, RS485 kullanırsan kesin basar, rs485'te 115200 baudrate'te haberleşirsen, saniyede 14400 byte göndermiş olursun.

tüm ekrana yazmak için 3840/14400=0,266sn gereklidir demekki tüm ekrana ard arda yazmak istersen, ekran taraması görülür, yani 115200'de yetmez, daha yukarı çıkman gerekir, yukarıda açıkladığım gibi hesaplarsın,

   
Knowledge and Experience are Power

musti463

Alıntı yapılan: CLR - 07 Kasım 2013, 16:50:09
240x128 monocolor bir ekrana tüm resim basman gerekirse 16*240=3840byte veri transferi gerekir,

Rs232 normalde 15metreye kadar kullanılabilir ama 115200'de basarmı bilmem test etmen gerekebilir, yada nette araştır, RS485 kullanırsan kesin basar, rs485'te 115200 baudrate'te haberleşirsen, saniyede 14400 byte göndermiş olursun.

tüm ekrana yazmak için 3840/14400=0,266sn gereklidir demekki tüm ekrana ard arda yazmak istersen, ekran taraması görülür, yani 115200'de yetmez, daha yukarı çıkman gerekir, yukarıda açıkladığım gibi hesaplarsın,



bir defalığına mahsus resim basılacak sonrasında ekranın 20x20 piksellik bölümleri ard arda tazelenecek.115200 bps yeterli olur gibi.Fakat daha önce hiç RS485 uygulaması yapmadım RS232 den yazılımsal ve donanımsal farklılıkları neler? CCS C RS485'i destekliyor mu?
Mustafa Emir SADE

Kabil ATICI

Ekran ile ilgili işlemleri ekranın yanındaki işlemciye yüklersen hayır.
Projeni fazla açık vermemişsin (sadece donanım tasarımını kabaca açıklamışsın), ama;
En basitinden bilgisayar klavyesinde grafik işlemcisi yoktur. Yada fare içinde bilgi işlem ile ilgili birim yoktur. Mümkün olduğu kadar basit bir bilgi üretip ve iletecek şekilde tasarlanmışlardır. Yoksa seninde yakınında bulunan işlemciye grafik işlerini yüklemek gibi bir durun olmaması gerekir.

Ek: Grafik işlerini tamamen ekranın yanındaki işlemciye yükle.
Eğer tek yönden bakarsan yazılımsal açıdan hiç bir farkı yoktur. Tek fark donanım olayıdır.
Bilgi alış verisi fazla ise  tek yönlü  çift hat kullanırsın. Böylece bağlantın full-dublexer olur. Bunun RS232'den hiçbir farkı kalmaz.


TX 1---MAX485>===============>MAX485---RX2
RX1---MAX485<===============<MAX485---TX2
Her bağlantı iki kablo üzerinden yapılır.
ambar7

musti463

Evet hocam dediğiniz gibi yapmak çok mantıklı hatta benim düşünce biraz saçma oluyor.Peki hocam daha önce RS232 uygulaması yaptım.Fakat  hiç RS485 uygulaması yapmadım.Donanımsal ve yazılımsal olarak bir fark var mı RS232 ile RS485 arasında? CCS C RS485'i destekliyor mu?
Mustafa Emir SADE

Kabil ATICI

http://elektronikvelemciler.blogspot.com/2009/04/rs232rs485-donusturucu-arabirim.html
http://elektronikvelemciler.blogspot.com/2009/04/rs485-seri-lcd-cevirici.html
şu iki uygulama kabaca bir fikir verecektir.
Tek yön  kullanıyorsan yazılımı açısından bir sıkıntı oluşturmaz. Aynı hattı iki yönlü kullanmaya kalkarsan biraz yazılım açısından sıkıntı olur.

CSS konusundan bir şey diyemem. Yoksa bildiğimiz RS232 iletim formatı aynen bu RS485 içinde geçerlidir. (Sadece kontrollere dikkat etmek gerekir.)
ambar7

musti463

Mustafa Emir SADE

Kabil ATICI

O zaman daha kolay. RS485'in birini TX olarak ayarla birini Rx olarak. İşlemciye bağla o kadar.
işlemciden sadece RS232 iletişimini nasıl yapıyorsan aynen bilgiyi gönder.
ambar7

musti463

Peki hocam çift yönlü olursa nasıl yapmamız gerekir.Biraz düşündümde paneldeki button durum bilgilerinide göndermek gerekebilir.Bu nedenle hem veri gönderme hemde alma işlemleri olacak
Mustafa Emir SADE

Kabil ATICI

Aynı hat üzerinden iletişim yapılacaksa iş sadece kontrol ucunu lojik seviyesini değiştirmektir. Ama bunun kontrolu açıkçası yeni başlayanlar için zordur.



Örneğin;
Yukarıdaki gibi bir bağlantı işini görebilir.


R0 işlemcinin RX ucuna
DI işlemcinin TX ucuna bağlanır.
RE=0
De=1yapılarak sağlanır.
Yukarıdaki devre  pek ala MAX485 ile de yapılabilir.
ambar7

musti463

Hocam,mcu yu alıcı yapmak için max485 entegresinin DE ve RE uçlarına output_low diyerek lojik-0.Eğer mcu yu verici yapmak istiyorsak DE ve RE uçlarına output_high diyerek lojik-1 dememiz yeterli değil mi? Zorluktan kastınız hangi mcu nun ne zaman alıcı ne zaman verici olacağını tayin etmek mi hocam?
Mustafa Emir SADE

Kabil ATICI

İki yönlü iletişimde veri yönünü belirlemek açısından dedim. (yapabilirim diyorsan bir bir şey demedim var sayabilirsin) Yoksa tek yönlü ise sıkıntı yok zaten.

"Zorluktan kastınız hangi mcu nun ne zaman alıcı ne zaman verici olacağını tayin etmek" demek istediğim bu!
ambar7