Ingo Electronics


    HOME                                                           Stellaris LM4F120 LaunchPad


Stellaris LauncPad. Mikrokontrolerio Taktinio dažnio nustatymas. Funkcija SysCtlClockSet

Stellaris ARM Cortex-M4F mikrokontrolerio taktinį dažnį nustato funkcija:

SysCtlClockSet( unsigned long Config );

Maksimalus dažnis kuriuo gali dirbti mikrokontroleris yra 80Mhz.

Pvz:
//taktinis dažnis 50Mhz
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |  SYSCTL_OSC_MAIN);

Kitas Pvz:
//taktinis dažnis 16Mhz
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN);

 

Stellaris ARM Cortex-M4F mikrokontroeriai turi vidinį PLL modulį.

PLL (angl. Phase-locked loop ) – tai modulis kuris generuoja 400Mhz.  Kai naudojame PLL (SYSCTL_USE_PLL) 400Mhz pirmiausia yra dalomas iš 2, gauname 200Mhz, toliau galutinis procesoriaus dažnis gaunamas 200Mhz padalinus iš funkcijoje SysCtlClockSet  nurodyto daliklio. Maksimalus  dažnis gaunamas kai dalinimas yra iš 2,5: 200/2,5 = 80Mhz, minimalus dažnis: 200/64 = 3.125Mhz

 Galima naudoti arba nenaudoti PLL modulį, funkcijoje SysCtlClockSet  nurodant:

//PLL įjungtas:
SYSCTL_USE_PLL

//PLL išjungtas:
SYSCTL_USE_OSC.

Kai yra naudojamas parametras SYSCTL_USE_PLL mikrokontrolerio taktinis dažnis gaunamas 200Mhz padalinus iš parametro  SYSCTL_SYSDIV_XX

Kai PLL nenaudojamas, mikrokontrolerio taktinis dažnis gaunamas kvarcinio rezonatoriaus dažnį padalinus iš nurodyto daliklio.

Gali būti naudojami sekantys dalikliai:

SYSCTL_SYSDIV_1       //nenaudojamas su PLL

SYSCTL_SYSDIV_2       //nenaudojamas su PLL

SYSCTL_SYSDIV_2_5

SYSCTL_SYSDIV_3

SYSCTL_SYSDIV_3_5

SYSCTL_SYSDIV_4

SYSCTL_SYSDIV_4_5

SYSCTL_SYSDIV_5

SYSCTL_SYSDIV_5_5

………ir t.t……………

………………………

SYSCTL_SYSDIV_64

 

Išorinio kvarcinio rezonatoriaus dažnis turi būti vienas iš konkrčiai nustatytų :

SYSCTL_XTAL_4MHZ               //negalimas jei naudojamas PLL

SYSCTL_XTAL_4_09MHZ          //negalimas jei naudojamas PLL

SYSCTL_XTAL_4_91MHZ          //negalimas jei naudojamas PLL

SYSCTL_XTAL_5MHZ

SYSCTL_XTAL_5_12MHZ

SYSCTL_XTAL_6MHZ

SYSCTL_XTAL_6_14MHZ

SYSCTL_XTAL_7_37MHZ

SYSCTL_XTAL_8MHZ

SYSCTL_XTAL_8_19MHZ

SYSCTL_XTAL_10MHZ

SYSCTL_XTAL_12MHZ

SYSCTL_XTAL_12_2MHZ

SYSCTL_XTAL_13_5MHZ

SYSCTL_XTAL_14_3MHZ

SYSCTL_XTAL_16MHZ

SYSCTL_XTAL_16_3MHZ

SYSCTL_XTAL_18MHZ,

SYSCTL_XTAL_20MHZ

SYSCTL_XTAL_24MHZ

SYSCTL_XTAL_25MHz.

 

Stellaris LunchPad yra naudojams 16Mhz kvarcinis rezonatorius, todėl visais atvejais rašome SYSCTL_XTAL_16MHZ

 

Mikrokontrolerio taktavimo šaltinis gali būti vienas iš žemiau nurodytų:

SYSCTL_OSC_MAIN      //išorinis kvarcinis rezonatorius

SYSCTL_OSC_INT        //16Mhz vidinis oscilatorius

SYSCTL_OSC_INT4      //16/4 vidinis (4Mhz)  oscilatorius

 

Reziumuojant funkcijoje  SysCtlClockSet  įvedami parametrai turi būti sekantys:

SysCtlClockSet( dažnio daliklis | PLL naudojimas | kavarcinio rezonatoriaus dažnis | taktavimo šaltinis );