EEPROM verileri neden bozulur

Başlatan alisumer, 14 Nisan 2024, 01:45:53

alisumer

eproma ilk adresten itibaren 13 byte veri yazıyorum bunun ilk byte ı kayıt sayısı ve sonrası sensör verileri her kayıt sonrası kayıt sayısını bir arttırıp kontrol ediyor ve kayıt sayısı 0xFE oldu ise  eprom verilerini 13 adres kaydırıp eski yerlerini 0xFF ile dolduruyorum kayıt sayısını tekrar 0 yapıp devam ediyorum şimdiye kadar çok düzgün çalıştı hatta arızalansın diye kayıt esnasında enerjiyi bile kestim sadece o anki kaydedilen veriler bozuldu ama kayıt sayısına birşey olmadı ama ne oldu ise kayıt sayısı henüz üçte iken sabah cihazı kapattım akşam açtığımda kayıt sayısı dahil ilk üç adresim 0xFF ile doldurulmuş buldum durduk yere bozuldu ve ilk defa oldu sebebi ne olabilir?ilk iki resim normalde çalışan kayıt ve adres geçişini gösteriyor son resimde ise bozulmuş eprom görülüyor





tekrar programı yükledim gene düzgün çalışıyor eprom dahil hiç sorun yok müşteriye verdiğimde aynı sorun olur diye korkuyorum varmı nedeni hakkında bilgisi olan yada çözümü?
Hep meraktan

ahmet_zxc

bence kayıtlarının nereden başlayıp bittiğini bir yerde tut hatta 2 ayrı yerde..

kayıt silme diye bişey yapma. 0xFF ile doldurmaya silmeye uğraşma. adreslemediğin kaydı silinmiş kabul et.

sonuçta kullandığın malzeme 100 000 yazma ömürlü.. 0xFF yazdığında da ömrünü yiyorsun. ve muhtemelen bir yerde hatalı olarak bunu yazıp gerekli datayı siliyorsun.

ete

Şimdiye kadar eprom bilgilerinin kendi kendine değiştiğini hiç görmedim.
En alttaki resme bakarsanız bütün bilgiler yerinde duruyor yalnızca ilk 3 adres bilgisi $FF haline dönmüş gözüküyor. Bu ip uçlarından yola çıkarak benim tahminim, bu adreslere yanlışlıkla $FF bilgisi yazılmıştır şeklinde. Üstelik bu yazma sonlardaki adreslerden ($F2) başlamış ve $02 de son bulmuş gibi gözüküyor.

Ete

alisumer

hocam kaydın başlangıç adresini ff harici ilk veri diye arattığımdan ilk adrese program içinde 0xff yazılmasın diye sınırlama koydum.her kayıt sonrası bir arttırıyorum ve 0xFB olduğunda adresi değişiyorum .ola ki bu adrese bir hata sonucu FF yazsa bile bir sonraki ilk ff olmayan adres hemen sonraki adres zaten en fazla 1 kayıp öyle hata verirdi 3 adrese ff yazmayı dünden beri uğraşıyorum beceremedim.üstelik bu hatalı yazım herhangi bir kayıt yapmıyorken rutin bir şekilde cihazı kapattıktan sonra tekrar açınca oldu desem ki kayıt esnasında bir elektrik dalgalanması falan oldu o da yok eprom kaydı bir tuş ile yapılıyor aklıma ilk gelen bu 100bin kayıt sayısı byte başına bir ömür mü yoksa  tüm epromun ortalama ömrümü öyle ise ortalama adres başına 400 kayıt ömrü olur belki de ilk üç adres artık ölümün eşiğine gelmiştir 
EEPROM_YAZ:
  		WRITE	ADR1	,EE
  		DECFSZ  SAYI    ,F
  		RETURN
  		MOVFF	ADR2	,ADR1			;İLK ADRESİ GÜNCELLE
  		INCF	KAYIT_SAYISI 	,F	    ;İKİNCİ ADRESTEKİ KAYIT SAYISINI BİR ARRTIR VE GÜNCELLE
  		MOVF	KAYIT_SAYISI	,W
  		XORLW	0XFB
  		BTFSS	STATUS	,Z
  		GOTO	XXX
  												;255 KAYIT SAYISI OLDUYSA
  		GOTO	ADRES_DEGIS
XXX: 											;ADRES DEĞİŞ
  		MOVFF	KAYIT_SAYISI	,EE	
  		WRITE   ADR1,EE				
  		GOTO	DEVAM
Hep meraktan

alisumer

Alıntı yapılan: ete - 14 Nisan 2024, 21:13:57Üstelik bu yazma sonlardaki adreslerden ($F2) başlamış ve $02 de son bulmuş gibi gözüküyor.

Ete
burada kastettiğiniz epromun son adrresine kadar yazdın sonra adres değiştirdiğinde 13 adres sayınca sıra 2 ye geldi ise .onu da düşünmüştüm en son kayıt başlangıç adresimi 0xEA olarak kısıtladım o da 13 byte kaydırınca tam olarak o adrese geldiğinden seçildi .sonrasında tüm adresleri 0 yapıp en baştan kayda başlıyorum onu da denedim en az on takla attırdım eproma hata olmadı.sanırım eprom ömrü vefa etmedi ki eğer öyleyse byte başına en fazla 200 kayıt yapmışımdır.belki de orijinal ürün değil bir çakma işlemcim vardır.
Hep meraktan

mehmet

BOR gerilimini yükseğe ayarlayın. Daha önce
başıma geldi.

Yüksek akımlı led adaptöründen beslediğim
mcunun devamlı eeprom değerleri bozuluyordu.

Ancak bu şekilde buldum çözümü.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

alisumer

mehmet hocam şu bor tam olarak ne işe yarıyor voltaj dalgalanmasına karşı bir önlemmi bende o sigorta kapalı birtek poweronreset açık eski alışkanlıktan yoksa onun da ne işe yaradığını anlamış değilim açılışta reset at gibi birşey sanırım zaten açılışta reset atmış olmuyormu.
Hep meraktan

mehmet

#7
BOR gerilim değerinin altında mcunun hep
resette kalmasını sağlıyor.
Sizin mcuda 2.0V - 2.2V civarı BOR gerilimi.
(DS41262E-page 245)
Siz muhtemelen 8MHz den yüksek bir hızda
kullanıyorsunuz.
Bu çalışma rejiminde oluşan sorun yüzünden
e²prom değerleri değişebiliyor/silinebiliyor.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

alisumer

sanırım entegre çıkışında bir kısa devre falan olur da fazla akım çekerse voltaj düşümünden anlayıp işlemciyi korumak için yapılmıştır.lineer regülatör 5 v 1a güç veriyor hocam devrede akım çeken birşey yok iki led var  onlarda 1k ile sönük sönük yanıyor.ama belki de devrede ufak bir temas olmuştur haklısınız bi bakayım ayrıntılı.
Hep meraktan

Powered by EzPortal