Hızlı bir sayıcı için eeprom kayıt yöntemi

Başlatan DigMan, 12 Kasım 2023, 22:33:35

DigMan

Merhaba Ete hocam, ustalar ve arkadaşlar. Forumlarda çok aradım ama çözüm bulamadım. Ya yapabilen olmadı, ya da ihtiyaç duyulmadı sanırım. Şöyle bir sorunum var:

1-2KHz hızında sayan bir sayıcım var. Sistem normal çalışırken ve enerji kesildiği anda, son değerleri eeproma nasıl kaydedebiliriz? Bunu minumum maliyetle yapabilmemiz gerekiyor. Ben bir kaç yöntem düşündüm ve uyguladım ama çok sağlıklı olmadı.

Fikir, tecrübe ve tavsiyelerinizi dinlemek isterim.

ete

Bu hızda veri kaydını eprom için hiç de uygun bulmuyorum. Anında eprom kayıt ömrünü doldurursun.
1Khz hız demek her bir ms de bir kayıt demektir ki bildiğim epromlar bu hızla çalışamazlar.
Bu durumda en akıllıca iş elektriğin kesildiği anı tespit edip bu andan itibaren en azından 10-20ms lik bir süre kazandıracak bir donanım (beslemede ek kondansatör)kullanarak bu süre içinde tek bir kayıt yapmak en doğrusudur.

Epromların ortalama yazma ömrü 1.000.000 yazma dır. Her 10 ms de bir kayıt da yapsanız bu ömrü kısa zamanda doldurursunuz. Çünki 1 sn de 100 kayıt yaparsınız ve 1 dakikada 6000 kayıt 1 saatte ise 360.000 kayıt ve sonunda 3 saatte eprom ömrü dolmuş olur. Bu durumda kayıt metodunu değiştirmekten başka çareniz yok gibi. Bu söylediklerim benim bildiklerime dayanıyor. Bilmediğim bir başka eprom veya yöntem olabilir. Bilen varsa söylesin öğrenelim.

Ete

istinaf duvarı

#2
Şöyle bir devre yapılabilir. Shotky diyotun görevi ana besleme ile kondansatörü ayırmak, kondansatörün ana besleme tarafına besleme yapmasını önlemek. Enerji kesildiğinde VDD algılama ucu düşük seviyeye inecektir. Bu esnada PIC'in beslemesi kondansatörde depolanan enerji ile yapılacaktır. Burası düşük seviyeye indiğinde kayıt rutini tetiklenip hafızadaki değer EEPROM'a aktarılır. Bu eki görüntüleyemezsiniz.

DigMan

Ete hocam haklısınız. Zaten her pulse geldiğinde kayıt yapmak, dediğiniz gibi eepromu kısa sürede bitirir. Ben bunu bir algoritmayla, 10 sn boyunca giriş sinyali gelmediğinde kayıt yapsın diye kurgulamıştım. Ama bu seferde aniden enerji kesilmesi durumunda yine kayıt sorunu çıkacaktı ortaya.

Evet hem sizin hem de istinaf duvarı arkadaşımızın dediği gibi şebeke yokluğunu algılayıp büyük bir kondansatör ile zaman kazanıp kayıt yapmak en doğru yol olacak.

Teşekkürler,,

temha43

Merhabalar
Benim sorum daha basit olacak bunu programda nasil yapıyoruz pir pinin son durumu neyse elektrik kesildilip geldiginde de ayni durumda kalmasi için program satırlarını paylasbilirseniz
şimdiden teşekürler.

ete

O pinin durumunu sıklıkla bir eprom adresine kayıt edersin. Yada pin durumu netede değişiyor ise orada kayıt edersin örnek
Durum var byte
Write $10, Durum: pause 10
Voltaj kesilip devre sonradan yeniden çalıştırıldığında ise BASLA satırından hemen önce eprom okunup pin okunan değere eşitlenir.
READ $10, Durum
If Durum<>255 then
  PortD.0=Durum.Bit0
Endif
Hepsi bu
Ete

temha43


mehmet

Eğer eeprom alanının bozulma durumu söz konusu ise; kaydırmalı kayıt yapılabilir.
Ya da DS1307'nin RAM alanını kullanmak uygun olacaktır.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

Maxim

18F serilerinde HLVD özelliği var
high/low voltage detect

ben kullandım, 18f25k22 de
enerji gittiği anda eeproma bişey yazdırabiliyorsun anında

ahmet_zxc

biz pic i 5 v ile besliyoruz, 4 v a düştüğünde kayıt yapıyoruz 3,3 e düştüğünde kayıt tamamlanmış oluyor ekstra vakit bile kalıyor.
ayrıca epromu komple yazmak yerine bit bit yazarsanız ve nerede kaldığınızı da işaretlerseniz eprom ömrünü yüzlerce binlerce kat artırmış olursunuz.

Powered by EzPortal
▲