[En-Nut-Discussion] EVK1100 Timing Problem
mt1961 at thi.de
Mon Oct 13 11:21:50 CEST 2014
i found the reason for the Timing Problem in a post two years ago:
> i have read back the PLL Control register of PLL0:
> It's hex value: 0x10 0x09 0x01 0x0D
> PLLMUL is set to 9
> PLLDIV is set to 1
> PLLOPT uses 80 ... 180MHz range
> PLLOPT selects f(pll) = f(vco)/2
> With these options f(pll) is calculated:
> f(vco)= ( 9 + 1 ) / 1 * f(osc) = 120MHz
> f(pll) = 60MHz
> Seems to be correct.
> In file /nut/arch/avr32/dev/ostimer.c I found this function.
> void NutRegisterTimer(void (*handler) (void *))
> /* Set compare value for the specified tick frequency. */
> // Set_system_register(AVR32_COMPARE, NutGetCpuClock() / NUT_TICK_FREQ
> + Get_system_register(AVR32_COUNT));
> Set_system_register(AVR32_COMPARE, NutGetCpuClock() /
> NUT_TICK_FREQ );
> sig_sysCompare.ir_handler = handler;
> register_interrupt(SystemCompareIrqEntry, AVR32_CORE_COMPARE_IRQ,
> I changed line 4 in line 5. Now system seems to run at the correct speed.
> But Nut/os needs about 15-20s for boot/init.
> Could someone explain this function?
> Best regards
Now i wanted to ask if there is any solution today to this problem? Maybe
replay the Get_system_register(AVR32_COUNT) with a fix value?
View this message in context: http://microcontrollers.2385.n7.nabble.com/EVK1100-Timing-Problem-tp192310p192403.html
Sent from the MicroControllers - Ethernut mailing list archive at Nabble.com.
More information about the En-Nut-Discussion