Ds1307 iki pic'e ortak bağlanır mı ?

Başlatan ChiliPepper, 16 Ocak 2021, 15:45:45

ChiliPepper

İyi günler arkadaşlar bir sorum olucaktı 1 adet ds1307 saat modülünü 2 adet 16f886 ya ortak bağlayabilir miyim bir problem olur mu acaba merak ediyordum.

Kabil ATICI

Bağlayabilirsin.
i2c bağlantısında  high bilgisi pull-up dirençleri ile sağlanır.

Bu noktada;
her iki işlemci master ise, birbirleri ile çakışmadan nasıl konrol edeceksin sorununu çözmen gerekir.

işlemcinin birini master, diğerini slave yaparsın (slave adresini unutma);
master olan DS1307'den veriyi okur ve slave olan işlemciye gönderir.
ambar7

ChiliPepper

Aslında 1 pic ile sadece saati ayarlıcam diğer picle herhangi bi saat ayarı yapmayip sadece saat bilgisini alıcam ondan merak ettim acaba ds1307 paralel şekilde iki pice bağlasam biriyle saati değiştirsem diğer pice guncel saat verisini iletir mi çakışır mı

ilyas KAYA

Madem 2 pic var birisi saati alıp ötekine uart ile göndersin böylece sorun da kalmamış olur :)

zamzam23

Ben olsam bir pic'e saat entegresini bağlar, diğer pic'e de saat verisini önceki pic'ten seri haberleşme ile gönderirdim.

OG

I2C'yi donanım olarak kullanmazsan kolaylıkla yaparsın,

şöyle,
PULL-UP dirençleri devrede bağlı olmalı
pasif olan mcu'nun data ve clock pinleri INPUT da kalmak şartı ile boş bekler,
o mcu yok hükmündedir,
diğeri ile haberleşme sağlarsın,
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Tagli

Ben hiç denemedim ama PIC'lerin I2C donanımlarında multi-master algılama durumu var diye biliyorum. PIC16F877A gibi antik işlemcilerin bile datasheet'lerinde öyle bir bölüm var.

Yine de genel olarak multi-master I2C'nin gereksiz yere uğraştıracağını düşünüyorum. Tüm sistemi bilmeden yorum yapmak zor ama belki daha basit bir çözüm olabilir. Arkadaşlar birkaç olası çözüm sunmuşlar.
Gökçe Tağlıoğlu

ChiliPepper

Pic
Alıntı yapılan: Kabil ATICI - 16 Ocak 2021, 17:28:40Bağlayabilirsin.
i2c bağlantısında  high bilgisi pull-up dirençleri ile sağlanır.

Bu noktada;
her iki işlemci master ise, birbirleri ile çakışmadan nasıl konrol edeceksin sorununu çözmen gerekir.

işlemcinin birini master, diğerini slave yaparsın (slave adresini unutma);
master olan DS1307'den veriyi okur ve slave olan işlemciye gönderir.
Kusura bakmayın pic konusunda daha yeniyim öğrenmeye çalışıyorum tam olarak anlamadım, ben picler arası bağlantıya gerek kalmadan ds1307den slave olan pice güncel saat verisini verebilirmiyim diye merak ediyordum. Sizin bu anlattığınız şekilde master picten slave pice veri mi gönderebilirim yoksa ds1307den direk saat verisini mi alabilirim anlayamadım picler arası haberleşme konusunda bi bilgim olmadığı için acaba böyle hızlı bir şekilde çözülebilir mi diye araştırıyordum.

Kabil ATICI

1. adım master pic'den saat verisini DS1307'en okuyorsun, veri şu anda master pic üzerinde. Bun veriyi istediğin gibi kullanabiliyorsun.
2. adım master pic'den saat verisini (master üzerindeki) slave pic üzerine gönderiyorsun.
(şu anda saat verisi her iki pic üzerinde)

-bu arada master ve slave arasındaki en önemli fark, saat sinyalinin master tarafından üretilmesidir.
-slave pic ve DS1307 (slave konumundadır) farklı id adresi olmalıdır.
(bu konu işlemciden bağımsız olarak i2c çalışması ile ilgilidir)
ambar7

Tagli

#9
Alıntı yapılan: ChiliPepper - 17 Ocak 2021, 16:42:24...slave olan pice güncel saat verisini verebilirmiyim diye...
Master kim slave kim ben anlamadım. Mesajın devamında başında PIC'ler arasında master-slave ilişkisi yok gibi anlatmışsın (veya ben öyle anladım). DS1307 her zaman I2C slave'dir. Ona erişen PIC de master olmak zorunda.

Dediğim gibi, birbiri arasında master-slave ilişkisi olmayan iki PIC aynı I2C hattına multi-master olarak bağlanabilir. Ben denemedim. Ancak bir sistem tasarlarken böyle bir durumdan kaçınmaya çalışırdım. Bence hiyerarşik olarak sıkıntılı bir durum. Özellikle de bu konularda yeniysen bence multi-master I2C macerasına girme.
Gökçe Tağlıoğlu

ChiliPepper

Alıntı yapılan: Tagli - 17 Ocak 2021, 17:52:13Master kim slave kim ben anlamadım. Mesajın devamında başında PIC'ler arasında master-slave ilişkisi yok gibi anlatmışsın (veya ben öyle anladım). DS1307 her zaman I2C slave'dir. Ona erişen PIC de master olmak zorunda.

Dediğim gibi, birbiri arasında master-slave ilişkisi olmayan iki PIC aynı I2C hattına multi-master olarak bağlanabilir. Ben denemedim. Ancak bir sistem tasarlarken böyle bir durumdan kaçınmaya çalışırdım. Bence hiyerarşik olarak sıkıntılı bir durum. Özellikle de bu konularda yeniysen bence multi-master I2C macerasına girme.
Evet ozellikle picler arası haberleşme konusunda pek bilgim olmadığı için ds1307den ikisine de bilgi verebilirmiyim diye merak etmiştim. Benim amacım piclerden birinde display ile saati göstereceğim diger picte ise saate göre farklı çıkışlar vereceğim.