[elektro] PIC32 Idle mode
Huszti András
kyrk.5.dpg.hu at freemail.hu
Fri Feb 5 23:59:54 CET 2016
Hello,
meglett a megoldas. Tenyleg nincs ilyen kesleltetesi ido. Softverhiba volt es az utomezo nem viselte jol az idle modot. A hiba javitasa utan mar helyreallt az utemezes es a kesleltetetesi ido is eltunt, leven, hogy nem is letezett :)
"Huszti András" <kyrk.5.dpg.hu at freemail.hu> írta:
>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
>
>
>
>-----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list