CPU clock PLL etc

25 Nov 2010
I am investigating the possibilities of the CPU clock. I know that the main oscillator is 12MHZ and say the cpu is going to 96MHz. The PLL multiplied by 8 (12x8 = 96). I would like to know if it is truth.The cpu is at 96MHz? How many clock cycles is an instruction? Peripherals also going to 96MHz? There is a library to change this? Thanks
 
25 Nov 2010 . Edited: 25 Nov 2010

Check this out (also see the whole thread).

Most instructions take one cycle. The notable exceptions are load/store instructions, division, long multiplies and multiply/accumulate. See the detailed info here and here.

25 Nov 2010

Ok , Thanks . This day I spent working with clock PLL. I know now that the new library put mbed at 96Mhz. I test it with diferent clock and... overclocking I go to 132MHZ!!!  and low to 50MHZ without problems. I think that a library with change speed will be nice. Thanks

25 Nov 2010

If you change the clock speed before using any peripheral library functions e.g. timers, and update the SystemCoreClock global variable as in the aforementioned thread, the library will work correctly (by which I mean, if you ask for a timer interrupt every 0.01 seconds, and if you init that timer after the SystemCoreClock change, it will work correctly - if you change the clock after peripherals have been init'd they may behave incorrectly).

26 Nov 2010

Yes , of course. This is the  first problem . If you change cpclk  , the first thing you must do  is refresh systemclock variable. The second is that de max frecuency of PLL output is 550MHZ . Try to change  the divisor or multiplicator for the combination to get the frecuency.

26 Nov 2010

To update the SystemCoreClock variable, just call SystemCoreClockUpdate(), the library will do everything for you.