Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: rree - 27 Temmuz 2017, 17:55:24

Başlık: Fuse Config Ayarlarını yazma tekniği
Gönderen: rree - 27 Temmuz 2017, 17:55:24
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?
Başlık: Ynt: Fuse Config Ayarlarını yazma tekniği
Gönderen: rree - 27 Temmuz 2017, 19:42:20
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ı?


Başlık: Ynt: Fuse Config Ayarlarını yazma tekniği
Gönderen: omereliusuk - 29 Temmuz 2017, 20:35:41
Ben bunlarla uğraşmak yerine sihirbazı kullanıyorum. Tüm ayarları es geçmeden düzenleyip önüme koyuyor.
Başlık: Ynt: Fuse Config Ayarlarını yazma tekniği
Gönderen: Okan AKÇA - 29 Temmuz 2017, 21:13:46
Ccs de yazma tekniği filan yoktur. Pll açarsanız kristal x4 olur çalışma frekansi
Başlık: Ynt: Fuse Config Ayarlarını yazma tekniği
Gönderen: rree - 30 Temmuz 2017, 16:05:23
 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.