pice bağladığım kristal osilatör çalışmıyor?

Başlatan bnmdmbrk, 13 Nisan 2015, 23:01:52

bnmdmbrk

Bayadır uğraşıyorum devreyi çalıştırmaya. Sonunda farkettim ki osilatör 50hz frekans üretiyor. Nasıl yada neden anlayamadım. Osilaskoptan ölçümü alırken kristalin bacaklarına tuttum probları. Osc-in ve gnd ye tutunca dc 5v gösteriyor. Aklıma gelenler bu kadar. Fikri olan varsa ışık tutabilir mi??






Melih1802

Bazı işlemcilerde Kristal bacaklarında osilatör sinyali görünmüyor. Fakat Osilatör çalışıyor.
Osilaskobun probu X10 olmalı.

Donamımsal hataları yok sayıyorum.

bnmdmbrk

#2
x10 değil. benimde aklıma ilk o geldi. peki ne yapabilirim bunu anlayabilmek için, hatayı bir türlü bulamıyorum. devrede enerji var, akımlarda normal ama pic çıkış vermiyor. mclr'ye de 5v gidiyor. Pic 16f877a. Donanımsal hata olduğunu sanmıyorum. devre simulasyonda gayet iyi çalışıyor

RaMu

Biraz daha detay lazım yoksa 1000 tane fikir üretebilirim,
belki d9 u ters takmışsındır.
Baskı devre tam gözükecek şekilde ares foto
basılmış halde foto ve
kullandığın kodlar yardımcı olur,
sen devrenin başında oskopla bulamazken
biz yukarıdaki kadarcıkla  bulalım adil değil.

Basit bir kod bile mi çalışmıyor?
Başka kristal veya başka mcu ile denedin mi?
MCLR de 5V var mı?
Kullandığın kristal kaç MHz?
22pF yerine 22nF takmış olabilir misin?
Güç kaynağın temiz mi?
Vdd Vss mcu ya en yakın yerden 100nF 10uF var mı?
.
.
.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

bnmdmbrk

#4
Aynen basit bir kod bile çalışmıyor. Hatta breadboarda led yakmak için devre kurdum ordada aynı şeyle karşılaştım. 3 farklı işlemcide denedim yine aynı sorun. kondansatörlerin üzerinde 22 yazıyor, nokta felan yok, 22pf olması lazım. kristal 20mhz. led yakmak için şu konutları kullanmıştım.

#include <16f877A.h>

#FUSES NOWDT
#FUSES XT
#FUSES NOPUT
#FUSES NOPROTECT

#use delay(clock=4000000)

#use fast_io(a)
#use fast_io(b)

void ayarlar()
{
   
   set_tris_a(0x00);
   output_a(0x00);
   set_tris_b(0x00);
   output_b(0x00);
   
   delay_ms(100);
   
}


void main()
{

   ayarlar();
   
   while(1)
   {
      output_high(PIN_B7);
      delay_ms(500);
      output_low(PIN_B6);
      delay_ms(500);
      output_high(PIN_B7);
      delay_ms(500);
      output_low(PIN_B6);
      delay_ms(500);
   }
}


borda da aynı aşadaki gibi kurdum devreyi. vdd(-)(11,32. bacaklara), vss(+)(12,31. bacaklara). gerisi şemada görünüyo zaten. kondansatörlerin ve devreninde resmini atıyorum belki yanlış biliyorumdur. bildiğimden de şüphe eder oldum :D

bide d9 ne oluyo??










z

Kullandığınız dili bilmiyorum. Forumda gördüğüm örneklerden 20Mhz de XT mi tanımlanmıyordu galiba High Speed gibi bir ibare oluyordu.

Bir de elinizdeki işlemci 20Mhz de çalışmaya müsaitmi?  İşlemciniz 16f877 20/p mi?

En azından 4Mhz Xtal takınca osc çalışırmu onu test edebilirsin.


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

ahmetbudak

#use delay(clock=4000000)


kodunda 4 mhz declare etmişsin ama donanımın 20mhz diyorsun?

sadogan

B7 be bağlı led sürekli yanar diğeri yanmaz.
22 pf leri sökerek dene.

ferit06

kristalin yeri 13, ve 14 nolu pinlere uzak, daha yakında olmalı.. Ancak bu çalışmamamasına neden olmayabilir. Bir de 877 sokete tam oturmamış gibi iğreti duruyor. Biraz bastırın tam otursun.

bnmdmbrk

Haklısın kodu düzeltmeyi unutmuşum. Simulasyonda 4 mhzdi. Bide öyle deniyim. Evet 20/p.  şimdi benim Hs mi yazmam gerek XT mi?

ahmetbudak


sadogan


RaMu

Bence de kristal kısmı yanlış
20MHz kristal için
#FUSES HS
#use delay(clock=20MHz)


4MHz kristal için
#FUSES XT
#use delay(clock=4MHz)


yazılması lazım.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

bnmdmbrk