S32K clock mechanism & configuration

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K clock mechanism & configuration

S32K clock mechanism & configuration

First let us see the clock tree:

pastedImage_1.png

Core clock up to 112M, Bus clock up to 56M, Flash clock up to 28M.

Clock can been from: System OSC、Slow IRC 、Fast IRC and System PLL

1. OSC
SCG_SOSCCFG

pastedImage_3.png

pastedImage_5.png

2. PLL configuration
formula: SPLL_CLK = (VCO_CLK)/2
VCO_CLK = SOSC_CLK/(PREDIV + 1) *(MULT + 16) 

pastedImage_8.png

pastedImage_10.png

3. SCG_SPLLCSR

pastedImage_14.png

void SystemClockInit(void)
{
SCG->SOSCCFG = 0x3C;
SCG->SOSCCSR |= 1<<0; /* SOSCEN=1 enable SOSC clock */
/*wait clock active*/
while((SCG->SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK) == 0);

SCG->SPLLCSR &= ~(0x1<<0) ; /* SPLLEN=0: disable PLL*/
SCG->SPLLCFG &= ~(0x7<<8); /* PREDIV=0: 1 */
SCG->SPLLCFG |= 0xCU<<16; /* MULT=12: 28   PLL VCO = 8/1*(12+16) = 224M */
SCG->SPLLCSR |= 0x1<<0; /* SPLLEN=1: enable PLL */
/* wait PLL active*/
while((SCG->SPLLCSR & SCG_SPLLCSR_SPLLVLD_MASK) == 0);

SCG->RCCR |= SCG_RCCR_DIVCORE(0); /* DIVCORE=0: 1, CORE/SYS_CLK  112MHz */
SCG->RCCR |= SCG_RCCR_DIVBUS(1); /* DIVBUS=1: 2, BUS_CLK  56MHz */
SCG->RCCR |= SCG_RCCR_DIVSLOW(3); /* DIVSLOW=2: 4   FLASH_CLK  is 28MHz */
SCG->RCCR &= 0xFEFFFFFF; /* Initially set to SIRC so that LSB could be set as '0' */
SCG->RCCR |= SCG_RCCR_SCS(6); /* SCS=6: system clock System PLL */
}

%3CLINGO-SUB%20id%3D%22lingo-sub-1106268%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K%20clock%20mechanism%20%26amp%3B%20configuration%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1106268%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EFirst%20let%20us%20see%20the%20clock%20tree%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_1.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_1.png%22%20style%3D%22width%3A%20485px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62349i5A794066F25375B9%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_1.png%22%20alt%3D%22pastedImage_1.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3ECore%20clock%20up%20to%20112M%2C%20Bus%20clock%20up%20to%2056M%2C%20Flash%20clock%20up%20to%2028M.%3C%2FP%3E%3CP%3EClock%20can%20been%20from%3A%20System%20OSC%E3%80%81Slow%20IRC%20%E3%80%81Fast%20IRC%20and%20System%20PLL%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E1.%20OSC%3CBR%20%2F%3E%20SCG_SOSCCFG%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_3.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_3.png%22%20style%3D%22width%3A%20528px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62355iA7336A8A5E329D2D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_3.png%22%20alt%3D%22pastedImage_3.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_5.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_5.png%22%20style%3D%22width%3A%20506px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62356iCCB2F251F9715A04%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_5.png%22%20alt%3D%22pastedImage_5.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E2.%20PLL%20configuration%3CBR%20%2F%3Eformula%3A%20%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3ESPLL_CLK%20%3D%20(VCO_CLK)%2F2%3CBR%20%2F%3E%20VCO_CLK%20%3D%20SOSC_CLK%2F(PREDIV%20%2B%201)%20*(MULT%20%2B%2016)%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23ff0000%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_8.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_8.png%22%20style%3D%22width%3A%20527px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62357iAD0B540DA8DFD3DC%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_8.png%22%20alt%3D%22pastedImage_8.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23ff0000%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_10.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_10.png%22%20style%3D%22width%3A%20504px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62358iE9AD508B1758CCD3%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_10.png%22%20alt%3D%22pastedImage_10.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3E3.%20SCG_SPLLCSR%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_14.png%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_14.png%22%20style%3D%22width%3A%20515px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F62359i09F0A284D17818FE%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_14.png%22%20alt%3D%22pastedImage_14.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Evoid%20SystemClockInit(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20SCG-%26gt%3BSOSCCFG%20%3D%200x3C%3B%3CBR%20%2F%3E%20SCG-%26gt%3BSOSCCSR%20%7C%3D%201%26lt%3B%26lt%3B0%3B%20%2F*%20SOSCEN%3D1%20enable%20SOSC%20clock%20*%2F%3CBR%20%2F%3E%20%2F*wait%20clock%20active*%2F%3CBR%20%2F%3E%20while((SCG-%26gt%3BSOSCCSR%20%26amp%3B%20SCG_SOSCCSR_SOSCVLD_MASK)%20%3D%3D%200)%3B%3C%2FP%3E%3CP%3ESCG-%26gt%3BSPLLCSR%20%26amp%3B%3D%20~(0x1%26lt%3B%26lt%3B0)%20%3B%20%2F*%20SPLLEN%3D0%3A%20disable%20PLL*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BSPLLCFG%20%26amp%3B%3D%20~(0x7%26lt%3B%26lt%3B8)%3B%20%2F*%20PREDIV%3D0%3A%201%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BSPLLCFG%20%7C%3D%200xCU%26lt%3B%26lt%3B16%3B%20%2F*%20MULT%3D12%3A%2028%20%26nbsp%3B%20PLL%20VCO%20%3D%208%2F1*(12%2B16)%20%3D%20224M%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BSPLLCSR%20%7C%3D%200x1%26lt%3B%26lt%3B0%3B%20%2F*%20SPLLEN%3D1%3A%20enable%20PLL%20*%2F%3CBR%20%2F%3E%20%2F*%20wait%20PLL%20active*%2F%3CBR%20%2F%3E%20while((SCG-%26gt%3BSPLLCSR%20%26amp%3B%20SCG_SPLLCSR_SPLLVLD_MASK)%20%3D%3D%200)%3B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20SCG-%26gt%3BRCCR%20%7C%3D%20SCG_RCCR_DIVCORE(0)%3B%20%2F*%20DIVCORE%3D0%3A%201%2C%20CORE%2FSYS_CLK%26nbsp%3B%20112MHz%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BRCCR%20%7C%3D%20SCG_RCCR_DIVBUS(1)%3B%20%2F*%20DIVBUS%3D1%3A%202%2C%20BUS_CLK%26nbsp%3B%2056MHz%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BRCCR%20%7C%3D%20SCG_RCCR_DIVSLOW(3)%3B%20%2F*%20DIVSLOW%3D2%3A%204%20%26nbsp%3B%20FLASH_CLK%26nbsp%3B%20is%2028MHz%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BRCCR%20%26amp%3B%3D%200xFEFFFFFF%3B%20%2F*%20Initially%20set%20to%20SIRC%20so%20that%20LSB%20could%20be%20set%20as%20'0'%20*%2F%3CBR%20%2F%3E%20SCG-%26gt%3BRCCR%20%7C%3D%20SCG_RCCR_SCS(6)%3B%20%2F*%20SCS%3D6%3A%20system%20clock%20System%20PLL%20*%2F%20%3CBR%20%2F%3E%7D%3C%2FP%3E%3C%2FLINGO-BODY%3E
No ratings
Version history
Last update:
‎06-22-2018 11:33 AM
Updated by: