[elektro] PIC32 Idle mode
Huszti András
kyrk.5.dpg.hu at freemail.hu
Wed Feb 3 22:56:36 CET 2016
Hello,
Ezzel a PIC32-es panellal kiserletezgetek:
https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO-MICRO/
Epitettem egy kapcsolast ahol probalom lejebb vinni az aramfelvetelt. Megoldaskent arra gondoltam, hogy elkuldom a uC-t Idle mode-ba. Ha valami feladat akad akkor jon interrupt es az inditja. Mukodik a dolog egyetlen egy problemam van csak. Idle mode nelkul az 1ms-es idoalapom (Timer interrupt) valoban 1 ms. Ha Idle modba megyek akkor hirtelen felmaszik 3 ms kore.
Szeretnem megerteni, hogy honnan jon ez az ido. Az en olvasatomban az adatlap szerint az IDLE modeban az osszcilator nincs leallitva. Ezt ugy ertelmezem, hogy az IDLE mode elhagyasakor a processzor azonnal tovabb tud futni a regi sebessegen. Az adatlapban van egy tablazat, hogy mekkora kesleltetesekre kell szamitani osszcilator valataskor. Ez a tablazat azonban a SLEEP mode alatt van. Az en ertelmezesem szerint ez a tablazat ram nem vonatkozik. A meresek viszont azt mutatjak, hogy a tavlazatban szereplo hivatkozott ido megiscsak ott van. Kb 2 ms. Ami ugye ossze jon mert 1ms+2ms az pont 3ms.
Mas is tapasztalt hasonlo kesleltetest IDLE mode eseten? Valamit rosszul csinaltam vagy az adatlapot nem ertelmezem helyesen?
Az IDLE modhoz a beepitett fuggvenyt hasznalom: PowerSaveIdle();
Osscilator beallitasok:
// Configuration Bit settings
// SYSCLK = "80 MHz (8MHz Crystal/ FPLLIDIV * FPLLMUL / FPLLODIV)
// PBCLK = 40 MHz
// Primary Osc w/PLL (XT+,HS+,EC+PLL)
// WDT OFF
// Other options are don't care
//
#pragma config UPLLEN = ON // USB PLL Enabled
#pragma config FPLLMUL = MUL_20 // PLL Multiplier
#pragma config UPLLIDIV = DIV_2 // USB PLL Input Divider
#pragma config FPLLIDIV = DIV_2 // PLL Input Divider
#pragma config FPLLODIV = DIV_1 // PLL Output Divider
#pragma config FPBDIV = DIV_2 // Peripheral Clock divisor
#pragma config FWDTEN = OFF // Watchdog Timer
#pragma config WDTPS = PS1 // Watchdog Timer Postscale
#pragma config FCKSM = CSDCMD // Clock Switching & Fail Safe Clock Monitor
#pragma config OSCIOFNC = OFF // CLKO Enable
#pragma config POSCMOD = HS // Primary Oscillator
#pragma config IESO = OFF // Internal/External Switch-over
#pragma config FSOSCEN = OFF // Secondary Oscillator Enable (KLO was off)
#pragma config FNOSC = PRIPLL // Oscillator Selection
#pragma config CP = OFF // Code Protect
#pragma config BWP = OFF // Boot Flash Write Protect
#pragma config PWP = OFF // Program Flash Write Protect
Koszonom
More information about the Elektro
mailing list