Devre enerjisi kesilince çıkış portları rastgele çıkış yapıyor?

Başlatan F®T, 03 Kasım 2015, 23:54:52

F®T

Bakalım çözüm çok aslında tabi extra birşey yapmakta istemiyorum.O da bir çözüm.İşlemcinin bu çıkışına bir rc devre yapıp geciktirmekte bir çözüm.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Konu ile ilgili gelişmeleri yazıcam.Burak ve Enes size hayırlı geceler diliyorum.Teşekkürler.Allaha emanet olun.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

Ferit Abi dün gece senin için 16F877A için microchip tarafından yayınlanmış bir "ERRATA" , dizgi hatası dökümanını okudum .. Microchip'in 16F877A'ların 0242xxx kodlu üretimleri üstündekiler hariç diğerlerinde 4MHZ çalışma üstünde bazı belirli kod silsilesi ve komut çağırma kümelerinden kaynaklanan , programda belirsiz ve hatalı çalışma meydana geldiği bundan dolayıda işlemcinin hatalı çıkışlar ürettiği ifade edilmiş .. Bu durum REV B versiyonlarında artık bulunmuyormuş ... Yani çekirdek işlemci üretim hatası var bir seride ...

Tavsiyem osilatörü 4 MHZ'e çekip bir denemen ...   

Time delay circuit adı altında internette birçok devre kalıbı bulunuyor ... Bunlardan herhangi birisi bizi kesin çözüme götürecektir zaten ... Ama yazılımsal veya pic üzerinde ufak bir değişme yaparak çözme konusuna gelince , benim birkaç önerimden birisi yukarıda bahsettiğim kristalin 4MHZ'e çekilmesi , ayrıca TRIS ayarlarından önce PORT sıfırlama ayarlarının verilmesi , ENES kardeşimin dediği gibi program açılışında  uzunca bir bekleme gibi öneriler var kafamda , en önemliside Brown Out sigortası açılacak , PWRT açılacak , (BROWN out açıkken zaten PWRT ayarına bakmıyor derleyici , onuda otomatik olarak etkinleştiriyor ..) son önerim ise : MCLR fonksiyonunu açık tutup , MCLR pinini VDD pinine bağlamak BOR sigortasını garanti altına alıcaktır ...

Burak
Ω Gens Una Sumus Ω

gogoce

ferit abi 18f452 877 ile birebir bacak uyumlu istersen ona geç
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

F®T

Ömer merhaba kardeşim.Evet ayaklar aynı fakat bayağı bir malzeme var sorun o.Onun için çözüm üreticez.Yapacak birşey yok.Daha sonrası zaten o paket yapısına uygun 18 serisi entegre kullanıcam.

Burak teşekkür ederim özverin için çok makbule geçti.Brown Out sigortası ve PWRT açık. MCLR  4k7 ile vdd ye bağlı.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

Ω Gens Una Sumus Ω

F®T

Hayır zaten o ayarlar ve bağlantı mevcutta bulunuyor.Onu demek istemiştim.

İlginç bir durum tespitim oldu.Kesme ayarlarını kapattığımda hiç bir şekilde enerji verme veya kesme anında çıkışlarda saçmalama olmadı.Bunu nasıl yorumlarsınız.

Ayrıca 18f452 ilede kartı test ediyorum.Fakat aynı hatalı sonuç burdada oluyor.Bundada kesmeyi iptal edince hiç bir anormal durum oluşmuyor.

Kesme içinde adc ölçümü yapıyorum.Bu olaya sebep olma ihtimali nedir?

Son durum şu,

18f452 entegresindeki Brown Out sigortası değerini 2,0 volttan 4.5 volta çıkardım ve kesme içinde adc okuma sayısını arttırdım.Şu anda sıkınıtı yok görünüyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

4.5 sıkıntı çıkarır Ferit abi ileride ... Yani regülatör sendelese işlemci Reset konumuna düşecek .. BOR'u  en azından 4.2 olarak denesene ...

Burak
Ω Gens Una Sumus Ω

F®T

Akşam denedim.4.5 ara da yapıyor yine.4.2 daha sık ona göre.çözüm tan olmadı.Arada olmasıda uymuyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

Ferit abi kesme rutinlerinden dolayı işlemci voltaj sapmalarında kafasına göre kesme bloğuna gidiyor o yüzden önlemi kesme bloğunda almak gerekiyor gibi geldi bana  ..

Burak
Ω Gens Una Sumus Ω

İlyas KAYA

Tahminim;
PIC enerji kesildiğinde olabildiğince çabuk resetlemeli. Bu nedenle 4.5volt ideal. Başlangıçta 1sn veya 2sn gecikme de verirseniz daha iyi olur.

Eğer kesme bir pin ile yapılıyor ise bu normaldir. PIC resetlemeden önce INT pinini kontrol ediyor. gerilim düşük olduğu için high seviye olarak okumuyor, bu değişiklik kesme oluşmasına neden oluyor olabilir.

WDT 'yi de açık yapıp deneyin.
Çözüm olmaz ise beslemeden(kesildiği yerden) bir 5v zener ve transistör ile PIN'e low olacak şekilde girin. Burada low okumuyor ise kesme rutini çalışmasın gibi bir mantık çözüm olabilir.






Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

F®T

İlyas hocam sorun kesme rutinini iptal ettiğim zaman 16f877 veya 18f452 hangisi olursa olsun oluşmuyor.Ama açık iken 16f877a da bir türlü önüne geçemedim.

Şöyle olurmu neticede brown out resetle alakalı ben bu reset bitinin aktif olduğu zaman kesmeyi iptal etsem olurmu.BOR aktif biti hangisi.
Eğer bor aktif ise kesmeleri iptal et.Bu şekil bir komutla çözüm olabilirmi.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Alıntı yapılan: Burak GÜNAY - 07 Kasım 2015, 14:00:57
Ferit abi kesme rutinlerinden dolayı işlemci voltaj sapmalarında kafasına göre kesme bloğuna gidiyor o yüzden önlemi kesme bloğunda almak gerekiyor gibi geldi bana  ..

Burak

Evet .Zaten kesme iptal olunca hiç bir sorun yok.Fakat beslemede bozulmayı anlayıp kesmeyi iptal etmek için ne yapmak lazım.PCON.0 ve 1 nolu bitleri ile birşeyler yapmaya çalıştım ama farketmedi.Başka bir register değeri varmı bunun tespiti için.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

RCON'un 0 - 1 ve 2. bitlerinin kontrolünü kullanarak bir yerlere varılabilir .. Bu kontrolleri kesme rutini içerisinde yapmak şartıyla .. Unutmamak gerek  .. bu bitler 0 olmuş ise BOR - POR - yada PD oluşmuş demektir .. Ve bu bitler yazılımla tekrar 1 yapılarak bırakılmalı ..

Örnek ;


if POR=0 or BOR=0 or PD=0 then
'interrupt bayraklarını temizle ve POR=1 : BOR=1 : PD=1 yönergesini kullanarak interrupt bloğunu hemen terket ..
endif


Burak
Ω Gens Una Sumus Ω

Burak

Unutmadan ....

PD biti sadece okunabilir bir bit olduğundan bu bite yazma yapmak gereksiz (etkisiz) ama bu biti okumak ne kadar sağlıklı olur bilmiyorum ...

Diğer bitleri program açılışında da POR=1 ve BOR=1 diyerek resetlemek gerekli diye düşünüyorum .

Burak
Ω Gens Una Sumus Ω

Powered by EzPortal