harici eeprom haberleşme hakkında yardım

mobilspy

Üye
Katılım
13 Eki 2006
Mesajlar
122
Puanları
1
Yaş
45
16f84 -628 - 877 herhangi biriyle harici bir seri eeprom yada rtc entegresine veri yazmak ve okumakla ilgili bilgi verebilirmisiniz acaba (pic assembly) picden nasıl bir veri gönderip okumayı baslatıyoruz yada nasıl bi veri yolladığımızda bize okumamız gereken verileri yolluyor bu entegreler.
 
biraz geniş bir konu oldu sanırım benim sormak istediğim bu seri haberleşmenin mantıgı bir devre içinde seri eproma bilgi yazmak ve daha sonra bu yazılanları tekrar okumak istiyorum hazır devreler var bununla ilgili ama ben bu işin mantığını kavrayamadım sorunum burda bununla ilgili acıklamalı bi program yada e-book paylaşabilecek olan varmı acaba...
 
Kardeş senin bahsettiğin i2C protokolüyle yapılır
bu seri iletişim modu phillips şirketi tarafından bulunmuştur

Bilgi göndermede saat sinyalinin üretilmesiyle bilgi aktarımı başlatılır.
veri iletişimi için iki hat kullanılır serial clock(SCL) ve serial data (SDA)
aşağıda çizdiğim bağlantıda görebilirsiniz burada veri iletişimi sağlıklı
olması için mutlaka harici pull up dirençleri bağlanmalıdır.


i2C iletişiminde aynı anda cihazlardan birisi master ve diğerleri slave olarak
çalışırlar
master olarak seçilen cihaz hattaki veri tranferini yönetir ve transfer boyunca saat sinyalini sağlar
aynı zaman da herhangi bir cihazı slaveolarak adresler
not:
transferden önce ihtiyaç duyulan saat sinyalinin uygulanması gerekir
bu bekletme durumu bir bit seviyesinde olabilir
ayrıca I2C protokollü bir sisteme bir masterden daha fazla masrera sahip olma izni verir
İletişime başlamak için master (örneğin pic) tarafından hatt a bir start biti gönderilir
bundan sonra master olarak çalışan cihaz hangi cihazla haberleşecekse o cihazı slave olarak ardesler
bu adres çoğunlukla 7 bitten oluşur ve 8. bit ile de okuma mı(1)
yada yazma mı (0) yapacağını seçer
bu bilgiler gönderildikten sonra slave olarak çalışan cihaz master a bir ACK(kabul)
biti gönderir bu bit gelmişse veri kabul edilmiş demektir
eğer bir hata varsa bu durum NACK(kabul ediilmedi) biti olarak alınır
cihaz adreslemesi yapıldıktan sonra 2. ve 3. byte lar ile hafıza adreslemesi vb. gibi işlemler yaptırılır
iletişim kesilmek istendiğinde master olan cihaz hatt a bir stop biti gönderir
bunlar sadece çalışma prensibi bu modların nsıl yapıldığını i2C protokolünü araştırarak öğrenebilirsin şimdilik elimdeki bu sonra ekleyebilirim
kolay gelsin ;)
 
teşekkurler hocam daha coook calışmam lazım cok biraz karışık geldi bu konu bana ama mutlaka sonuc alıcam :)
 
çalışırsan eminim ki karşılığını alırsın kardeş hiç pes etme hata yapıyorsan uğraştıkça hatayı bulma olasılığın yükselecektir ve başarıya ulaşman kolaylaşacaktır
kolay gelsin
 
ı2C protokolüyle ilgili cok fazla döküman okumam ve ugrasmama ragmen bir türlü picin herhangi 2 bacagını kullanarak 24c02 serial epproma yazdırmayı beceremedim kendi adıma. ya proteusun simülasyonundan kaynaklanıyor yada yazmıs oldugum c codu hatali. bu konuyla ilgili forumda I2C başlıgı altında bi konu açtım. bütün denemelerime ragmen hatamı bi türlü bulamadım. bu konuyu acan arkadas çalışmaları sonucunda bi sonuç elde edebilmiş ise paylaşabilirmi? ayrıca açmış oldugum konuya bi göz atıp yardımı dokunabilecek bilgileri paylasan arkadaslar olursa sevinirim.
 
Kullandığın Proteus versiyonu 7 ise hata alırsın sorunu bende çözemedim ama proteus 6.0 da hatasız çalısıyor. Çok fazlada bi komutu yok zaten

write_ext_eeprom(adresi,veri);
veri=read_ext_eeprom(adres);
Bu iki komutla yazıp okuyabilirsin... Kolay Gelsin
 
eepromun adreslerini doğru seçiyormusun.Picin datasheetini incelersen bunlar için ayrılmış hafızalar var oralara kaydecedeksın
 
i2c protokolü ile yazman gerekmektedir. entegrenin data sheetinde hangi adresinden ne alcağını anlatır bilgiler bulacaksın. ben ds1307 ile haberleştim i2c protokolü ile pic basic de komutu var bir kaç denemeden sonra olay anlaşılır hale geliyor. forumlarda da arattırırsan bulursun formatını ama diğer dillerdeki adını bilmiyorum.(ds13o7 realtime clock entegresidir)
 

Forum istatistikleri

Konular
130,159
Mesajlar
933,798
Kullanıcılar
453,265
Son üye
34yusuf52
Geri
Üst