pic18f4685 config ayarları

Başlatan homer380, 06 Mayıs 2014, 18:42:32

homer380

pic16f84a ile başlayıp 628a,819, 877a,4550 ve pic18f46k22 ile çeşitli çalışmalarım oldu. bunlarla çalışırken zaman içinde veri sayfalarını (datasheet) az çok okur oldum ama hala aklıma takılan sorular oluyor. Bilen biri (yada yol gösterecek) hatam var mı söylerse sevinirim. Özellikle osilator ayarlarında.
config kodlarım şu şekilde;
Device 18F4685
@CONFIG_REQ
@ __config CONFIG1H, OSC_HSPLL_1  &  FCMEN_ON_1 & IESO_ON_1             'iç osilator kullanılacak ve pll aktif
@ __config CONFIG2L, PWRT_ON_2  & BOREN_OFF_2 & BORV_3_2  
@ __config CONFIG2H, WDT_OFF_2&WDTPS_128_2     
@ __config CONFIG3H, PBADEN_OFF_3    & MCLRE_ON_3 
@ __config CONFIG4L, STVREN_ON_4 & LVP_OFF_4 & XINST_OFF_4 & DEBUG_OFF_4
@ __config CONFIG5L, CP0_OFF_5 & CP1_OFF_5 & CP2_OFF_5 & CP3_OFF_5 & CP1_OFF_5 & CP2_OFF_5 & CP3_OFF_5
@ __config CONFIG5H, CPB_OFF_5 & CPD_OFF_5
@ __config CONFIG6L, WRT0_OFF_6 
@ __config CONFIG6H, WRTC_OFF_6 & WRTB_OFF_6 & WRTD_OFF_6
@ __config CONFIG7L, EBTR0_OFF_7 & EBTR1_OFF_7 & EBTR2_OFF_7 & EBTR3_OFF_7
@ __config CONFIG7H, EBTRB_OFF_7
OSCTUNE=79      'pll aktif ediliyor. osilator hızı en yüksekte olacağı belirtiliyor. (8 x 4 pll =32 Mhz)
OSCCON =114     'iç osilator değeri 8 Mhz olacak. iç osilator aktif.
All_Digital TRUE
Xtal =32

osilator hızı dışındakiler zaten kapalı o yüzden fazla önemli değil benim için.

Maxim

öncelikle protonun Fuse Configurator plug-in var, onu kullanırsan iş kolaylaşır.

PLL,  osc hızını 4 ile çarpan özellik
fakat işin içine pll girdimi işler biraz karışıyor

önce internal - external osc belirlemek lazım
sonra osc hangi hızda çalışacak onu belirliyorsun
sonra config ayarlarını yapıyorsun
gerekirse ek olarak osctune ve osccon registerlarındaki ilgili yerleri ayarlıyorsun
ben bu şekilde yapıyorum, genelde oluyor.

int osc 8mhz seçtim, zaten daha üzeri bu işlemcide yok
sonrada pll aktif ettim
8x4 = 32mhz olması lazım osc hızının.


;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 18F4685
Declare Xtal=8
Declare PLL_Req = On

OSCTUNE.6=1 'PLL AÇIK
OSCCON.6=1
OSCCON.5=1
OSCCON.4=1
OSCCON.1=1

Config_Start
  OSC = IRCIO67	;Internal oscillator block, port function on RA6 and RA7
  FCMEN = OFF	;Fail-Safe Clock Monitor disabled
  IESO = OFF	;Oscillator Switchover mode disabled
  PWRT = OFF	;PWRT disabled
  BOREN = OFF	;Brown-out Reset disabled in hardware and software
  BORV = 3	;VBOR set to 2.1V
  WDT = OFF	;WDT disabled (control is placed on the SWDTEN bit)
  WDTPS = 32768	;1:32768
  PBADEN = OFF	;PORTB<4:0> pins are configured as digital I/O on Reset
  LPT1OSC = OFF	;Timer1 configured for higher power operation
  MCLRE = OFF	;RE3 input pin enabled; MCLR disabled
  STVREN = OFF	;Stack full/underflow will not cause Reset
  LVP = OFF	;Single-Supply ICSP disabled
  BBSIZ = 1024	;1K words (2K bytes) Boot Block
  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-003FFFh) not code-protected
  CP1 = OFF	;Block 1 (004000-007FFFh) not code-protected
  CP2 = OFF	;Block 2 (008000-00BFFFh) not code-protected
  CP3 = OFF	;Block 3 (00C000-00FFFFh) not code-protected
  CP4 = OFF	;Block 4 (010000-013FFFh) not code-protected
  CP5 = OFF	;Block 5 (014000-017FFFh) not code-protected
  CPB = OFF	;Boot block (000000-0007FFh) not code-protected
  CPD = OFF	;Data EEPROM not code-protected
  WRT0 = OFF	;Block 0 (000800-003FFFh) not write-protected
  WRT1 = OFF	;Block 1 (004000-007FFFh) not write-protected
  WRT2 = OFF	;Block 2 (008000-00BFFFh) not write-protected
  WRT3 = OFF	;Block 3 (00C000-00FFFFh) not write-protected
  WRT4 = OFF	;Block 4 (010000-013FFFh) not write-protected
  WRT5 = OFF	;Block 5 (014000-017FFFh) not write-protected
  WRTC = OFF	;Configuration registers (300000-3000FFh) not write-protected
  WRTB = OFF	;Boot block (000000-0007FFh) not write-protected
  WRTD = OFF	;Data EEPROM not write-protected
  EBTR0 = OFF	;Block 0 (000800-003FFFh) not protected from table reads executed in other blocks
  EBTR1 = OFF	;Block 1 (004000-007FFFh) not protected from table reads executed in other blocks
  EBTR2 = OFF	;Block 2 (008000-00BFFFh) not protected from table reads executed in other blocks
  EBTR3 = OFF	;Block 3 (00C000-00FFFFh) not protected from table reads executed in other blocks
  EBTR4 = OFF	;Block 4 (010000-013FFFh) not protected from table reads executed in other blocks
  EBTR5 = OFF	;Block 5 (014000-017FFFh) 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

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------

OG

#2
32MHz calışma için ( OSCTUNE = 8MHz yani dahili osc  ve PLL açık olunca 4 x dahiliosc =32MHz )

Declare Xtal=8  mi
Declare Xtal=32 mi.
32 olması gerekiyor sanıyorum.

Bu deklarasyon donanımı ilgilendirmeyip proton'a işlemcinin koşacağı hızı bildiriyor.
Time işleri ile (delay lar, TMR kesmeleri,  yazılımsal haberleşmeler  vs) işiniz yoksa sıkıntı çıkmayabilir ama umulmayan yerde time hataları çıkabilir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

homer380

Sanırım benim tanımlamalarda oldu. Bmp085 ile istediğim gibi haberleşiyorum.Fakat bu seferde gps modul sorun cıkardı. Seri haberleşmede sorun yaşıyorum. yeni bir işlemciyle tanısınca mutlaka bir sorun cıkıyor.(bmp085 ile spi, gps ile seri haberleşme) şimdiki sorunumda gps bakalım çözebilecem mi? İlginiz için teşekürler.

Alıntı yapılan: Maxim - 06 Mayıs 2014, 19:49:27
öncelikle protonun Fuse Configurator plug-in var, onu kullanırsan iş kolaylaşır.

bu özellikler proton ide neresinde var aradım bulamadım. yoksa proton dosyasında ayrı bir program mı?

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.