Kristali Sonradan takınca devre Çalışmaya başlıyor ?

Başlatan altanbozoglu, 09 Ağustos 2011, 17:51:08

altanbozoglu

Arkadaşlar merhaba;

         RS232 ile haberleşen basit bir devrem var. 16F877A kullanıyorum PIC'e max232 ve RB0 portuna bağladığım bir led var. Sorunum şu; Devreye enerji verdiğimde kendiliğinden çalışmaya başlamıyor. Deney bordundan kristali söküp bir veya birkaç kez yerine taktığmda RB0 daki led'im yanıp sönmeye başlıyor ve devrem bundan sonra sorunsuz çalışıyor. Enerjiyi kesip tekrar verdiğimde aynı tak çıkar işlemini yeniden yapmam gerekiyor.Osilatör devresinde, Elimde Bulunan 22pf kondanstörleri 33pf la değiştirdim. yeni 4 Mhz. kristaller de denedim. fakat sonuç değişmedi. Sorunun Osilasyona başlayamaması olduğunu düşünüyorum. 100nf lık kondanstörü de değiştirdim belki bozuktur diye ama olmadı. Çözüm hakkında yardımcı olacağını düşündüğünüz fikirlerinizi bekliyorum. :)

Maxim

mclr girişi ve diğer pic config ayarları ne durumdadır ?

z

1M lık direnci xtal uçlarına paralel bağlamayı dene.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

altanbozoglu

Arkadaşlar; Kodun Tamamı Aşağıda. Mclr. ye 4.7K lık bir dirençle +5V ve bir Butonla ground'a bağladım. Sorunun %90 ihtimalle donanımsal olduğunu düşünüyorum.

#include "C:\Users\Public\Documents\MicroCprojects\Denemeler\Test1\main.h"
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,LVP,NOPUT,NOWRT,DEBUG,NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,bits=8)

void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
  // setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
 
 
set_tris_b(0x00);
output_b(0x000);

printf("PIC16F877A Test Connection\n\r")

while(true) {
output_high(PIN_B0);
delay_ms(500);
printf("Test\n\r");
output_low(PIN_B0);
delay_ms(500);
putc(getc()); // Karakterler Yansıtılıyor
}
}

Maxim


-Hasan-

Alıntı yapılan: Maxim - 09 Ağustos 2011, 18:10:28
fuse ayarı HS değil XT olmalı

Gerçekten de sorun bu olabilir; bir ara bende CONFIG ayarı XT ' de iken 20 Mhz ' lik kristal takmıştım ve devre çalışmamıştı, HS yapınca düzelmişti, sorunu donanımda araken bu durumu geç farketmiştim, bu yüzden osilatör ayarına dikkat etmek gerekiyor. Bir de XT yapıp deneyin bakalım olacak mı? bizim için de iyi bir tecrübe olur.

altanbozoglu

 arkadaşlar şu anda test ortamında uzaktayim yarın sabah ilk işim kontrol etmek olacak

vebsel


JKramer

Bir de LVP'yi NOLVP yapın, doğrudan ilgisi yok ama beslemeniz 5 V sanırım.

altanbozoglu

Arkadaşlar Merhaba;  (Çözüldü)

     internet üzerindeki araştırmamın sonucu #fuses HS olarak değiştirmiştim çünkü XT yapınca da çalışmamıştı. Bunalmış Arkadaşımızın bahsettiği kristale paralel 1M direnç başlama fikri bana çok mantıklı geldi. Elimde 1M direnç olmadığından en yüksek 15K bulabildim bu şekilde bağlayınca problemlemsiz çalışmaya başladı. en az 50 defa enerji kestim geri çalıştrdım sorun yok. Herkeze teşekkür ederim. ;D

Not: En kısa zamanda 1M Direnç elde edeceğim.

subram

@bunalmis hocam bu sorun neden kaynaklanmış olabilir. bir açıklaması var mıdır?
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

z

#11
Xtlal, cip icindeki CMOS inverterin giris cikisina bagli. Bu inverter amplifikator olarak kullaniliyor ve cipin diger inverterlerinden farkli olarak girisi  silicon direncle biaslanmis ve lojik anlamda ne 1 nede 0 olan bolgede kalmasi saglanmis.

Bazi ciplerde bu biaslama yetersiz kaliyor ve harici 1M baglantisina ihtiyac duyuluyor.

Mecbur kalir, opamp ihtiyaci duyar, fakat kartinizda cip ekleyecek alaniniz yok ve inverter cip paketinde atil kalmis inverterleriniz varsa, bunlari biaslayarak amplifkator olarak kullanabilirsiniz. Opamp tadi vermese de belki isinizi gorebilir.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

-Hasan-

Alıntı yapılan: altanbozoglu - 10 Ağustos 2011, 09:58:45
Arkadaşlar Merhaba;  (Çözüldü)

     internet üzerindeki araştırmamın sonucu #fuses HS olarak değiştirmiştim çünkü XT yapınca da çalışmamıştı. Bunalmış Arkadaşımızın bahsettiği kristale paralel 1M direnç başlama fikri bana çok mantıklı geldi. Elimde 1M direnç olmadığından en yüksek 15K bulabildim bu şekilde bağlayınca problemlemsiz çalışmaya başladı. en az 50 defa enerji kestim geri çalıştrdım sorun yok. Herkeze teşekkür ederim. ;D

Not: En kısa zamanda 1M Direnç elde edeceğim.

Peki arkadaşım CONFIG şu anda XT ' de mi duruyor, HS ' de mi?

altanbozoglu

Merhaba;
direnc bagladikta sonra pic i yeniden xt olarak programladim ama calismadi bende hs yaparak tekrar programladim su an calisiyor.

-Hasan-

Ben XT ' de 20 Mhz kristali çalıştıramamıştım, demekki XT ' de HS ' ler çalışmıyorken, HS ' de XT ' ler çalışıyor.

Bunalmis Hocam bu neden böyle acaba?