Hallo zusammen,
ich versuche gerade mit der Programmierung eines ATSAMD21J15B
anzufangen, scheitere aber schon an der Clock. Ich möchte die vollen
48MHz ausnutzen, bekomme aber nur 24MHz und verstehe nicht warum.
Mein ganzer Code ist das hier:
1 | NVMCTRL_REGS->NVMCTRL_CTRLB = NVMCTRL_CTRLB_RWS(2); //READ Wait States nötig für 48MHz
|
2 | SYSCTRL_REGS->SYSCTRL_DFLLCTRL = SYSCTRL_DFLLCTRL_ENABLE_Msk | SYSCTRL_DFLLCTRL_ONDEMAND_Msk; //DFLL anschalten
|
3 | GCLK_REGS->GCLK_GENCTRL = GCLK_GENCTRL_GENEN(1) | GCLK_GENCTRL_SRC(GCLK_GENCTRL_SRC_DFLL48M_Val) | GCLK_GENCTRL_OE(1) | GCLK_GENCTRL_ID(0); //GLCLK0 mit DFLL48 verbinden
|
4 | while(GCLK_REGS->GCLK_STATUS & GCLK_STATUS_SYNCBUSY_Msk);
|
5 | attachPerToPin(PORTA, 27, PER_H); //zum messen
|
6 | while(1);
|
Habe ich was im Datenblatt überlesen oder falsch verstanden?
Vielen Dank,
lucah
EDIT:
Der Chip läuft mit 3.3V