CCS C de dahili osilatör ve pll i beraber çalıştırma

Başlatan izturk, 06 Haziran 2013, 18:19:25

izturk

Arkadaşlar pic 18f4620 yi dahili osilatör ve pll ile 32Mhz de çalıştırmak istiyorum. Fuses leri nasıl ayarlayacağımı bir türlü bulamadım.

Bir de dahili osilatör kullanmak harici osilatöre göre daha mantıklı geliyor. madem ki 32Mhz e kadar zahmetsizce çalıştırabiliyoruz bu tür işlemcilerde neden kristal kullanılır. harici osilatör devresi kurmanın ince bi ayrıntısı varmısır?

Herkese iyi çalışmalar...

oyuncu41

Alıntı yapılan: izturk - 06 Haziran 2013, 18:19:25
Arkadaşlar pic 18f4620 yi dahili osilatör ve pll ile 32Mhz de çalıştırmak istiyorum. Fuses leri nasıl ayarlayacağımı bir türlü bulamadım.

Bir de dahili osilatör kullanmak harici osilatöre göre daha mantıklı geliyor. madem ki 32Mhz e kadar zahmetsizce çalıştırabiliyoruz bu tür işlemcilerde neden kristal kullanılır. harici osilatör devresi kurmanın ince bi ayrıntısı varmısır?

Herkese iyi çalışmalar...
Neden kristal kullanılır,dahili osilator RC osilatordur ısıya göre frekansında kaymalar olabilir.kristal osilator frakans kayması olmaz,yapacagınız işe göre osilatör secebilirsiniz.

#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
setup_oscillator(OSC_31KHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);

rree

        Fuses ayarlarını bilmiyorum
     İkinci sorun niçin harici kristal kullanıyoruz. Dahili osc genellikle  rc osilatorler. Rc osilatörler sıcaklıkla,
besleme gerilimi değişimleri osc nin frekansınıda değiştirir. Karalılıkları kötü diyebiliriz.Kristal osc  ler, kristal yapılarından dolayı  besleme gerilimi frekansa etkisi yok denecek kadar az. Sıcaklıkla frekans değişimi de makul değerlerdedir. Mikro denetleyici kullandığın yere göre seçim proje geliştirene bağlıdır.
Devrenin kullanıldığı yerde zaman çok önemli ise mesela pwm ile sinyal üretimi, Zamanlama işlemleri.
Zaman önemsiz ise  garaj kapısını aç kapa gibi yerlerde dahili osc kullanabilirsin.

f15eagle

Merhaba, bende biraz araştırmıştım. CCS C nin manuel kısmına bakarsanız bir kaç şey yazıyo.
Ben şu kodlarla yaptım ama daha ayrıntılı bilen hocalarımız varsa anlatırlarsa iyi olur,

#define OSC_PLL_ON
#define OSC_32MHZ
#use delay(oscillator=8000000, clock=32000000)

fuses kısmında hs yada 4 mhz altı ise xt yazıyorum

izturk

Cevaplar için teşekkür ederim. Gayet açıklayıcı oldu. Yarın deneyeceğim.

Hekese iyi akşamlar dilerim.

RaMu

  Ayrıntılı bilgi herzaman kullanılan entegrenin datasheetinde mevcuttur, datasheet okumadan md programlayamazsınız ancak programladığınızı zannedebilirsiniz. Bu arada  hazır açıklanmışıda tadından yenmez ama ancak 16f628 gibi yaygın kullanılanlarında kolaylıkla bulunur bu yüzden  datasheet okumak şart.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

f15eagle

RaMu hocam, bahsettiğiniz gibi datasheet okumak evet şart. Ama nasıl okumak ? Özellikle CCS C kullanan biri nasıl okuması gerekir. Mesela benim elimde 18f46k22 var. İçinde 5 bit çözünürlüklü dac var. Bunu nasıl kullanabilirim datasheetten okuyarak.

Bunun bi yolu yöntemi vardır. Nasıl öğrenebilirim ?

ferdem

Onun yolu yöntemi şu ki: PIC e register seviyesinde kod yazma tecrübesi gerekiyor çünkü datasheet te her şey register seviyesinde anlatılıyor, PIC in tüm donanımlarını ASM ile çalıştırabilir seviyede olmalıyız, gerektiğinde MPASM ile ASM kod yazabilmeliyiz. Siz DAC ı ASM ile çalıştırabiliyorsanız CCS C nin DAC ile ilgili fonksiyonlarının ürettiği ASM kodlarına bakarak(derleyicide üretilen ASM kodlar görülebiliyor) C kodunuza daha hakim olabilirsiniz. Sonuç: En azından bir kerelik CCS C yi bir kenara bırakıp  ASM ile DAC çalıştırma çalışması gerekiyor, bunu yaptığınızda datasheet i okumuş olacaksınız.
Aşağıdaki kod 32MHz de çalışıyor, fuse detayını ben de bilmiyorum:
#include <16F1826.H>
    #fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR, NOLVP
   

yani INT OSC default 32MHz yapıyor, uzun zaman oldu yine de kontrol etmekte fayda var.
Dahili OSC nin frekans kararlılığı kötüdür, kristal OSC frekansı kararlıdır, uygulamaya göre dahili/harici kararı verilir. Mesela 1Hz çözünürlüklü 5MHz frekansmetre... kristal şart. Kolay gelsin.

sadogan

#fuses put,INTRC_IO
main rutune girinice ilk olarak bu foksiyonu çalıştırıyorsunuz
setup_oscillator(OSC_32MHZ);
Kulandıgınız pic in header dosyasına bakarsanız
foksiyona yazacağınız parametreleri görebilirsiniz.

izturk

Alıntı yapılan: RaMu - 07 Haziran 2013, 00:34:31
  Ayrıntılı bilgi herzaman kullanılan entegrenin datasheetinde mevcuttur, datasheet okumadan md programlayamazsınız ancak programladığınızı zannedebilirsiniz. Bu arada  hazır açıklanmışıda tadından yenmez ama ancak 16f628 gibi yaygın kullanılanlarında kolaylıkla bulunur bu yüzden  datasheet okumak şart.

Hocam datasheet okumayı biliyorum. Ama ccs de kendi komutlarıyla bu işin nasıl yapılacağını öğrenmek istemiştim. Ama ccs nin manueline bakmak aklıma gelmedi. askerlik köreltmiş galiba biraz. Yoksa bit bit md programlayabiliyorum çok şükür :D:D

Yardımlar için teşekkürler..

RaMu

Bana söyleyecek brşey kalmadı gerekli açıklamaları sağolsun arkadaşlar yapmışlar, bir defada olsa asm ile o modülü kullanmak ve ccs nin manueli söylenenlere katılıyorum, aslında ayrıntılı bir örnek yönlendirme yazmamız lazım bu konuda vaktimiz olursa İnşallah birgün hazırlarız (bende ccs de yeniyim asmden daha sıyrılamadım).
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html