This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LPC11C14 clock frequency problem

I am using LPC11C14 board with 12Mhz crystal. Most of ASM instructions are 1 cycle, with entering C function takes 3 cycles and exiting takes 3 cycles.

__asm void test ()
{                                                       //3 cycles
        MOVS R1, #1                                     //1 cycle
        SUBS R1, R1, #1                                 //1 cycle
        CMP R1, #0                                      //1 cycle
        BEQ endf                                        //3 cycles
endf
        BX lr
}

So this function should take exactly 12 cycles which means it should take 1us to execute, but if I use oscilloscope and put gpio turn on-off i get around 3-4uS toggle.
Although simulator says that for gpio set/clear it takes 10 cycles, it is still missing some 20 cycles.

        LPC_GPIO0->DATA |= (1<<0);
        test ();
        LPC_GPIO0->DATA &= ~(1<<0);
        test ();
        LPC_GPIO0->DATA |= (1<<0);

I guess issue is somewhere in crystal settings or ? I was looking at settings for main clock, but I couldnt figured out whether it is defaulted to IRC oscillator and how to change it to use external crystal.

Parents
  • As Per mentioned in an earlier post, you should look at the flash timing. The default flash access time is 3 clocks for this device. The default value allows you to run the processor up to 50 Mhz. Since you are only running at 12Mhz, you can set this to 1 clock. Take a look at the Flash Programming chapter in the user manual. Once you set the flash access to 1 clock your timings should be closer to what you are expecting.

Reply
  • As Per mentioned in an earlier post, you should look at the flash timing. The default flash access time is 3 clocks for this device. The default value allows you to run the processor up to 50 Mhz. Since you are only running at 12Mhz, you can set this to 1 clock. Take a look at the Flash Programming chapter in the user manual. Once you set the flash access to 1 clock your timings should be closer to what you are expecting.

Children
No data