i2c ile iki pic haberleşmesi

Başlatan gazel, 17 Mayıs 2007, 10:54:00

gazel

merhaba arkadaşlar

i2c ile iki tane 18f452 yi haberleştirmeye çalışıyorum ama başaramadım, bazı sorularım olacak. yardımcı olacak arkadaşlara şimdiden teşekkürler.

1. pic master ve diğeri slave olacak, master sadece bilgi gönderecek, okumasına gerek yok,

bildiğim kadarıyla slave işlemciye yazılımla adres veriliyor, bu adresin belli bir değer aralığında olması gerekiyor mu yada herhangi bir sayı olur mu, mesela 1. iki slave olursa onun adresi bir öncekini takip eden sayı olur mu?

bilgi gönderirken algoritma şu: (kaynak: www.easyacademy.com )

1- i2c başla
2- i2c yaz slave adres
3- ack biti
4- i2c yaz data
5- i2c bitir

burada ack bitinin nasıl kullanıldığını anlayamadım, nedir ack? ne işe yarar?

Slave kısmında da bilgiyi CCS nin İ2C activity interuptı ile okutmayı düşünüyorum.
daha şimdiye kadar interrupta girmeyi başaramadım :(

slave kısmında nasıl bir yol izlemem lazım?

Kolay gelsin

XX_CİHAN_XX

BURADA i2c formatı ack biti vb. bilgiler mevcut.
Ayrıca bu konuda forumdada arama yapmanı tavsiye ederim hazır kod bile bulabilirsin.
Bir tavsiyem daha var; eğer haberleşeceğin birimler sadece 2 picten ibaret ise daha basit formatlar kullanabilirsin.örnekse; spi,usart gibi.
kolay gelsin.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

gazel

Projeyi biraz genişlettim :)

6 adet 18452 koydum ve adreslemei değiştirdim. daha önce adresler için 1,2,3,4,5 koymuştum  şimdi ise 0xa0,0xb0,0xc0,0xd0,0xe0 yaptım interupta artık giriyor. ama datayı okuyamıyorum, biraz dügün çalışırsa buraya koyacam.

@edit:
dosyalar aşağidaki linkte:
http://rapidshare.com/files/31786688/DENEME.rar.html

ama düzgün çalıştramadım :( hala uğraşıyorum
ayrıca nedendir bilmiyorum sadece ilk işlemci interuptu giriyor. ilk olarak hangisinin adresini yazarsam o  interrupt alıyor ?

gazel

i2c haberleşmesindeki sorunu çözemedim,

bu yüzden seri iletişim kullanmaya karar verdim. bir iki denemeden sonra  işe yarar bişeyler çıktı ortaya.

yinede merak ettiğim bir konu var:

picin seri portuna birden fazla alıcı koymak (seri iletişim busı ) sorun oluşturur mu?

XX_CİHAN_XX

Tek master oldugu surece fazla bır sorun cıkmaz.Slavlerı adresleme metodu ıle asenkron bır sekılde calıstırabılırsın.Haberleşme araklıklarını zamanlamalarını çakışmaya mahal vermeyecek şekilde ayarlamaya dikkat et.Bunun dışında bir sorun çıkmaz.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

muhusta

Arkadaşlar. Benim Projemde 1 tane Master ve 30 tane Slave Pic var. Master data hattına her picin adresini gönderecek ve ilgili adres bilgiyi aldıktan sonra Aynı bilgiyi Mastera bağlı Gösterge ekranında gösterecek(LCD veya 7 Segment olabilir.) Fakat Usart protokolünü kullanmada sorun yaşıyorum. CCS hakkında pek bir bilgim yok. Aynı işlemi assembly de yapabiliyorum. Ama gereğinde fazla komut oluyor ve çok kasıyor. Aynı işi CCs de yapmak istiyorum. Ama Bilgim yetersiz olduğu için nerden başlayacağımı bilmiyorum. Uart protokolü ile CCS de yapılmış bir örnek varmı. Yada nasıl yapacağım hakkında bana bilgi verirmisiniz...