avatar_ete

18F2550 Config Ayarları

Başlatan ete, 04 Ekim 2011, 11:56:23

ete

Bir istek üzerine yaptığım araştırma sonucunda 18F2550 sigorta ayarlarını tespit etmeye çalıştım.
Öncelikle 18F2550 işlemcisinde hangi sigorta ayarları geçerlidir bunu görmek üzere aşağıdaki linkte evrdiğim Microchip pdf dosyasını incelemek gerekiyor. Dosyada pek çok 18F serisine ait Config ayarları verilmiştir.

http://hades.mech.northwestern.edu/images/e/e3/PIC18_config_settings.pdf

Ama asıl kaynak MPASM klasörü içinde yer alan P18F2550.INC dosyasıdır. Bu dosyayı MCS de yada herhangi bir text editöründe (notepad) açabilir ve içine bakabilirsiniz. Bakınca sayfanın sonuna doğru bütün sigorta ayarlarının seçenekleri ile birlikte neler olabileceğini görebilirsiniz. Şimdi bu dosyaya bakarak ayarları gözden geçirelim. Gözden geçirmeden evvel yazdığımız programda 4 Mhz kristal kullanacağımızı ve normal ayarlar olacağını varsayıyoruz.
Config seçenekleri sırası ile şöyle;
;----- CONFIG1L Options --------------------------------------------------
Burada PLL Bölücü seçenekleri ve CPU postscale ve USB clk kaynak seçimi yapılıyor. Bizi pek ilgilendirmediği için atlıyoruz.

;----- CONFIG1H Options --------------------------------------------------
Burada Osilatör seçenekleri mevcut. XY yi seçiyoruz.
_FOSC_XT_XT_1H
_FCMEN_OFF_1H      'fail safe monitor off seçiyoruz.
_IESO_OFF_1H         'Osilatör switch over mode disabled seçiyoruz.

;----- CONFIG2L Options --------------------------------------------------
_PWRT_ON_2L          'Power on Timer enable seçtik
_BOR_OFF_2L           'Brownout reset yazılm ve donanım olarak kapalı seçtik
_VREGEN_OFF_2L    'USB voltaj regülator disable seçtik

;----- CONFIG2H Options --------------------------------------------------
_WDT_OFF_2H         'WDT kapalı seçtik isterseniz ON yapabilirsiniz.
On yaparsanız ayrıca bölücüde da seçmeniz gerekir.  Mesela  _WDTPS_64_2H   '(1/64 seçilmiş oluyor)

;----- CONFIG3H Options --------------------------------------------------
_MCLRE_OFF_3H        'MCLR pini iptal  RE3 pini giriş pini olacak. veya  _MCLRE_ON_3H   şeklinde MCLR aktif seçilebilir.
_LPT1OSC_OFF_3H    'Timer1 yüksek güç işlemleri için ayarlandı
_PBADEN_OFF_3H      'PortB.4:0 pinleri Digital giriş / Çıkış olarak ayarlandı  (ON yaparsanız Analog olurlar)
_CCP2MX_OFF_3H     ' CCP2 input/output is multiplexed with RB3

;----- CONFIG4L Options --------------------------------------------------
_STVREN_OFF_4L      ' Stack full/underflow will not cause Reset
_LVP_OFF_4L
_XINST_OFF_4L
_DEBUG_OFF_4L

;----- CONFIG5L Options --------------------------------------------------
_CP0_OFF_5L          ' Block 0 (000800-001FFFh) not code-protected
_CP1_OFF_5L          'Block 1 (002000-003FFFh) not code-protected
_CP2_OFF_5L          'Block 2 (004000-005FFFh) not code-protected
_CP3_OFF_5L          'Block 3 (006000-007FFFh) not code-protected

;----- CONFIG5H Options --------------------------------------------------
_CPB_OFF_5H          'Boot block (000000-0007FFh) not code-protected
_CPD_OFF_5H          ' Data EEPROM not code-protected

;----- CONFIG6L Options --------------------------------------------------
_WRT0_OFF_6L         ' Block 0 (000800-001FFFh) not write-protected
_WRT1_OFF_6L         ' Block 1 (002000-003FFFh) not write-protected
_WRT2_OFF_6L         ' Block 2 (004000-005FFFh) not write-protected
_WRT3_OFF_6L         ' Block 3 (006000-007FFFh) not write-protected

;----- CONFIG6H Options --------------------------------------------------
_WRTB_OFF_6H         ' Boot block (000000-0007FFh) not write-protected
_WRTC_OFF_6H         ' Configuration registers (300000-3000FFh) not write-protected
_WRTD_OFF_6H         ' Data EEPROM not write-protected

;----- CONFIG7L Options --------------------------------------------------
_EBTR0_OFF_7L        'Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
_EBTR1_OFF_7L        'Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
_EBTR2_OFF_7L        'Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
_EBTR3_OFF_7L        'Block 3 (006000-007FFFh) not protected from table reads executed in other blocks

;----- CONFIG7H Options --------------------------------------------------
_EBTRB_OFF_7H        'Boot block (000000-0007FFh) not protected from table reads executed in other blocks

Hepsi bu kadar.
Şimdi bunları PBP formatına göre vermek gerekiyor;
asm
    __CONFIG _CONFIG1H, _FOSC_XT_XT_1H &_FCMEN_OFF_1H &_IESO_OFF_1H
    __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L &  _VREGEN_OFF_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H   
    __CONFIG _CONFIG3H, _MCLRE_OFF_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_OFF_3H   
    __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L &_XINST_OFF_4L  & _DEBUG_OFF_4L   
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
    __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H 
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H  & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H 

endasm

Protonda çalışanlar yazım formatına uygun olarak yukarıda yazılı seçenekleri verirlerse sigorta ayarları doğru yapılmış olacaktır.

Ete

est32

#1
gece ben bu config ayarları ile epey uğraştım ama 18f serisinde config ayarlarının bu kadar önemli olduğunu bilmiyordum.Yanlış birşey yapınca çalışmıyor.İnternetten örnek bularak ve protonun dosyalarını karıştırıp tek tek deneye deneye gece 2 civarında devremi proteusta iyi kötü çalıştırmayı başardım.Proteus ve proton gece vakti ikisi birlikte hakkaten burnumdan getirdiler.

ICSP programlama için lvp bitini açıyorum fakat proteus hata veriyor,arka arkaya binlerce hata verip kilitlenme derecesine geliyor.Nedense proteus dahili osilatör kabul etmiyor...daha bir sürü sorun çıkardı.

Proton için yazım şeklini şu siteden buldum;
http://www.sonsivri.com/forum/index.php?topic=5144.0
Proton altında da P18F2550.PPI dosyasının içinde config ayarları ve açıklamalarını buldum
Dün gece ki uğraşlarım sonucu da şu şekilde config ayarlarına ulaştım;
DEVICE=18F2550 
XTAL=4
@CONFIG_REQ
        @PLL_REQ
        '@__config CONFIG1L, PLLDIV_1_1
        '@__config config1h, FOSC_INTOSC_XT_1 [b]DAHİLİ OSİLATÖR SEÇENEĞİYMİŞ AMA PROTEUS BUNU AÇINCA HATA VERİYOR HİÇ ÇALIŞMIYOR[/b]
        @__config CONFIG2L, PWRT_ON_2 & BOR_OFF_2
        @WATCHDOG_REQ
        @__config CONFIG2H, WDT_OFF_2
        @__config CONFIG3H, MCLRE_ON_3 & LPT1OSC_ON_3 & PBADEN_OFF_3
        '@DEBUG_REQ       
        '@__config config4l, LVP_ON_4 [b]BUNU AÇINCA DAHA DA KÖTÜ OLUYOR PROTEUS BİNLERCE HATA VERİP KİLİTLENİYOR[/b]

Aşağıda resmini verdiğim hatalar var ve hataların proteus dilindeki anlamını bilmiyorum

bu hata sürekli var ama devre çalışıyor,çalışmasında sorun yok;


Bu hatayı ise dahili osilatör seçeneği açılınca yapıyor ve proteus hiç çalışmıyor,hata verip bırakıyor;


Bu ise LVP'nin açılması ile oluyor ve proteus'da binlerce hata verip kilitlenmeye doğru gidiyor;

ete hocama da çok teşekkürler...

ete

Bana kalırsa sen aşağıdaki şekilde kullan;

Ete


@CONFIG_REQ
@__CONFIG config1l, PLLDIV_1_1L
@__CONFIG config1h, FOSC_XT_XT_1H &_FCMEN_OFF_1H &_IESO_OFF_1H
@__CONFIG config2l, PWRT_ON_2L & _BOR_OFF_2L &  _VREGEN_OFF_2L
@__CONFIG config2h, WDT_OFF_2H
@__CONFIG config3h, MCLRE_OFF_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_OFF_3H
@__CONFIG config4l, STVREN_OFF_4L & _LVP_OFF_4L &_XINST_OFF_4L  & _DEBUG_OFF_4L
@__CONFIG config5l, CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
@__CONFIG config5h, CPB_OFF_5H & _CPD_OFF_5H
@__CONFIG config6l, WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
@__CONFIG config6h, WRTB_OFF_6H & _WRTC_OFF_6H  & _WRTD_OFF_6H
@__CONFIG config7l, EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
@__CONFIG config7h, EBTRB_OFF_7H

est32

Proton için bu şekilde düzenleyince derlendi;
@CONFIG_REQ
@__CONFIG CONFIG1L, PLLDIV_1_1
@__CONFIG CONFIG1H, FOSC_XT_XT_1 & FCMEN_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 & 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

Teşekkür ederim hocam ama nedense ilk verdiğim fotoğrafdaki uyarı yine devam ediyor ancak devrenin çalışmasında sorun yok,gerçek ortamda sorunsuz çalışacağını umuyorum.

pwm.c

PROTON+ kullananlar için değişik bir pic18f2550 CONFIG örneği vereyim.
bunu P18F2550.PPI dosyasından taslak olarak hazırladım. ihtiyaca göre bu dosya içeriğine bakılarak değiştirebilirsiniz.
Device 18F2550
Config_Start
PLLDIV = 1
CPUDIV = OSC1_PLL2
USBDIV = 2
FOSC = HSPLL_HS
FCMEN = OFF
IESO = OFF
PWRT = On
BOR = OFF
BORV = 0
VREGEN = On
WDT = OFF
WDTPS = 1
MCLRE = OFF
LPT1OSC = OFF
PBADEN = On
CCP2MX = OFF
STVREN = OFF
LVP = On
XINST = OFF
Debug = OFF
CP0 = OFF
CP1 = OFF
CP2 = OFF
CP3 = OFF
CPB = OFF
CPD = OFF
WRT0 = OFF
WRT1 = OFF
WRT2 = OFF
WRT3 = OFF
WRTB = OFF
WRTC = OFF
WRTD = OFF
EBTR0 = OFF
EBTR1 = OFF
EBTR2 = OFF
EBTR3 = OFF
EBTRB = OFF
Config_End
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

est32


Powered by EzPortal