18F452 config ayarları

Başlatan frederic, 06 Mart 2011, 23:45:36

Maxim

Alıntı yapılan: QarizmaCocuq - 07 Mart 2011, 20:59:47
@maxim usta;

Declare PLL_Req = On yazdığım anda.Kristal değeri 10MHz olmalı ki 4 ile çarpılsın.Ve declare işlemi göz ardı edilecektir diyor.
Bende 4Mhz XT takılı bu durumu nasıl aşarız?

Ve birde protonda 48MHz seçemiyoruz.En fazla 40Mhz.

hiç 18F452 kullanmadım önce onu söyleyeyim,
datasheetine bakınca 4xPLL olduğu yazıyor başkada birşey yok
demekki xtal * 4 olacak
dolayısı ile 18F4550 deki gibi 48mhz yapamayız diye düşünüyorum
10mhz osc + PLL kullanırsak o zaman hızımız 40mhz olacaktır .
4mhz osc + PLL kullanırsak o zaman hızımız 16mhz olacaktır .

son olarak protonda bildiğim kadarıyla 48mhz seçmiyoruz zaten
mesela 10mhz + pll =40mhz olacak ya
biz protona xtal 40 değil ..
xtal 10mhz yazıyoruz.

Ankaralı

Alıntı yapılan: Maxim - 07 Mart 2011, 21:44:13
Alıntı yapılan: QarizmaCocuq - 07 Mart 2011, 20:59:47
@maxim usta;

Declare PLL_Req = On yazdığım anda.Kristal değeri 10MHz olmalı ki 4 ile çarpılsın.Ve declare işlemi göz ardı edilecektir diyor.
Bende 4Mhz XT takılı bu durumu nasıl aşarız?

Ve birde protonda 48MHz seçemiyoruz.En fazla 40Mhz.

hiç 18F452 kullanmadım önce onu söyleyeyim,
datasheetine bakınca 4xPLL olduğu yazıyor başkada birşey yok
demekki xtal * 4 olacak
dolayısı ile 18F4550 deki gibi 48mhz yapamayız diye düşünüyorum
10mhz osc + PLL kullanırsak o zaman hızımız 40mhz olacaktır .
4mhz osc + PLL kullanırsak o zaman hızımız 16mhz olacaktır .

son olarak protonda bildiğim kadarıyla 48mhz seçmiyoruz zaten
mesela 10mhz + pll =40mhz olacak ya
biz protona xtal 40 değil ..
xtal 10mhz yazıyoruz.

Hımmm bende sorumu 4550 için sormuştum tamamdır hocam.Görüyorum ki artık CCS ye geçme zamanım gelmiş.
@ NEXYS2

Maxim

birbirimizi doğru anladığımızı düşünmüyorum .
hemen bazı noktaları netleştirmek istiyorum .

"protonda 48mhz seçemiyoruz" demişsin (ben söylemedim, sen öyle yazmışsın)
halbuki protonda xtal 48mhz seçeneği var.

ben şöyle söyledim (yada yanlış anladım o yüzden böyle cevapladım)
18F452 yi, 18F4550 deki gibi 48mhz yapamayız ..

şimdi bu,
protonda 48mhz seçeneği olmadığı anlamına gelmiyor
bir kere ben 18F452 için yorum yapmıştım, halbuki sen 18F4550 ile igileniyormuşsun, anlayamadım.

18F4550 ye geçersek eğer,
kodun başına xtal 48mhz yazabiliyoruz ama
tam emin olmamakla beraber, 18F4550 de PLL biraz farklı, 48mhz kullanmak için 20mhz kristal takıp xtal 20 diyoruz ve pll ayarları ile pici 48mhz çalıştırıyoruz. İlgileniyor isen detayları buluruz.

peki protonda xtal için hangi seçenekler var ?
işte cevabı burada :


frederic

#18
Mucit23 hocam datasheeti de 4 mhz kristal osilatör üstü değerlerde HS 4 e kadar ise XT  seçin demişler,aralrındaki fark ve kullanım alanları bunlar.

PLL ise bunların çarpan değerleri,siz PLL değerini  girerseniz eğer 10 mhz lik kristal osilatörünüzü 4 ile çarpar,40 olarak kullanır.

Ankaralı

Ben kod yazarken kodlarla ilgili tanımlamaları F1 tuşuna basarak helpine bakarım ve karşıma çıkan help de de şunlar yazılı.



Senin paylaştığın döküman bende bulunmamakta.Ben 48Mhz yazamıyoruzu bunu(resimdeki) kastederek söyledim.He yoksa 48MHz yazdığım ve derlediğimde hiçbir sorun olmadı.Şimdi asıl sorun şu;

CCS de usb uygulaması yaptığımda 4Mhz lik XT ile CCS de USB çalıştırdım.Hiç bir sorun yok.
Biz 4 MHz XT ile Protonda 48Mhz e ulaşabilirmiyiz?4550 nin datasheetinde ne varsa uygulamaya çalıştım ancak Protonda picin 48Mhz de çalışdığından tam emin değilim.
@ NEXYS2

Maxim

sanırım eski versiyon sendeki
ben o tanımlamaları 3.5.1.2 nin helpinden aldım (artık pdf olarak help)

4mhz ile * pll = 48mhz ile usb olurmu ??
bilmiyorum araştırıcam

Ankaralı

Alıntı yapılan: Maxim - 08 Mart 2011, 01:20:32
sanırım eski versiyon sendeki
ben o tanımlamaları 3.5.1.2 nin helpinden aldım (artık pdf olarak help)

4mhz ile * pll = 48mhz ile usb olurmu ??
bilmiyorum araştırıcam

CCS de şu şekilde yazdığımda oldu..

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,NOBROWNOUT    // 4 MHZ
@ NEXYS2

Maxim

#22
uykulu uykulu ne dediğimi bilemedim
ccs de oluyorsa protondada olacaktır ,çünkü fuse veya pll tanımları derleyiciye özel değilki, picin kendine has şeyler.
aynı şekilde protonda da yapılacaktır eminim

edit:
bu şekilde 4mhz osc ile usb 48mhz olarak çalışıyor olmalı
yanlız xtal bölümüne 4 mü? 48 mi yazmalıyız ondan emin değilim tam .

Device 18F4550
Xtal 48

Config_Start
   PLLDIV = 1 ; No prescale (4 MHz oscillator input drives PLL directly)
   CPUDIV = OSC1_PLL2 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
   USBDIV = 2 ; USB clock source comes from the 96 MHz PLL divided by 2
   FOSC = XTPLL_XT ; XT oscillator, PLL enabled, XT used by USB
Config_End

Ankaralı

Bu şekilde çalıştı....20Mhz OSC takılı....


Device=18F4550
Config_Start
   PLLDIV = 5 ; Divide by 5 (20 MHz oscillator input)
   CPUDIV = OSC1_PLL2 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
   USBDIV = 2 ; USB clock source comes from the 96 MHz PLL divided by 2
   FOSC = HSPLL_HS ; HS oscillator, PLL enabled, HS used by USB
   FCMEN = OFF ; Fail-Safe Clock Monitor disabled
   IESO = OFF ; Oscillator Switchover mode disabled
   PWRT = On ; PWRT enabled
   BOR = OFF ; Brown-out Reset disabled in hardware and software
   VREGEN = OFF ; USB voltage regulator disabled
   WDT = OFF ; HW Disabled - SW Controlled
   MCLRE = OFF ; RE3 input pin enabled; MCLR disabled
   LPT1OSC = OFF ; Timer1 configured for higher power operation
   PBADEN = OFF ; PORTB<4:0> pins are configured as digital I/O on Reset
   CCP2MX = OFF ; CCP2 input/output is multiplexed with RB3
   STVREN = OFF ; Stack full/underflow will not cause Reset
   LVP = OFF ; Single-Supply ICSP disabled
   ICPRT = OFF ; ICPORT disabled
   XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   Debug = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
   CP0 = OFF ; Block 0 (000800-001FFFh) not code-protected
   CP1 = OFF ; Block 1 (002000-003FFFh) not code-protected
   CP2 = OFF ; Block 2 (004000-005FFFh) not code-protected
   CP3 = OFF ; Block 3 (006000-007FFFh) not code-protected
   CPB = OFF ; Boot block (000000-0007FFh) not code-protected
   CPD = OFF ; Data EEPROM not code-protected
   WRT0 = OFF ; Block 0 (000800-001FFFh) not write-protected
   WRT1 = OFF ; Block 1 (002000-003FFFh) not write-protected
   WRT2 = OFF ; Block 2 (004000-005FFFh) not write-protected
   WRT3 = OFF ; Block 3 (006000-007FFFh) not write-protected
   WRTB = OFF ; Boot block (000000-0007FFh) not write-protected
   WRTC = OFF ; Configuration registers (300000-3000FFh) not write-protected
   WRTD = OFF ; Data EEPROM not write-protected
   EBTR0 = OFF ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
   EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
   EBTR2 = OFF ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
   EBTR3 = OFF ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
   EBTRB = OFF ; Boot block (000000-0007FFh) not protected from table reads executed in other blocks
Config_End
Xtal=48
@ NEXYS2