Fuse Config Ayarlarını yazma tekniği

Başlatan rree, 27 Temmuz 2017, 17:55:24

rree

Pic18f45k22 de 10 mhz kristal bağladım  #fuse ayarları ikisininde aynı olmasına rağmen biri hızlı
diğeri yavaş çalışıyor. Sigorta  ayarlarını kendimiz yazabilirmiyiz?
Alıntı Yap
#include <18F45K22.h>
#device ADC=10
#use delay(clock=40MHz,crystal=10MHz)
Pdf tablosu aşağıda
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Default/ 
Unprogrammed 
Value
300000h CONFIG1L — — — — — — — — 0000 0000
300001h CONFIG1H IESO FCMEN PRICLKEN PLLCFG FOSC<3:0> 0010 0101
300002h CONFIG2L — — — BORV<1:0> BOREN<1:0> PWRTEN 0001 1111
300003h CONFIG2H — — WDPS<3:0> WDTEN<1:0> 0011 1111
300004h CONFIG3L — — — — — — — — 0000 0000
300005h CONFIG3H MCLRE — P2BMX T3CMX HFOFST CCP3MX PBADEN CCP2MX 1011 1111
300006h CONFIG4L DEBUG XINST — — —LVP(1)
— STRVEN 1000 0101
300007h CONFIG4H — — — — — — — — 1111 1111
300008h CONFIG5L — — — —CP3(2)
CP2
(2)
CP1 CP0 0000 1111
300009h CONFIG5H CPD CPB — — — — — — 1100 0000
30000Ah CONFIG6L — — — —WRT3(2)
WRT2(2)
WRT1 WRT0 0000 1111
30000Bh CONFIG6H WRTD WRTB WRTC
(3) — — — — — 1110 0000
30000Ch CONFIG7L — — — —EBTR3(2)
EBTR2
(2)
EBTR1 EBTR0 0000 1111
30000Dh CONFIG7H —EBTRB— — — — — — 0100 0000
3FFFFEh DEVID1
(4)
DEV<2:0> REV<4:0> qqqq qqqq
3FFFFFh DEVID2
(4)
DEV<10:3> 0101 qqqq


Config1H bilgileri
bit 7 IESO
(1)
:Internal/External Oscillator Switchover bit
1= Oscillator Switchover mode enabled
0= Oscillator Switchover mode disabled
bit 6 FCMEN
(1)
:Fail-Safe Clock Monitor Enable bit
1= Fail-Safe Clock Monitor enabled
0= Fail-Safe Clock Monitor disabled
bit 5 PRICLKEN:Primary Clock Enable bit
1= Primary Clock is always enabled
0= Primary Clock can be disabled by software
bit 4 PLLCFG:4 x PLL Enable bit
1= 4 x PLL always enabled, Oscillator multiplied by 4
0= 4 x PLL is under software control, PLLEN (OSCTUNE<6>)
bit 3-0 FOSC<3:0>:Oscillator Selection bits
1111= External RC oscillator, CLKOUT function on RA6
1110= External RC oscillator, CLKOUT function on RA6
1101= EC oscillator(low power, <500 kHz)
1100= EC oscillator, CLKOUT function on OSC2 (low power, <500 kHz)
1011= EC oscillator(medium power, 500 kHz-16 MHz)
1010= EC oscillator, CLKOUT function on OSC2 (medium power, 500 kHz-16 MHz)
1001= Internal oscillator block, CLKOUT function on OSC2
1000= Internal oscillator block
0111= External RC oscillator
0110= External RC oscillator, CLKOUT function on OSC2 
0101= EC oscillator (high power, >16 MHz)
0100= EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz)
0011= HS oscillator (medium power, 4 MHz-16 MHz)
0010= HS oscillator (high power, >16 MHz)
0001= XT oscillator
0000= LP oscillator


Bu bilgiler dahilinde
#rom int16 0x300000={0b0010001100000000}
//PLLOFF,HSM,PrimaryOsc
  Yukarıdaki yazım şekli doğrumudur?

rree

#1
CCS Tools> Device Editor>,Sol ust tabloya
            Mask   Value Cword
PLLOFF 1000    0000    1
   Ekledim
#include <18F45K22.h>
#device ADC=10
#use delay(clock=10Mhz)
#Fuses HSM,PRIMARY_ON,PLLOFF,PROTECT


Pickit2 config bilgisinde PLL biti doğru gözüküyor. Önceden hep On durmundaydı.
   
   Hep şunu karıştıryorum?
   Kristal 10 Mhz  Plll Kapalı
Bu devreye göre
  #use delay(clock=10Mhz)  yoksa #use delay(crystal=10Mhz)
hangisini yazmalıyım yada başka şekilde mi yazılmalı?



omereliusuk

Ben bunlarla uğraşmak yerine sihirbazı kullanıyorum. Tüm ayarları es geçmeden düzenleyip önüme koyuyor.

Okan AKÇA

Ccs de yazma tekniği filan yoktur. Pll açarsanız kristal x4 olur çalışma frekansi

rree

 Bende sihirbazı kullandım K serilerinde hata var. PLL bitini kontrol ettim , fabrika ayarları 1 geliyor.
Şimdilik çözüm olarak ccs  device editörden "PLLOOF" paremetresi ekledim ve pll biti sıfır  oldu.