dsPIC33FJ128GP710 OSC Ayarları

Başlatan Mr.Java, 02 Mart 2014, 12:07:46

Mr.Java

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ı ?

subram

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://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

iyildirim

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

Mr.Java

Teşekkürler çalıştı.Bende bunu arıyordum.