SPI ve I2C Pinlerini Ayırma

Başlatan By-Coders, 25 Mart 2018, 17:12:07

By-Coders

Herkese Merhaba,
Bir projemde  DS1307 saat ve ENC28J60 ethernet Entegrelerini kullanarak bir cihaz yapmam gerekiyor.
Enc28J60 SPI ,  DS1707 I2C üzerinden haberleşiyor.
Kullandığım Mikroişlemci  18F66K80  64-Pin QFN(1)/TQFP,
Datasheet: https://www.microchip.com/wwwproducts/en/PIC18F66K80

Bu işlemcide  51 nolu pinde  I2C için SCL   SPI için SCK uçlarını kullanmam gerekiyor ama ikiside aynı pinde

I2C yi Eternet uçlarının kullanıldığı pin dışında kullanmamın başka yolu varmı ? nasıl bir yol izlemeliyim ?
Teşekkürler.




ete

Sorun çok açık değil. Açık olmayan noktalar şunlar, Bu pinleri donansımsal olarakmı kullanacaksın?
İkinci açık nokta ise hangi dili kullanıyorsun?
Bana kalırsa mod seçerek bir deneme yapabilirsin.
Örnek veriyorum. I2C haberleşmesi lazım olunca pinleri I2C olarak ayarlayıp haberleşmeni yapmaya çalış. Bağlantılarda yine data ve CLK bacaklarını 1K direnç yada daha düşük değerlikli bir direnç üzerinden bağlamaya çalış. Belki direk bağlantıda kurtarabilir.
SPI lazım olunca I2C iptal edilip aynı pinler SPI olarak ayarlanıp bağlantı kurulabilir diye düşünüyorum.
Basic kullanıyor isen her iki mod için farklı pin kullanma alternatifin mevcut. C dilinde de bu olabilir.

Ete

By-Coders

hocam merhaba

mikrobasic programlama dilini kullanıyorum şuan devre tasarım aşamasındayım.
mod seçerek yapamıyorum nedeni ise şu

saat entegresi ile ne zaman bilgi okunacak yazılacak haberleşme yapmayı ben ayarlayacağim

ama spı üzerinden ethernet datası ne zaman gelir belirsiz  ben saat okuma işlemi yaparkende spı üzerinden data gelme olasılığı var.


DS1307 entegresinin  SDA ve SCL uçlarını
50-64 pinleri arasında hangi pinlere bağlayabilirim.
ve bu pinlerden bilgi alıp göndermem için pinleri nasıl ayarlayabilirim.
daha önce böyle bir işlem yapmadım.

teşekkürler.

ete

Benim kullandığım Basic (PBP) kullansan her hangi bir giriş/çıkış pinine bağlayabilirdin.
Ama Mikrobasic bu konuda ne söylüyor bilemiyorum maalesef.
Haberleşmeyi sen ayarlıyor isen, en azında birinin ipleri senin elinde demektir. Bu durumda bu durumda sistem default olarak SPI modunda tutulur. Anlık olarak saat bilgisi okunurken sistem I2C moduna geçirilip okuma yapılır ve hemen yeniden SPI moduna sokulur. Böylece sıkıntı çıkmaz. Artık sen saat okurken veri gelecek ise yapacak bir şey yok maalesef. EN güzeli bunları ayırmak. Ayırırken bence I2C pinlerini Donanımsal kullanma ve her hangi bir pinden okuma yap.
Micro Basic de mutlaka istediğin pinden I2C okumaı yada yazması yapabiliyorsundur. Kullanım klavuzunu okumakta yarar var sanırım.

Ete

Powered by EzPortal