Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: frederic - 06 Mart 2011, 23:45:36

Başlık: 18F452 config ayarları
Gönderen: frederic - 06 Mart 2011, 23:45:36
Merhabalar,bu pic ile ilgili standart config ayarları elinde olan varsa payalaşailirse eğer çok sevinirim.Protonda bu ayarların nereden yapılacağını biliyorum fakatseçenkelerin anlamlarını bilmediğim doğru bir config kuramıyorum,iyi çalışmalar herkese.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Tagli - 06 Mart 2011, 23:56:49
18F452'nin config ayarları pek karışık sayılmaz. Datasheet'inin "Special Features of the CPU" bölümünde config bitlerinin görevleri açıklanmış. Eğer özellikle anlamadıkların varsa burada isimlerini ver, bildiğim kadarıyla yardımcı olmaya çalışayım.

Ekleme: Aslında ayarların bir çoğuna dokunmana gerek de olmayabilir. Mesela ben assembly'de bu ayarları kullanıyorum:
CONFIG OSC = HS, OSCS = OFF, PWRT = ON, BOR = OFF, WDT = OFF, STVR = OFF, LVP = OFF
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 06 Mart 2011, 23:58:12
En basitinden bütün config ayarları;


Device=18F4550
XTAL=48
@CONFIG_REQ                                                                       
@__config config1l, PLLDIV_1_1 & CPUDIV_1_1           
@__CONFIG config1h, FOSC_XTPLL_XT_1 & FCMEM_OFF_1 & IESO_OFF_1 
@__CONFIG config2l, PWRT_ON_2 & BOR_OFF_2 & VREGEN_OFF_2
@__CONFIG config2h, WDT_OFF_2
@__CONFIG config3h, MCLRE_OFF_3 & LPT1OSC_OFF_3 & PBADEN_OFF_3 & CCP2MX_OFF_3
@__CONFIG config4l, STVREN_OFF_4 & LVP_OFF_4 & ICPRT_OFF_4 & XINST_OFF_4 & DEBUG_OFF_4
@__CONFIG config5l, CP0_OFF_5 & CP1_OFF_5 & CP2_OFF_5 & CP3_OFF_5
@__CONFIG config5h, CPB_OFF_5 & CPD_OFF_5
@__CONFIG config6l, WRT0_OFF_6 & WRT1_OFF_6 & WRT2_OFF_6 & WRT3_OFF_6
@__CONFIG config6h, WRTB_OFF_6 & WRTC_OFF_6 & WRTD_OFF_6
@__CONFIG config7l, EBTR0_OFF_7 & EBTR1_OFF_7 & EBTR2_OFF_7 & EBTR3_OFF_7
@__CONFIG config7h, EBTRB_OFF_7 & _DEVID1 & _DEVID2 & _IDLOC0
Başlık: Ynt: 18F452 config ayarları
Gönderen: frederic - 07 Mart 2011, 00:20:36
İlginiz için teşekkür ederim,iki mesajdan eidndiğim bilgilere dayanarak aşağıdaki ayarları yaptım.

Şu an müdahale etmediğim seçenekler;
BORV,WDTPS,CCP2MUX,DEBUG

BU seçenkleri nasıl ayarlayacağıma dairde bir fikriniz varsa paylaşırsanız sevinirim.Şu anki ayarları aşağıda bulabilirsiniz.


Config_Start
   OSC = HS ; HS
   OSCS = OFF ; Disabled
   PWRT = On ; Enabled
   BOR = OFF ; Disabled
   WDT = OFF ; Disabled
   STVR = OFF ; Disabled
   LVP = OFF ; Disabled
   CP0 = OFF ; Disabled
   CP1 = OFF ; Disabled
   CP2 = OFF ; Disabled
   CP3 = OFF ; Disabled
   CPB = OFF ; Disabled
   CPD = OFF ; Disabled
   WRT0 = OFF ; Disabled
   WRT1 = OFF ; Disabled
   WRT2 = OFF ; Disabled
   WRT3 = OFF ; Disabled
   WRTB = OFF ; Disabled
   WRTC = OFF ; Disabled
   WRTD = OFF ; Disabled
   EBTR0 = OFF ; Disabled
   EBTR1 = OFF ; Disabled
   EBTR2 = OFF ; Disabled
   EBTR3 = OFF ; Disabled
   EBTRB = OFF ; Disabled
Config_End
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 07 Mart 2011, 08:06:24
buradaki programı yükleyiniz
https://www.picproje.org/index.php/topic,32231.0.html
Başlık: Ynt: 18F452 config ayarları
Gönderen: frederic - 07 Mart 2011, 14:07:56
Yukarıdaki kodları bu programda yazmıştım zaten maxim hocam sağolun ilginiz için,bana 18F452 için doğru bir confagirasyon nasıl yapılır o lazımdı.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 07 Mart 2011, 14:23:35
doğru bir konfigurasyon diye birşey yoktur aslında
config ayarları duruma göre değişir çünkü, devreye - tasarıma göre değişmesi lazım onların
zaten öyle olmasaydı fabrika en doğrusunu sabit olarak programlar bize satardı.

yukarıda sorulan BORV,WDTPS,CCP2MUX,DEBUG
özelliklerin açıklamaları şöyle

BORV:
brown-out voltajının değeri
yani BOR açık olsun dedikten sonra , pic beslemesi hangi voltajın altına düşerse reset olsun ?
4.5 voltmu, 4.2 voltmu ? ......

WDTPS:
watch dog timer açıldıktan sonra, timerın postscaler değeri ?
1:1
1:2
1:64
diye
timerın bölücüsü yani, wdt kullanılmayacaksa zaten kapatılmalıdır, o zamanda bu değerin bir espirisi kalmaz zaten.


CCP2MUX,
ccp2 girişinin hangi ayakta olması ?
portB.3 mü ? portC.1 mi ? (öyle olması lazım)


DEBUG
bunu enable edersek picin 2 ucu debug pinleri için ayrılır, sadece o iş için kullanılır
portb.6 ve portb.7 olması lazım
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 07 Mart 2011, 14:54:20
ayrıca 18F452 mature product görünüyor artık
yani tarih olmuş

microchip onun yerine 18F4520 tavsiye ediyor, ayak balantıları falan aynı olmalı
18F452 artık üretilmiyor heralde
o yüzden fiyatı kendii sitesinde ~6$ 18F452/IP pdip kılıfı
halbuki 18F4520 aynısı ~4$  (hemde çok daha üstün özellikleri var)

eski ürünler daha pahalı oluyor benim bildiğim.

mesela gene 16F84 var bir türlü vazgeçilmez olan, o da ~4$ falan

not: genel bilgi olsun diye yazdım .
Başlık: Ynt: 18F452 config ayarları
Gönderen: frederic - 07 Mart 2011, 15:18:58
MAXIM hocam ayrıntılı bilgileriniz için teşekkür ederim,emeğinize sağlık çok faydalı bilgiler vemişsiniz kafamdaki sorulara cevap oldu,iyi günler dilerim.
Başlık: Ynt: 18F452 config ayarları
Gönderen: EMG81 - 07 Mart 2011, 15:35:53
Selam arkadaşlar.

Ben şuan Proton ile PLL osc kısmında takılmış durumdayım.

Elimde 452 var. 452 ye 10Mhz kristal osc bağlı.
Config ayarlarım ;
@CONFIG_REQ
@__CONFIG Config1H, OSCS_OFF_1 & HSPLL_OSC_1        <----------- Görüneceği üzre HSPLL
@__CONFIG Config2L, BOR_OFF_2 & BORV_20_2 & PWRT_OFF_2
@__CONFIG Config2H, WDT_OFF_2 & WDTPS_128_2
@__CONFIG Config3H, CCP2MX_ON_3
@__CONFIG Config4L, STVR_OFF_4 & LVP_OFF_4 & DEBUG_OFF_

programlayıcım ICD2 dede kontrol ediyorum HSPLL x 4 in osc . Ama pic 40Mhz çalışmıyor.

Xtal=10Mhz ve Xtal=40Mhz tanımlamalarını denedim. Hiç bir değişim yok. Nerede hata yapıyorum acaba?
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 07 Mart 2011, 16:32:47
Declare PLL_Req = On
Başlık: Ynt: 18F452 config ayarları
Gönderen: Tagli - 07 Mart 2011, 20:39:29
Alıntı yapılan: Maxim - 07 Mart 2011, 14:54:2018F452 artık üretilmiyor heralde
o yüzden fiyatı kendii sitesinde ~6$ 18F452/IP pdip kılıfı
halbuki 18F4520 aynısı ~4$  (hemde çok daha üstün özellikleri var)
INT-EL (http://direnc.net/main/products.asp?cat_ID=397&sub_cat_ID=231)'de durum tam tersi, yani 18F452 daha ucuz. Dorukan'da ise fiyatları aynı. Diğer yerleri bilmiyorum.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 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.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Tagli - 07 Mart 2011, 21:32:48
18F452'nin azami hızı 40 MHz zaten, yani 48 MHz olamaz.

XTPLL diye bir seçenek olmadığını ben de yeni farkediyorum, daha önceden dikkatimi çekmemişti. Ama ben olsam 4 MHz kristali HSPLL seçeneği ile denerdim. Birkaç gün önce 18F452'yi HS ayarlı iken yanlışlıkla 4 MHz kristal ile çalıştırdım. Görünürde güzel (tabi yavaş) çalıştı ama uygulamada hassas bir zamanlama olmadığından tam doğru çalışıp çalışmadığını anlayamadım.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Mucit23 - 07 Mart 2011, 21:38:14
Arkadaşlar Bu config ayarlarında PLL ne demek. OSC tipini XT seçince ne oluyor XTPLL yapınca ne oluyor. Yada HS ile HSPLL arasındaki fark nedir. Nasıl işler. Ne gibi durumlarda kullanılır. Beni bilgilendirirseniz sevinirim. :)
Başlık: Ynt: 18F452 config ayarları
Gönderen: 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.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 08 Mart 2011, 00:19:46
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ş.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 08 Mart 2011, 00:52:18
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 :

(http://img707.imageshack.us/img707/6041/adszqui.png)
Başlık: Ynt: 18F452 config ayarları
Gönderen: frederic - 08 Mart 2011, 01:12:06
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.
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 08 Mart 2011, 01:12:58
Ben kod yazarken kodlarla ilgili tanımlamaları F1 tuşuna basarak helpine bakarım ve karşıma çıkan help de de şunlar yazılı.

(http://i1103.hizliresim.com/2011/3/8/876.jpg) (http://goo.gl/mc9cY)

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.
Başlık: Ynt: 18F452 config ayarları
Gönderen: 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
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 08 Mart 2011, 01:26:06
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
Başlık: Ynt: 18F452 config ayarları
Gönderen: Maxim - 08 Mart 2011, 01:31:10
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
Başlık: Ynt: 18F452 config ayarları
Gönderen: Ankaralı - 12 Mart 2011, 00:37:03
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