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

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

Tagli

Bu tablo hep kafamı karıştırmıştır. Sanki 4 MHz kristal hem XT hem de HS ayarı ile çalışabilecekmiş gibi gözüküyor ama sanırım gerçekte öyle olmuyor.

[IMG]http://i52.tinypic.com/9ptkco.jpg[/img]
Gökçe Tağlıoğlu

-Hasan-

Ama Tagli Hocam altanbozoglu arkadaşımız 4 Mhz yi XT ' de çalıştıramayıp, HS ' de çalıştırdığını söylüyor. Arkadaşın PIC ' inde bir sorun mu var acaba?

z

Aslında sorun xtallerin farklılıklarından kaynaklanıyor. Yükleme kapasitelerinin değerini vs xtal üreticileri belirler.

Programlama aşamasında osc seçeneğinin XT yada HS olarak ayarlanması, çip içindeki amplifikatörün kazancı değiştirmiş olur. (Belki bias da değişiyordur)

İşlemcinin bir türlü çalışmadığı yada saçmaladığı yeni bir tasarımda, osc pinlerine scopla dokunduğumda OSC nin çalıştığını gördüğüm için osc nin sorunsuz olduğuna karar verdiğim çiplerin, aslında xtal devresinin çalışmadığı, scop probunu dokundurduğumda devreye giren parazitik scop kapasitesinin ya da scop probu sayesinde enjekte olan parazitin osc yin çalıştırmaya başladığı, scop probunu pinden uzaklaştırdığımda osc nin sustuğu tarzda olaylarla tuzağa düştüğüm deneyimlerimden dolayı çiplerin osc devrelerine hep şüpheyle bakarım.

Bazen scop probunun x1 yada x10 olması bile osc devrelerinde tuzak oluşturup yanlış yorum yapılmasına neden olabiliyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

altanbozoglu

Arkadaslar;
Problemin net anlasilmasi icin kristal ve kondanstorleri sokup yeniledim pic i yeniden xt olarak programlayip test ettim hic bir ssekilde calismaya baslamadi. sonra tekrar hs olarak programlayip taktigimda eski duruma geri dondum. simdi kristale paralel direnc taksam bile osilasyon baslamiyor. bunalmis arkadasin yazdigi gibi proplari kristalin ayaklarina kisa sure deydirdigimde calismaya basliyor. Basladigim yere geri dondum sanirim. Ne yapicam sasirdim. vede tikandim.
Saygilar...
:(

t2

[IMG]http://i52.tinypic.com/9ptkco.jpg[/img]

Alıntı YapBulunan 22pf kondanstörleri 33pf la değiştirdim. yeni 4 Mhz. kristaller de denedim
kristal uçlarına bağlanacak kondansatörleri 22pf vs değil de 4.7 pf seç
ben öyle yapıyorum 4 Mhz kristal de kullansam 20 Mhz de kullansam hep 4.7pF takarım bu şekilde çalışıyor. piyasadaki kristaller microchi katalaoglarındakiler gibi değil yani 22pf fazla geliyor

canbulut

selam dostum hangi entegreyi kullanıyorsun bakamadım ama internal kristali kullanmayı deneyebilirsin.

altanbozoglu

Arkadaşlar Merhaba;

     Aşağıdaki kod ile Pic'i Programladım. Yeni Malzemeler ile ile devreyi yeniden kurdum. 1 nolu ayağa,Reset butonuna paralel 100nf lık bir kondanstör ilave ettim. Aynı zamanda bu bacağı 4,7 Kohm direnç ile vss ye Bağladım. Devre üzerindeki (7805'in çıkışındaki) gereksiz 470Mf lık kondanstörü kaldırdım. Osilatör şu an 22pf kondastör ve 4 Mhz Kristal takılı. Tamamen stabil çalışıyor. Benzer sorunları yaşayan arkadaşlar,
(* Kristale Parmağımı değiriyorum Pic çalışmaya başlıyor
* Kristali yerinden çıkarıp taktığımda devre çalışmaya başlıyor
* Reset Devresine (Butona) 1 veya birkaç kez basmadan devre çalışmaya başlamıyor Vb..)
Aşağıdaki örnek verdiğim kodu üşenmeyip Kurarlarsa stabil çalıştığını görecekler. Pic'in 8. Bacağına (RB0) 1Kohm direnç ve bir LED bağlanması ve şaseye iribatlandırılması gerekiyor. (Basit Bir Led yanıkıp söndürüyorum çünkü)

//----------------------------------------------------------------------------------------
#include "C:\Users\Public\Documents\CCSCprojects\Test\Test2\main.h"

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES WRT_50%                  //Lower half of Program Memory is Write Protected


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);  //B portunu çıkış olarak ayarla
output_b(0x000); //B prtundaki Tüm bitleri 0 yap

while(true) {
output_high(PIN_B0); //B0 Pinini 1 yap
delay_ms(500); //500 ms kadar bekle
output_low(PIN_B0); //B0 pinini 0 yap
delay_ms(500); //
}
}
//--------------------------------------------------------------

Kafa Yoran, Emeği Geçen Herkeze Teşekkür Ederim.

Saygılar...