5 saniye süre ile pic'in kendi elektriğini kesip vermesi nasıl olur?

Başlatan HAKKITANIR, 26 Aralık 2017, 15:09:53

baran123

MCU 2575 ile besleniyor ise işin kolay
Monostable multvibratör yap bunu MCU ile tetikle ve çıkışını LM2575 in ON/OFF pinine gir.
Olmaz mı ?

ipek

forumlarda dolaşırken Basic ve Proton'un yazılımsal Reset atabildiğini okumuştum..

magic_gun

hard_reset
asm
banksel rcon
movlw b'11001100'
movwf rcon
endasm

c turevleri ve b turevleri için kullanılabilir  , işlemci yeni enerjilenmiş gibi olur

hayal etmeden basaramazsınız www.atariturkiye.com

baran123

Zaten 18F serisi kullaniyor isen reset komutu var donanimsal olarak.

fide

CCS C için reset_cpu(); komutu var. yeniden başlamada da restart_cause() komutuyla da cpu neden reset attı öğrenilebiliyor. WatchDog mu, enerji mi başka sebep mi öğreniliyor.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

Birhan

Hangi PIC i kullanıyorsunuz? Kaç Volt ile çalıştırıyorsunuz?

Anladığım kadarı ile problem PIC i resetlemek değil, çalışmasını durdurmadan beslemeden ayırmak, eğer konu bu ise ve pic ile led vs. sürmüyorsanız ihtiyaç duyduğu akım çok küçük olacaktır.
+ besleme ile pic arasına koyacağınız bir diyot ve 1farad lık super cap 5sn den uzun bir süre PIC i hayatta tutacaktır.
Devreyi açıp kapatmak içinde - besleme ile kondansatör arasına NPN hexfet koymak yeterli olur. Yazılımla istediğiniz süre açıp kapatabilirsiniz.

1f Kap. Örn: 1farad-5v5

Ağırlık sorunu olan projelerde Super Cap ile pic çalıştırdım. Ancak açma kapama yapmadım, aşağıdaki devre denenmemiştir, sadece fikirdir.
Q5 : IRLML2402 3x2mm lik smd boyutlarıyla pek yer kaplamayacaktır.
Diyot devrenin geri kalanının SCap tan akım çekmesini önlemek içindir. Pic voltajını düşürmemek için LowDrop tipi seçilmelidir.
10k pullUp direnci devreye akım verildiğinde fet i açmak için gereklidir.

Veya hexfet i çıkartıp doğrudan DC-DC yi PIC ile kapatıp açmakta denenebilir. Ancak bu durumda pullUp direnci DC-DC aç/kapa pini ile diyodun öncesine bağlanmalıdır. PIC in besleme geriliminin DC-DC den geldiğini düşünürsek ilk çalıştırma için DC-DC aç/kapa pin ine dışardan 5V vermek gerekir.

Devreyi ve yazılımı görmeden farklı veya doğru çözümler uydurmak zor.



Zoroaster

Bu devre yanlis olmus.

Gate ucuna bagli pin lojik 0 oldugunda ne olur bir incele. Ayrica islemcinin enerjisini kesip acmak icin MMV devresi kurmak lazim.
Seytan deliginden kacti.

yesilu

Tetik pini - diyot - kondansatör - depletion mosfet gatei şeklinde bağlayıp mcu vcc sini mosfetin üzerinden geçirsek benim kafa simülasyonunda oluyor ama bir simülasyon programı daha güvenli olur, birşeyin kafasını yaşıyor olabilirim :)

Birhan

Sabahın ikisinde uydurulan devrelerin yanlış olma hakkı vardır, denemediğimi ve asıl devreyi / amacını görmeden doğru bir şey uyduramadığımı da belirtmiştim.

Ayrıca işlemcinin enerjisini kesmiyorum. Soru: 5 saniye süre ile pic'in kendi elektriğini kesip vermesi nasıl olur? idi. pic in enerjisini 5sn kesip verecek bir devre nasıl olur? değildi.
İlk cümlelerimden biri; "Anladığım kadarı ile problem PIC i resetlemek değil, çalışmasını durdurmadan beslemeden ayırmak", yoksa enerjisi olmayan pic 5sn sonra enerjiyi nasıl açacak? Yanlış anlamışsam yazdıklarımı yok sayın.

Gate i sıfır yaptığımızda ne olur?.
Genellikle fet devreyi tamamlamaktan vazgeçer. En azından şimdiye kadar yaptığım switch devrelerinde böyle yaptı.
Neyi göremediğimi göremedim. Acemiliğime verin.
Gerçi 0V u işlemciden ayırınca mosfet ne yapar diye düşünmek aklıma gelmiyor değil ama ayaküstü yaptığım şey sayfalarda gezinirken ilgimi çeken bir konuda fikir üretmek. Devre tasarlamak değil.

Simulatör olarak ne kadar güvenilirdir bilmiyorum, bu linkte (falstad.com) gene ayaküstü devreyi kurdum. Çalışıyor. Teori tamam. Pratikte çıkabilecek sorunları tecrübeli tasarımcılara bırakıyorum.

PIC yerine LED koydum, açma kapama pin i içinde bir düğme.  Düğmeyi kapattığınızda beslemeden (Batarya) akım gelmiyor, LED(PIC) kondansatör den beslenerek çalışmayı sürdürüyor. Düğmeyi açtığınızda devre bataryadan beslenmeye başlıyor.





HAKKITANIR

Alıntı yapılan: magic_gun - 28 Aralık 2017, 02:58:11
hard_reset
asm
banksel rcon
movlw b'11001100'
movwf rcon
endasm
c turevleri ve b turevleri için kullanılabilir  , işlemci yeni enerjilenmiş gibi olur
Alıntı yapılan: fide - 28 Aralık 2017, 08:46:05
CCS C için reset_cpu(); komutu var. yeniden başlamada da restart_cause() komutuyla da cpu neden reset attı öğrenilebiliyor. WatchDog mu, enerji mi başka sebep mi öğreniliyor.

bu tür yazılımsal seçenekleri denedim.

işlemcim dsPIC30F, Compiler Microchip C30

hatta daha ileri gidip kullanmak istemediğim go to label tarzında ve benzeri şartlı dallanma kodlarını bile yazılımla denemiştim.
işlemci üretim hatalı olabilir, yada farklı bir şey, elektrik kesilip verilmeden istediğim çalışmayı ben gözlemleyemedim.

dsPIC30F üzerine yazılımsal başka öneriler varsa deneyebilirim. ama şimdiye kadar yazılımla bu iş yapılamadı.
MCLR pinini belirli bir süreliğine 0V. ye çekmek gibi donanımsal denemeside başarısız oldu.

devremde LM2575-5 den giriş çıkışı 5V. olan dc/dc izole konverter besleniyor. LM2575-5 ve dc/dc konverterin açma kapama kontrol pinleri var.
yalnız bu pinleri optokuplör tarzı tamamen izole bir çip ile kontrol edebilirim. Çünkü dsPIC çipin beslemesi, LM2575-5 çıkışından ve dc/dc konverterin girişinden tamamen izole halde olmalı diye düşünüyorum.
dc/dc konverter reset kontrol donanımsal pini kendi girişindeki 0V. ile çalışıyor. bunun çıkışındaki 0V. girişindeki 0V. den elektriksel olarak ayrık halde.
bir önceki sayfada verilen bu işe özel hard reset çipleriyle deneme yapamadım. Bu çipler le olur yada farklı bir yöntemle, mikroişlemci ile optokuplör girişinde anlık bir palsle, optokuplör çıkışını belirli bir süre 0V. de tutmalıyım.

yukarıda anlatmak istediğim tam olarak buydu. opto girişinden anlık bir 5V. yada 0V. palsiyle, opto çıkışını bir-iki saniye 0V. ye çekmek. bunu yaparsak ve şimdiden ön göremediğim, böyle bir devre ilk çalıştığında picin bu işe özel kullanılacak pin durumuda dezavantaj oluşturmayacaksa bizim iş en iyi şekilde görülmüş olacaktır.

en iyisi çizmek galiba çizimle geri döneceğim.

HAKKITANIR


üst de ki gibi bir devre yapmam gerektiğini düşünüyorum.

mikro işlemci beslemesi ve opto kuplör çıkışındaki 5V ve 0V ler ayrık izole halde. biribiriyle alakası yok.
mikro işlemci ile opto girişi arasına öyle bir devre yapılmalıki istediğimiz gecikmeyi yapabilsin.
zannediyorum işlemci böyle bir gecikme devresini normalde 0V. de olan çıkış pinini +5V. ye çekerek yapmalı, çünkü işlemci ilk açıldığında defaultda ve bizim konfigürasyon ayarlarımızda çıkış pinini 0V. de tutmamız daha kolay ve hatasız olacaktır.

yazılımda ben istediğimde işlemci çıkış pinini +5V. yaptığımda, optokuplör çıkışında 4 nolu pini 0V. ye çekilmeli ve bir kaç saniye o şekilde kalmalı. bu bir kaç saniye içerisinde işlemci pini boşta da olsa, 0V. de de olsa opto çıkışında konum değişmemeli.

şimdi bu durumda opto girişi ile işlemci arasına bir devre girmemiz gerekecek ve gecikmeyi bu devre sağlayacak.

buraya kadar bir yanlışımı gören var mı? devre önerileriniz varsa alayım.

Birhan

Sn. Hakkı Tanır,
Durumu şöyle anladım,
LM2575 ile PIC e regüle +5V sağlıyorsunuz. Ancak PIC elektriksel olarak devreden izole olsun diye araya dc-dc konvertör koyuyorsunuz.
Bu durumda 0V u paylaşmadıkları için PIC, dc-dc nin reset ini 0V a çekemiyor.

dc-dc sayesinde PIC zaten devrenin LM2575 kısmından izole halde, optokuplör ile dc-dc yi resetlemesinde problem olmamalı.
Ancak PIC optokuplör üzerinden dc-dc yi resetlediğinde kendi güç kaynağınıda keseceği için dc-dc yi resette tutamaz.
5sn boyunca reseti sürdürebilmesi için bağımsız bir kaynağa ihtiyacı var. Hafıza pili veya yüksek kapasiteli kondansatör gibi.

Anlamadığım bir tek şey kaldı, PIC resetlenecekmi yoksa 5sn bekleyip dc-dc yi serbest bırakıp çalışmaya devammı edecek?
Resetlenecekse destek kondansatörü PIC e  4-5sn yetecek değerde seçilebilir,  dspic30f de programlanabilir Brown-out Reset özelliği var, 2V ile 4.5V arasında ayarlanabiliyor, PIC 2.5V a kadar çalışabildiğine göre BOR u 4.2V a ayarlarsanız destek besleme, PIC dc-dc nin resetini bırakacak kadar tükenmeden önce BOR PIC i resetleyecektir.

Resetlenmeyecekse PIC dc-dc yi resetler, 5sn bekler ve serbest bırakır. Her iki senaryo içinde dc-dc PIC i zaten izole ettiği için izolasyonda sorun olmaz diye düşünüyorum.

Yok bunların hiçbiri uymaz ise doğrudan lm2575 den beslenen, dc-dc den bağımsız 6 veya 8 bacaklı (yer sorun olmasın diye) bir pic ile dc-dc yi açıp kapatabilirsiniz. Zamanı gelince dspic30f optokuplör aracılığıyla küçük PIC i haberdar eder, küçük PIC LM2575 tarafında olduğu için dc-dc yi istediğiniz süre boyunca kapatır, sdpic30f in enerjisi tamamen kesildiği için reset gereksinimide olmaz. Ayrıca küçük PIC i enerjiyi verdikten sonra kesme sinyalini kontrol etmeden birkaç saniye bekletirseniz büyük PIC in default pin durumu içi kaygılanmaya gerekte kalmaz, küçük PIC in beklediği süre içinde büyük PIC in tüm konfigurasyon işi tamamlanır ilgili pin i hazır hale getirir.

Bu senaryoda uygun değilse tam çözüm solid state röle ve süreyi ayarlayacak RC devresi.

rree

Maksat Pic kilitlenmesini önlemekse  tecrübelerime göre, bekçi köpeği reset atma işe yaramıyor.
Pic kilitlendiğinde reset butonuna bastım. Kendine gelmedi. Bekçi köpeği kurulu idi ,o da işe yaramamış. Enerjisini kesip tekrar verdiğimde çalışmaya başladı. Önemli yerlerde işlemciyi
1 saatte enerjisini açıp kapayan devre ile çözdüm.

cetin1990

Bekçi köpeği ve reset ucundan yapılan reset nasıl işe yaramaz? Wdt Gayet güzel çalışıyor.
Buton ile olmuyorsa, Mclr kapalı olabilir mi?
Bu kilitlenmeleri gösteren basit bir örnek iletir misiniz?

Tahminen şu durumda işe yaramamış olabilir.
Bir pindeki giriş gerilimi negatif olduğunda ortaya çıkan kilitlenme.

Bence bu devrenizde tasarım hatası var.
Wdt ile reset çalışır. Mesela Süreyi 1 dakika ayarlayın. 1 dk. İçinde clrwdt yapılmazsa  resetlenir.

Bir tek kafama takılan, negatif gerilim ile olan kilitlenme. Galiba bu durum elektriksel olarak ortaya çıkıyor. Bildiğimiz Reset işe yaramıyordu.

Pine negatif gerilim vermeseniz de besleme geriliminin üzerine çıkarsa, aynı durum.
Örneğin seri bir kondansatör varsa, buradan pine sinyal geliyorsa bu risk var. Ani darbelerde oluyor. Sinyaliniz kondansatör üzerindeki gerilim ile toplanarak beslemeyi geçebiliyor.

Muhtemelen sizin sorun böyledir.

mufitsozen

@cetin1990  pic mcular gibi cmos kullanilan elektronik devrelerde ESD ve/veya EMC ile ilgili besleme problemleri vbden kaynaklanan 'latch-up' denilen bir durum vardir. Bundan cikmak icin power off/on yapmak gerekir.

On seneden fazla bir zamandir forumda konusulur, bir suru bu konu ile alakali application note, pcb yapma ve guc kaynagi teknikleri vardir,
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.