Harici EEPROM a Yazma Sorunu ...

Başlatan M.A.A, 19 Şubat 2016, 09:55:35

M.A.A

Merhaba Arkadaşlar

Proton ile gerçek devrede ve Isıs te harici EEPROM a kayıt yapıp okumaya çalışıyorum.
HBusIn komutu gerçek devrede çalışıyor sorunlar çıkıyor.
I2CIn komutu hem gerçek devrede hemde Isıs te çalışıyor fakat aynı sorunlar gene oluyor.
Devreyi ve yazılımı baya indirgedim, EEPROM a sabit değerler yazıp onları onları ekrana bastırdım.

1-2-3
128-129-130-131
256-257
385-386-387
512-513-514-515
640-641
769-770-771
896-897-898-899
1024-1025
1153-1154-1155
Bu adreslerde sorun çıkıyor, 1200 den sonra kontrol etmeye devam etmedim. 126-132 nolu adreslere yazdırmaya yapmazsam 1-2-3 adreslerine doğru değer yazıyor.
Aynı sorunlar ve durum İsis te de var.

Bir türlü işin içinden çıkamadım. Yardımlarınızı bekliyorum.

http://s8.dosya.tc/server2/1v5ti1/eeprom_deneme.rar.html


M.A.A

Sorun Maxim'in yardımı ile çözüldü.
EEPROM da veri bloklar halinde saklanıyormuş, seri yazarken blok başındaki adres (24LC512 için 128 ve katları) mutlaka seri yazmanın ilk adresi olmak zorundaymış.

Örneğin :

    EEADRES=0
    I2COut SDA,SCL ,$A0,EEADRES,[$51,$52,$53,$54,$55,$56,$57,$58]
    DelayMS 10
    EEADRES=8
    I2COut SDA,SCL ,$A0,EEADRES,[$51,$52,$53,$54,$55,$56,$57,$58]
    DelayMS 10
    EEADRES=16
    I2COut SDA,SCL ,$A0,EEADRES,[$51,$52,$53,$54,$55,$56,$57,$58]     

   Bu şekilde yazılabiliyor.
   
   EEADRES=126
    I2COut SDA,SCL ,$A0,EEADRES,[$51,$52,$53,$54,$55,$56,$57,$58]

  Bu durumda 126. adrese $51, 127. adrese $52 yazıyor, ancak 128. adres diğer hafıza bloğunun başı olduğu için oraya yazamıyor, tekrar aynı bloğun 0. adresinden başlayarak yazmaya devam ediyor.