15.6.2.6 Peripheral Clock Masking

The user can disable or enable the AHB or APB clock for a peripheral by writing the corresponding bit in the Clock Mask registers (APBxMASK) to '0' or '1'. The default state of the peripheral clocks is given in the table below:

Table 15-1. Peripheral Clock Default State
CPU Clock Domain
Peripheral ClockDefault State
CLK_AC_APBDisabled
CLK_ADC0_APBDisabled
CLK_ADC1_APBDisabled
CLK_AES_APBDisabled
CLK_BRIDGE_A_AHBEnabled
CLK_BRIDGE_B_AHBEnabled
CLK_BRIDGE_C_AHBEnabled
CLK_BRIDGE_D_AHBEnabled
CLK_CAN0_AHBEnabled
CLK_CAN1_AHBEnabled
CLK_CMCC_AHBEnabled
CLK_DMAC_AHBEnabled
CLK_DSU_AHBEnabled
CLK_EIC_APBEnabled
CLK_EVSYS_APBDisabled
CLK_FREQM_APBDisabled
CLK_GCLK_APBEnabled
CLK_GMAC_AHBEnabled
CLK_GMAC_APBDisabled
CLK_ICM_AHBEnabled
CLK_I2S_AHBDisabled
CLK_MCLK_APBEnabled
CLK_NVMCTRL_AHBEnabled
CLK_NVMCTRL_APBEnabled
CLK_NVMCTRL_CACHEEnabled
CLK_NVMCTRL_SMEEPROMEnabled
CLK_OSCCTRL_APBEnabled
CLK_PAC_AHBEnabled
CLK_PAC_APBEnabled
CLK_PDEC_APBDisabled
CLK_PORT_APBEnabled
CLK_PUKCC_AHBEnabled
CLK_QSPI_AHBEnabled
CLK_QSPI2X_AHBEnabled
CLK_SDHC0_AHBEnabled
CLK_SDHC1_AHBEnabled
CLK_SERCOM0_APBDisabled
CLK_SERCOM1_APBDisabled
CLK_SERCOM2_APBDisabled
CLK_SERCOM3_APBDisabled
CLK_SERCOM4_APBDisabled
CLK_SERCOM5_APBDisabled
CLK_SERCOM6_APBDisabled
CLK_SERCOM7_APBDisabled
CLK_TC0_APBDisabled
CLK_TC1_APBDisabled
CLK_TC2_APBDisabled
CLK_TC3_APBDisabled
CLK_TC4_APBDisabled
CLK_TC5_APBDisabled
CLK_TC6_APBDisabled
CLK_TC7_APBDisabled
CLK_TCC0_APBDisabled
CLK_TCC1_APBDisabled
CLK_TCC2_APBDisabled
CLK_TCC3_APBDisabled
CLK_TCC4_APBDisabled
CLK_USB_AHBEnabled
CLK_USB_APBDisabled
CLK_WDT_APBEnabled
CLK_DAC_APBDisabled
CLK_DSU_APBEnabled
CLK_CCL_APBDisabled
CLK_QSPI_APBEnabled
CLK_ICM_APBDisabled
CLK_TRNG_APBDisabled
Backup Clock Domain
Peripheral ClockDefault State
CLK_OSC32KCTRL_APBEnabled
CLK_PM_APBEnabled
CLK_SUPC_APBEnabled
CLK_RSTC_APBEnabled
CLK_RTC_APBEnabled

When the APB clock is not provided to a module, its registers cannot be read or written. The module can be re-enabled later by writing the corresponding mask bit to '1'.

A module may be connected to several clock domains (for example, AHB and APB), in which case it will have several mask bits.

The clocks should only be switched off if it is certain that the module will not be used: Switching off the clock for the NVM Controller (NVMCTRL) will cause a problem if the CPU needs to read from the Flash memory. Switching off the clock to the MCLK module (which contains the mask registers) or the corresponding APBx bridge, will make it impossible to write the mask registers again. In this case, they can only be re-enabled by a system reset.