Estoy explorando mi primer dispositivo de brazo, el lpc1343, estoy usando VIM y ARM GCC , he logrado encender un LED pero, para parpadear, Necesitaré arrancar el reloj y pll, en este momento no puedo encontrar la secuencia correcta para esto en el manual del usuario. ¿Dónde puedo encontrar la secuencia de inicio básica para clock y PLL para lpc1343?
Hasta ahora se me ocurrió la siguiente secuencia que no funciona:
void InitSys (void) {
InitCpu();
InitPorts();
}
void InitCpu (void) {
PDRUNCFG |= 0x00000020; // SYSOSC_PD = 1 -> System oscillator Powered Down
SYSOSCCTRL = 0x00000000; // Oscillator is not bypassed, 1 - 20 MHz frequency range
PDRUNCFG &= ~0x00000020; // SYSOSC_PD = 0 -> System oscillator is Powered
InitPLL();
SYSAHBCLKDIV |= 0x00000001; // System Clock Divide by 1
MAINCLKUEN &= ~0x00000001; // No change
MAINCLKSEL = 0x00000003; // Main clock source select register -> System PLL clock out
MAINCLKUEN |= 0x00000001; // Update clock source
}
void InitPLL (void) {
PDRUNCFG |= 0x00000080; // Set SYSPLL_PD
SYSPLLCLKUEN &= ~0x00000001; // No change
SYSPLLCLKSEL = 0x00000001; // System oscillator
SYSPLLCLKUEN |= 0x00000001; // Update clock source
SYSPLLCTRL = 0x00000025; // FCLKOUT = 72 MHz /// M div = 6 / P div = 2
PDRUNCFG &= ~0x00000080; // Set SYSPLL_PD
while(!(SYSPLLSTAT & 0x000000001)){} //If 1 -> PLL locked
}