Paralel Portla Mikrodenetleyici Haberleşmesi

Başlatan y1lh4n, 15 Mart 2012, 12:59:39

y1lh4n

Evet arkadaşlar birden fazla mikrodenetleyici içersindeki değişkenleri PC paralel port yardımıyla değiştirmek istiyorum. Şimdi paralel portla sayı (Desimal( 3516) sayısını) gönderdiğim zaman mikrodenetleyici o sayıyı nasıl algılayacak ve değişkenin içeriğini bu sayıyla yükleyecek ? Bu konu hakkında bir düşüncesi olan var mı?

bigbey

paralel porttan gönderdiğiniz sayı seri mi paralel mi çıkacak bir şemanız varmı.
Detay verirseniz yardımcı olabilecek arkdaşlar çıkar.
TA6R

y1lh4n

Göderilen sayının seri mi paralel mi çıkışını incelemem lazım henüz bilgi yetersizliği .
Şuanda şema çizmedim fakat şöyle anlatayım. Paralel portun 2 nolu pini mikrodenetleyiciye  değişkenleri gönderirken 3.nolu pinide değişken gelen mikro denetleyiciyi tetikleyip döngüyü çalıştıracak. Mikrodenetleyici de işi bitince paralel portun diğer veri alma pinlerini tetikleyim 3 nolu pini low a çektirecek. Yani  bilgisayarı Control Paneli gibi kullanacam. Umarım anlatabilmişimdir fakat benim sizi anlamadığımı düşünüyorsunuzdur seri paralel olayını araştırıyorum şimdi. Teşekkürler.

CoşkuN

Alıntı yapılan: y1lh4n - 15 Mart 2012, 12:59:39
Evet arkadaşlar birden fazla mikrodenetleyici içersindeki değişkenleri PC paralel port yardımıyla değiştirmek istiyorum. Şimdi paralel portla sayı (Desimal( 3516) sayısını) gönderdiğim zaman mikrodenetleyici o sayıyı nasıl algılayacak ve değişkenin içeriğini bu sayıyla yükleyecek ? Bu konu hakkında bir düşüncesi olan var mı?

İlla paralel port ile mi çalışmanız gerekiyor? Değilse seri portu rahatlıkla kullanabilirsiniz hem de bir sürü örnek bulmanız mümkün.
Eğer paralel port gerekiyorsa illa sayı değerlerini bir porttan 8 bit olarak çıkarıp paralel portun 8 bit data portlarına girebilirsiniz.

camby

#4
Çoşkun'un dediği gibi seri port ile de başlayabilirsin.


Okuma çok basit , Paralel portun 8 bit çıkışı verisi PORTA'da olsun , d1'de senin yazmak istediğin veri :

movf   PORTA,w
movwf    d1

yazdığında veriyi okumuş olursun.

Bundan önemlisi bir data göndermeye çalıştığında veri paralel porttan nasıl iletiliyor onu öğrenmek gerekir. Dediğin 3516 sayısı muhtemelen 16 bit bir değişkenin içerisindedir. Tahminen önce ilk 8 biti belli bir süre sonra yüksek değerlikli 8 biti yollanır. Bunları tam olarak belirleyip ona göre PIC tarafına program yazmak gerekir

y1lh4n

arkadaşlar veri transferini tek pin üzerinden yapacağım için veriyi seri bir biçimde yollamam gerekecek sanırım, çünkü diğer pinler ile diğer mikrodenetleyicileri kontrol edeceğimden bir sayı bilgi veri vs. seri biçimde göndermenin mantığı nedir bilen varmı acaba, byte şeklinde gönderirsem sanırım paralel portun 8 pinini de bir denetleyiciye bağlamak gibi bişi sanırım ?  Bu konu hakkında bilgilendirirseniz sevinirim. Dökümanlardan okuduğum kadarıyla bu şekilde anladım.

bigbey

"veri transferini tek pin üzerinden yapacağım"      bu iş için seri haberleşme kullanmanız gerekir.
UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER (USART)
PC bigisayarlarda Comport dediğimiz bölümü kullanabilirsiniz
Mikroişlemci yazılım dillerinden kullandığınız bir dil varmı PC tarafında yazılacak yazılım konusunda kullanmak üzere bir dil düşündünüz mü.

TA6R

y1lh4n

Pc tarafında hazırlamış olduğum bir yazılım mevcut c#, yaptığım program ctep sürücüye clok sinyalleri veriyordu paralel portun meşguliyetinden bazen istemediğim durumlar meydana geliyor. Genelde bu sıkıntılarım hızla alakalı gönderilen verinin hassasiyeti iyi 1 tur at diyorum tam bir tur atıyor fakat işin içine 2 ve daha fazla motor girdiğinde devirleri git gide düşüyor ve oranları ayarlamak zor oluyor. Bunun içinde kendimce şöyle düşündüm. her motor bir mikrodenetleyici gerçek zamanlama için bu iyi olacaktır ve oranlara göre bütün motorları aynı anda ve istediğim oranda çalıştırma imkanı verecek.
Pc kısmındaki programla stepin ne kadar döneceğine dair sayıyı ve kaç mikro veya mili saniyede döneceğini belirleyip mikrodenetleyiciler içersindeki değişkenlere atayacaktım fakat paralel portu clok sinyali olarak kullandık ama veri gönderme olarak henüz bişi yapmadım. Mikrodenetleyiciler konusunda da assembly dilinde bir yazılım düşünüyorum araştırdığım kadarıyla değişkenler döngüler tanımlar girş çıkışlar bütün bunları kafamda yaptım yazılımda da yaptım fakat kullanmak için gereken mikrodenetleyici seçimini ve içersine paralel porttan veri göndermeyi düşünüyorum.
Sanırım hepsini açıkladım.

y1lh4n

max232 diye bir entegre mevcutmuş onu kullansak nasıl olur ?

bigbey

max232 seri haberleşme işleminde kullanılan sürücü ve coverter özellikli bir entegredir.
siz işlemcileri seçmek için paralel porttan chipselect işlemi yaparak sadece istediğiniz işlemci ile haberleşmek istiyorsunuz.
Bunun için çeşitli yöntemler kullanılabilir. mesela seri haberleşme portu tercih edilerek (PC comport) RS485 protokolü olarak bir seri haberleşme sistemi kurabilirsiniz. max485 entegresi ile haberleşme hattı tüm işlemcilerin bir veri yolu üzerine paralel olarak bağlanma imkanı var.
herbir işlemcinin içinde bir adres bulunur. PC den önce adres sonra data yollayabilir ve sadece ilgili adresteki işlemciyi haberleştirebilirsiniz.
TA6R