pic kapanırken veri kaydetme

Başlatan yunusemre, 04 Temmuz 2020, 22:47:17

yunusemre

18f4520 ile çalışıyorum. elektronik devre kapanırken empoma iki bytelik bilgi yazmak istiyorum.

sorunu yazılımsal olarak çözmek istiyorum. aklıma brown out reset özelliği geldi. 18f4520 de brown out reset kesme özelliği bulunuyor. kesmeyi kullanarak gerilim 4,5 volta düştüğünde eproma bilgiyi yazmayı düşünüyorum. fakat nasıl yapacağımı bulamadım. brown out reset kesmesi nasıl aktif edeblirim. brown out reset kesmesi ile 2 bytelik veri pic kapanmadan eproma yazılabilirmi

yunusemre

18f4520 ile çalışıyorum. herhangibi bir yazılım dilinde cevap yazabilirsiniz.

pic kapanmadan eprom hafızasına 2 bytelik bilgi yazmak istiyorum. yazma işlemini yazılımsal olarak yapmam gerekiyor. aklıma brown out reset özelliği geldi. 18f4520 de brown out reset kesmesi bulunuyor. kesme özelliğini kullanıp 2 bytelik veriyi eproma pic kapanmadan yazabilirmiyim.

brown out reset kesmesini nasıl kullanabilirim

oguztkn

HLVD'yi kullanarak kesmesi ile yapabilirsiniz

MB_77

#3
bu mesaj tarafımdan silinmiştir.

ete

Bildiğim kadarı ile bunun tek bir yolu var. Öncelikle işlemcinin voltajının kesildiğini net olarak algılamak ve ardından eproma yazacak kadar zaman bırakacak bir besleme sisteminizin olması gerekiyor. İşin püf noktası beslemenin kesilmesini algılatacak besleme girişinde kondansatör olmamalı yada çok düşük değerli olmalı ama pic beslemesinde yüklü bir kondansatör gurubu bağlı olmalıki besleme anında göçmesin. Elbette bu iş ana beslemeden başlayacak. Köprü diyottan sonra bir seri diyot kullanılarak voltaj regülatörüne giriş yapılır ve diyottan önceki voltaj bir gerilim bölücü ile pic'in bir girişine verilir. Bu giriş analog da olabilir normal giriş de olabilir yeterki seviyeyi tutturacak gerilim bölme işlemini yapın. Diyotttan sonra yeterli kondansatör ile beslenmiş bölüm yaratılır ve besleme kesildiğinde diyottan önceki bölüm anında sıfırlanırken diyottan sonraki bölüm kondansatör gurubunun sağladığı takviye nedeni ile bir kaç ms daha besleme takviyesini sürdürür.Böylece voltaj kesildiğinde işlemci bunu algılar ve doğruca eproma kayıt kısmına gidip bilgileri kayıt eder ve orada işlemcinin kapanmasını bekleyerek görevini yerine getirmiş olur.
Ete

yunusemre

cevaplarınız için teşekkür ederim. cevaplarınız sayesinde ekteki resimde olduğu gibi bir bağlantı yapmam gerektiğini anladım. HLVD pinim boş bu pini kullanarak HLVD kesmesini aktif etmem gerekiyor. bu sayede bilgiyi yazabilirim.

fakat algılama pinine pcb yi bastığım için  gerilim bölücü atamayacağım sorun olurmu

aşağıdaki registerleri doğru ayarladığımı kontrol edebilirmisiniz

HLVDCON=00111110  şeklinde ayarladım

7. bit eşiğe eşit yada düşük olduğunda işlem gerçekleşsin.
5.bit kesme bayrağı üretilsin
diğer bitlerde voltaş eşiği olarak 4.59v belirlemek için kullandım

PIE2=00000100  2 bit kesme aktif etmek için
INTCON=11000000  kesmeleri ve çevresel kesmeleri açmak için

Bu eki görüntüleyemezsiniz.

ete

Bir sorun gözükmüyor. Sonucu bildir lütfen.
Ete

MB_77

#7
bu mesaj tarafımdan silinmiştir.

yunusemre

#8
devre dc 20v led trafosu ile besleniyor trafonun çıkışında lm2596 lı dc-dc modül var. gerilimi 5v a düşürüyor 100nf lardan çok sayıda paraziti alsın diye besleme hatlarına attım.yararı varmı emin değilim. pcb montalı ve çalışıyor. devreye rc filitre eklemek için direnç ve kondansatör yeri yapmıştım. direnci söküp diyot ve kondansatör ekleyeceğim.

yardımlarınız için teşekkür ederim. yarın deneyip buraya yazacağım

Maxim

hlvd için bir pin harcamana gerek yok
kendi beslemesini bunun için kullanabilirsin
ben o şeklide kullandım sorunsuz problemsiz

yunusemre

#10
Alıntı yapılan: Maxim - 06 Temmuz 2020, 07:56:53hlvd için bir pin harcamana gerek yok
kendi beslemesini bunun için kullanabilirsin
ben o şeklide kullandım sorunsuz problemsiz


HLVDL son 4 bitini 1110 yapmam gerekiyormuş. peki üste koyduğum resimdeki devre gerekli mi

Maxim

ben HLVDCON=%01111010 yaparak kullanmıştım, 1010 3.69 voltun altına denk geliyor
ama onunda alt ust toleransı var.
1110 5 volta çok yakın, en ufak bir dalgalanmada işlem devreye girecek
o yüzden ben 1010 kullandım, bunun altına düşünce kesin enerji kesildi demek.
(bu değerlerin dokumanda bir tablosu var)

hayır hiç bir devreye gerek yok
ben sadece 100uf olan 5 volt besleme kondansatorunu 1000uf ile değiştirmiştim biraz daha zaman kazanayım diye
fakat sonradan yaptığım devrelerde buna bile gerek kalmadı.

not: Ben proton+ kullanıyorum, tam emin olamadım picbasic içerisinde hardware interrupt olayı biraz sıkıntılı olduğu için acaba problem çıkarmı bilemedim şimdi.

yunusemre

#12
sayfa 341 de 4 bitin ne olması gerektiği yazıyor.

fakat sonradan yaptığım devrelerde buna bile gerek kalmadı.

dediniz sakıncası yoksa devreyi burada paylaşırmısınız. yoksa registeri bu şekilde ayarladığımız zaman oluyor mu

yazılımı mplab x programında xc8 derleyicisi ile yazıyorum

Maxim

bu iş için özel bir devre yok, register ayarı yeterli oldu

ete

Bu sistem hiç kullanmadım. Sesli düşünerek olaya mantıksal açıdan bakmak istiyorum.
Bir voltaj seviyesi belirliyorsun (örnekte 4,59V) ve işlemci kendi ref voltajını üreterek bu seviyeyi yaratıyor ve sürekli olarak besleme voltajı ile karşılaştırıyor. Besleme belirlenen seviyenin altına düşerse kesme bitini set ediyor. Mekanizma bu. BU aşamdan sonra program kesme etiketine gidip verileri orada kayıt etmesi gerekir. Peki beslemeden sürekli akım çeken işlemci var iken beslemenin kesilmesi ile bu seviye yeterince yavaşmı düşüyorda veriler kayıt edilebiliyor. Çünki verilerin kayıt olabilmesi için yakalanan eşik seviyesi ile işlemcinin çalışmasını sürdürecek kadar bir voltajın olması arasındaki geçiş süresi kadar bir vakit olması gerek. Burada bilmediğimiz nokta, beslemenin, eşik seviyesi olan 4,59 V dan işlemcinin çalışabileceği 3V seviyesine kadar ne kadarlık bir zaman diliminin geçtiği. Sistem çaışıyor ise demekki yeterince zaman oluşuyor. Enteresan bir durum.

Bu sistemi uygun bir zamanda deneyeceğim.
Ete

Powered by EzPortal