18F serisi picler için sigorta ayaları nasıl olmalı ?

Başlatan baran123, 22 Temmuz 2014, 01:03:57

baran123

Merhaba ben 18f4550 ve 2550 ile ilgili çalışma yapıyorum fakat sigorta ayarları kafamı karıştırdı.4550 VE 2550 İÇİN 4,8,20 MHZ sigorta ayarları nasıl olmalı ? usb uygulamalarında hangisi kullanılmalı kristal işleri kafamı karıstırdı iyice

RaMu

Datasheete bakmak zorundasın,
oscillator settings for usb kısmı özellikle.
Bir kristal kullanıp md. başka usb kısmı başka frekansta çalıştırabilirsin,
prescaler (önbölücü) ve postscaler (sonbölücü deyince son mohikan gelir hep aklıma)
değerlerini değiştirerek istediğin frekansları elde edersin.

Neyse bir örnek vereyim;

18F2550 datasheetten alınan bu kısımda;
1 md.ye bağladığın kristalin frekansı,
2 usb nin çalışabilmesi için kullandığın kristal değerine göre pll i kaça ayarlaman gerektiği,
3 seçilecek clock modu
4 md. nin çalışma frekansını değiştirmek için hangi seçeneklerinin olduğu
5 4de girdiğin değere göre md.nin hangi frekansta çalışacağını göstrerir,

Usb çalışabilmesi için,
datasheetteki şemasındada görülür
PLL işleminden sonra kesinlikle 4MHZ elde etmek zorundasın,
misal elinde 20 MHz kristal var bunu osc bacaklarına bağladın,
o zaman PLLDIV2:PLLDIV0 değerin 100 yani (yine datasheetten ilgili register a bakarsan) 5e böl anlamına gelir,
pll prescaler ayarlandı
20 5e bölünür ve usb için gerekli 4MHz sağlanmış olur, pll bunu alıp 96 MHz yapar ve sonra USBDIV ile 2 ye bölüp 48 MHz yapar,

3 de clock modunu seçersin,
4de ise seçtiğin clock moduna bağlı olarak belirli seçeneklerin bulunur,
buradaki bölme değerine göre md. çalışma frekansını belirlersin,
yine 20Mhz kristal ile kullanırken 3de HS mod seçip 4de 2 ye bölme (yani CPUDIV1:CPUDIV0 01 yaptın) md.yi 10MHz çalıştırabilirsin.

Genel olarak seçenekler böyle,
misal 8MHz kristal için konfig
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN,NOBROWNOUT // 8MHZ
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

okay57

misal 8MHz kristal için konfig  örneğinde CPUDIV1 dediğinden dolayı pıc çalışma frekansı 48MHz değil mi?cpudıv1 yazdığımızda CPUDIV1:CPUDIV0 değeri 00 mı olarak seçiyoruz yani /2 seçiyoruz 96/2=48 oluyor.CPUDIV2 deseydik CPUDIV1:CPUDIV0 değerini 01 olarak seçecek 96/3 ü seçmiş olacağız ve çalışma frekansımız 32MHz oluyor.Çıkarımım doğru mudur?

RaMu

Evet ama eksik,
HSPLL ECPLL ECPIO
modlarından birinin seçili olması zorunludur bahsettiğin gibi olabilmesi için,
zaten teble 2-3 dede bu durum görülüyor,
herbir kristal için CLOCK MODE kısmında iki farklı kutu var,
biri HS EC ECIO modu için
diğeride HSPLL ECPLL ECPIO modu için,
hangi mod seçildiyse ona ve CPUDIV1:CPUDIV0 için seçilen değere göre
mikrodenetleyicinin çalışacağı frekans belirlenmiş olur;

misal 16MHz kristali pice bağladık,
HSPLL modunu seçtik,
usb kullanmak istiyoruz o zaman
PLL e girmeden önce PLLDIV2:PLLDIV0 ile bölme yapılınca 4MHz elde etmek zorundayız
yani PLLDIV2:PLLDIV0 e bölü4  001 yazacağız,
buda HSPLL seçili olduğundan pll tarafından 96 MHz ye katlanacak,
bunu USBDIV 2ye böler ve usb için zorunlu 48MHz yi elde eder,
sonra md. çalışma frekansı ayarlanır nasıl;
artık elimizde 16MHz den HSPLL  ile elde edilmiş 96MHz var
bunu CPUDIV1:CPUDIV0 e yazacağımız 2-3-4-6 hangi değerse o değere böleriz
işte buda md.nin çalışma frekansı olur.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

okay57