ATMEGA16 ile DS1307 ve 24C512 paralel çalışırken çakışma oluyor

Başlatan alikilavuz, 04 Kasım 2011, 10:44:01

alikilavuz

Merhaba,

ATMEGA16 entegresi ile aynı i2C yolu üzerinde DS1307 ve 24C512 yi kontrol ediyorum.

240*128 grafik LCD ekran üzerinde saat tarih ve 24C512 içerisindeki dataları gösteriyorum. Şöyle bir problemim var. 24C512 ye 16 bit adres bilgisini gönderirken eğer adres içerisinde 0xD1 verisi varsa (0x23D1, 0xD14F gibi) ya işlemci donuyor ya da donmazsa LCD 'de o kısımda çizik varmış gibi görünüyor. Bildiğiniz üzere 0xD1 DS1307 entegresinin okuma yapmak için kullanılan device adresi. Nasıl oluyorsa ben 24C512 den okuma yapmak istediğimde sanki DS1307 de data göndermeye çalışıyor ve  ya veri kaybı ya da işlemcide donma oluyor.

Başka bir DS1307 taktığım zaman çakışma gidiyor. Ama belki o an için. Uzun süre çalışan ve açık kalması gereken bir cihaz. Güvenemiyorum. Bazen 1 ay sonra bazen 3 gün sonra takılabiliyor yine.

1 haftadır uğraşıyorum, farklı farklı i2c kütüphaneleri ve örnek projeleri denedim ama başarılı olamadım.

Ne yapmam lazım nasıl yapmam lazım bir türlü iin içinden çıkamadım. Yardımlarınızı bekliyorum.Yardımcı olacak arkadalara i2c dosyalarını gönderebilirim.

Şimdiden çok teşekkür eder, saygılar dilerim.


Kabil ATICI

Normalde  i2c iletişimde başlama durumu  haricinde i2c entegrelerin verileri almaya  veya göndermeye başlamaz.
Şema verilmemiş ama  veri yolu ve saat yolu üzerine pull up direnci var mı?

kod ve en azından ds1307 ile devresi ile örnek olarak
http://elektronikvelemciler.blogspot.com/2010/10/atmega8-ve-ds1307-cipi-ile-rs485-saat.html
inceleyebilirsin.

kolay gelsin.
ambar7

bocek

1 ya da 0. işte 'bit'ün mesele..