Entegre canı isterse çalışıyor

Başlatan bybik, 19 Mayıs 2008, 02:14:04

bybik

Arkadaşlar resmen sorunum başlıktaki olay. Entegreye bazen elektrik verdiğimde çalışmıyor bazende çalışıyor.Devreye harekete geçirmek için elektriği açıp açıp kapamam gerekiyor.Acaba bunun nedeni ne olabilir?
Entegrem 16f877, entegreye  lcd matrix ve birkaç led bağlı.

z

Entegrenizin canı reset sinyali çekmiş olabilir.

Harici reset pinine RC tipi bir devre ile reset sinyali vermeyi deneyin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ete

Aslında tipik bir 100nf probşemine benziyor. Pic'in besleme bacaklarına en yakın bir yere 100nf kondansatör bağlayın (bağlı değilise tabiiki.)

İkinci bir neden de kristal yada rezonatör ne bağlı ise pic'in OSC backlarından uzak bir yerde duruyor olabilir. Bu kristal yada rezonatörüde picin OSC girişlerine en yakın yere getirin.

MCLR bacağı ile ;
+5V arasına 1 adet 4K7 bağlayın ve aynı yere 1 ad. 1N4148 diyot bağlayın. Diyotun çizgili ucu +5V da olacaktır. Yine MCLR bacağını  220nf ile şaseleyin.

Bütün bunlara rağmen düzelmiyor ise en son ihtimal olarak programda ADCON1=7 komutunu kullanmış mısınız ona bakın. Bu komut Analog olarak açılan A ve E protunu digital'e çevirmektedir. Bazen anolog bırakılan ve burada digital iş yapmaya çalışılan devrelerde de aynı sonuçlar alınabiliyor.

Ayrıca kullandığınız pic 16F877A ise bu seferde comparatör olarak açılan A portunuz var demektir. Onuda iptal etmek için programın başına;
CMCON=7 komutunu ilave edin.

Eh artık yinede düzelme yok ise o pici kaldırın atın ve sıfırdan yeni bir devre kurun.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ferdem

Ben de reset olayından kaynaklanabilir diyorum. "Power on reset" (enerji verme ile reset) bir sistemde düzgün çalışmamıştı(aynen dediğiniz gibi "reset" bir oluyor bir olmuyordu) harici "reset" devresiyle "reset" atıyorduk. "Reset" işleminin olabilmesi için "microcomputer" sistemde bazı düğümlerin belirli bir süre lojik "low" da tutulması gerekiyor. Bu yüzden RC reset devrenizdeki R ve C değerleri de önemli. 10k ve 1uf uygun olacaktır. Özetle:
http://users.tpg.com.au/users/talking/reset.gif
Burdaki gibi bir devreyle MCLR ucundan "manual reset" atmayı deneyiniz.

Sonucu buraya yazarsanız memnun oluruz. İyi çalışmalar.

Erol YILMAZ

MCLR pinini boşta bırakmış olabilir misiniz ?

burak_82

Benzer bir durumla ben de karşılaşmıştım. Sistemi açıp kapatmak için kullandığım mekanik anahtar kapanırken çok fazla gürültü ürettiği için sistem başlamıyordu. Anahtarı değiştirdim, düzeldi. Denemende fayda var. Bir de anahtara yakın bir yere 100,220 ya da 470nF koyarak oluşabilecek gürültüye engel olabilirsin

Elektron74

@ete
Hocam 16F877 ve 16F877A denetleyicilerinde A portunu dijitale çevirmek için ADCON1=7 yazmak yeterli değil mi? Siz 16F877A için CMCON=7 yazmak gerektiğini belirmişsiniz.
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

ete

16F877 ile 16F877A nın her ikisinde ADC pinleri mevcuttur.
Bu nedenle bu pinleri Digital yapmak için ADCON1=7 komutu kullanılması gerekir.
16F877 de Comparatör yoktur. Ama 16F877A Analog portlarda ayrıca  Comparatör bulunmaktadır. Bu nedenle 877A için şayet pinleri digital kullanmak istiyorsanız CMCON=7 komutunu da kullanmanız gerekir.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Elektron74

Eğer doğru anladı isem; 16F877A denetleyisinde A portunun dijital yapılması için ADCON1=7 ve CMCON=7 komutları birlikte kullanılması gerekiyor. Sadece ADCON1=7 komutu yeterli olmuyor değil mi?
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com