Thought I try some DUE overclocking just for the fun of it.
I have a need to try the limits on everything that I work with
I love working with the DUE.
It’s a great platform for fast mockups with the ARM Cortex MCU.
Wondered why it’s limited to 84Mhz I tried some different PLL MUL/DIV settings.
It seem that 120MHz is max what the SAM3X8E Cortex M3 chip will run.
This is not because of the flash read speed but because of the internal SRAM speed and that has no waitstate setting.
So at 114MHz it runs stable with the original 4FWS setting (22MHz AHB bus-speed).
That is 136% overclocking without any problems.
#define SYS_BOARD_PLLAR (CKGR_PLLAR_ONE | CKGR_PLLAR_MULA(18UL) | CKGR_PLLAR_PLLACOUNT(0x3fUL) | CKGR_PLLAR_DIVA(1UL))
#define SYS_BOARD_MCKR ( PMC_MCKR_PRES_CLK_2 | PMC_MCKR_CSS_PLLA_CLK)
/* Set FWS according to SYS_BOARD_MCKR configuration */
EFC0->EEFC_FMR = EEFC_FMR_FWS(4); //4 waitstate flash access
EFC1->EEFC_FMR = EEFC_FMR_FWS(4);
/* Initialize PLLA to 114MHz */
PMC->CKGR_PLLAR = SYS_BOARD_PLLAR;
while (!(PMC->PMC_SR & PMC_SR_LOCKA)) {}
PMC->PMC_MCKR = SYS_BOARD_MCKR;
while (!(PMC->PMC_SR & PMC_SR_MCKRDY)) {}
Putting the code above as the first lines in your project setup section will overclock it.
Don’t worry, It wont break anything but could affect stability depending on what perferials you use