iki pic arası iletişim

Başlatan ido2323, 27 Kasım 2014, 22:40:53

ido2323

Herkse hayırlı akşamlar elimde pic16f84a ve 18f4550 var ikisi arasında iletişim kurmak istiyorum. I2C mevcut değil pic16 bu yönü ile zayıf kalıyor acaba başka bi yol var mıdır?

Kabil ATICI

Yazılımsal olarak yapabilirsin. i2c donanımı olmayan işlemciler ile DS1307  birlikte yapılan saatlerde yazılımsal i2c kullanılıyor.
Diğer alternatif UART (seri port ) olayı.
ambar7

skara1214

uart kullan ben sık sık kullanıyorum
Herkes ölür ama herkes gerçekten yaşamaz

a.zorba

16f84a de uart yok ya f84 u degisdir (16f628a olabilir)yada yazilimsal olarak yap
Bilenler bilir . Biz maraşlilar için şehir olarak şubat ay' i bayram ,kurtuluş ,yaz in gelmesiydi. Şimdi karalar in yas in ayı oldu.

ido2323

herkese teşekkürler yazılımsal yapmamız daha iyi duruyor.

robomaster

Size bir ipucu :
Yazılım ile çözülür. Ancak uart modül yoka alıcı tarafta sürekli dinleme yapmanız gerekir. Yada gönderici mcu da bir pini alıcı mcu da harici interrupt yakalıcak şekilde devreyi kurun. Gönderen mcu bu pinden karşı tarafta interrupt oluşturduğu zaman alıcı mcu dan rx pini hangisi ise (yazılımda hangisini tanımlanmış iseniz) o pinden okuma yaparsınız.

ido2323

Aslında bahsettiğiniz gibi yapmayı düşünüyorum.
18f4550 master 16f84a slave olarak 1 wire gibi çalışacar rx pini ilk kesmede resetlenip(aktif edilip) sırası ile  1 bitlik veri alacak 1 baytlık veri alımı tamamlandığında doğruluğu kontrol etmek için 16f84a' da 2 led ile binary'de bulunan 1 ve 0 miktarınca sırası ile yeşil ve kırmızı led yanar.
Siz ne dersiniz acaba doğru olur mu bu yaklaşım ?

robomaster

#7
Alıntı yapılan: ido2323 - 29 Kasım 2014, 19:40:35
Aslında bahsettiğiniz gibi yapmayı düşünüyorum.
18f4550 master 16f84a slave olarak 1 wire gibi çalışacar rx pini ilk kesmede resetlenip(aktif edilip) sırası ile  1 bitlik veri alacak 1 baytlık veri alımı tamamlandığında doğruluğu kontrol etmek için 16f84a' da 2 led ile binary'de bulunan 1 ve 0 miktarınca sırası ile yeşil ve kırmızı led yanar.
Siz ne dersiniz acaba doğru olur mu bu yaklaşım ?

Eğer iletişim 16f84a da 18f4550 ye doğru tek yönlü ise.
18f4550 de uart modül var. 16f84a dan soft uart ile gönderimde bulunursanız, 18f4550 ilgili interrept ı aktif etmeniz yeterlidir. Harici kesmelere gerek kalmaz.
Tersi durumda 16f84 da harici interrupt tan fazydalanabilirsiniz.

mesaj birleştirme:: 29 Kasım 2014, 19:58:02

İletişimin doğruluğu için parity bitlerden faydalanabilirsiniz. Parity ile ilgili bir uygulama yapmadım.

kudretuzuner

Merhaba,
Bir amatör olarak sormak istiyorum (sadece eğitim ve de yazılım geliştirme ve öğrenme amacı yok ise)  16F84 pic'in ne özelliği var ki UART da bulunan 16F628'e tercih ediliyor.Üstelik 16F84 bildiğim kadarı ile 16F628 den daha da pahalı.Eğer iki PIC haberleştirilecek ise neden 16F628 PIC'i tercih etmiyorsunuz da diğerini tercih ediyorsunuz?Teşekkürler.
Amatör

robomaster

Aynı seri pic ler birbirine oldukça benzer. Aralarında ufak donanım farkları olsa da.
Yapıyı ve register lar düzeyinde işi bilenler için , birinden diğerine geçmek mesele değil.
Hatta bir başka seri ve markayada. Bu geçiş bilgi düzeyinde göre az ve çok zaman alır.

Belli bir düzeydeki kullanıcılar ise işlemciyi değiştiremezler. Mevcut uygulama hangi mcu
ise onla devam etmek zorunda kalırlar.

16f628 gelince özel bir durumu var yanlış hatırlamıyorsam. CMOS uyumlu girişler.