Bu MCU Osilatör ayarlarını tam anlayamadım.Şimdi ben RC15 ve RC12 bacaklarına 22pf kondansatör takıp 4mhz kristal bağladım.Benim çalışma frekansım max kaça kadar çıkabiliyor pll ile ? Ayarlarım nasıl olmalı ?
dsPIC33FJ128GP710 in MIPS değeri 40MHZ diyor. dahasheette 140-141 sayfalarında PLL konusunu anlatmış. Bir göz at istersen.
http://ww1.microchip.com/downloads/en/DeviceDoc/70286C.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/70286C.pdf)
Kod 33F serisi için geçerli. MC710 da çalışıyor.
Hesabı MIPS = M * N1 / N2 şeklinde. Max 40 MIPS olabilir. M * N1 max 80e6 olmalı.
Atanan değerlerin üzerine +2 ekleyerek hesap yapmak gerekiyor.
4 mhz xtal için M= 78 , n1=n2=0 değeri verebilirsiniz.
//#define FRC_OSC_USED
#define PLL_M 38
#define PLL_POST_N1 0
#define PLL_PRE_N2 0
PLLFBD = PLL_M; // M = 40
CLKDIVbits.PLLPOST = PLL_POST_N1; // N2 = 2
CLKDIVbits.PLLPRE = PLL_PRE_N2; // N1 = 2
OSCTUN=0; // Tune FRC oscillator, if FRC is used
Nop();
RCONbits.SWDTEN=0; // Disable Watch Dog Timer
Nop();
#ifdef FRC_OSC_USED
// Initiate Clock Switch to Internal FRC with PLL (NOSC = 0b001)
CLKDIVbits.FRCDIV = 0;
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(0x01);
while (OSCCONbits.COSC != 0b001); // Wait for Clock switch to occur
#else
// Initiate Clock Switch to Primary Oscillator with PLL (NOSC = 0b011)
__builtin_write_OSCCONH(0x03);
__builtin_write_OSCCONL(0x01);
while (OSCCONbits.COSC != 0b011); // Wait for Clock switch to occur
#endif
while(OSCCONbits.LOCK!=1); // Wait for PLL to lock
Teşekkürler çalıştı.Bende bunu arıyordum.