11.3.1.1 HFCLK - High Frequency Clock
HFSRCCLK is the selected High Frequency Source Clock. HFCLK is an optionally prescaled version of HFSRCCLK. The HFSRCCLK,
and therefore HFCLK, can be driven by a high-frequency oscillator, such as HFRCO or HFXO, or one of the low-frequency oscillators
(LFRCO or LFXO). Additionally, HFSRCCLK can also be driven from a pin (CLKIN0) described in
. By
default the HFRCO is selected. In most applications, one of the high frequency oscillators will be the preferred choice. To change the
selected clock source, write to the HF bitfield in CMU_HFCLKSEL. The high frequency clock source can also be changed automatically
by hardware as explained in
11.3.2.4.1 Automatic HFXO Start
. The currently selected source for HFSRCCLK and HFCLK can be read
from CMU_HFCLKSTATUS. The HFSRCCLK is running in EM0 Active and EM1 Sleep and is automatically stopped in EM2 Deep
Sleep. During Voltage Scaling (see
), if a fixed frequency oscillator source (i.e. HFXO or CLKIN0) exceeds the
maximum system frequency supported, it must be disabled or not selected. Likewise, an adjustable oscillator source (i.e. HFRCO or
AUXHFRCO) must be configured to not exceed the maximum system frequency supported before voltage scaling is applied.
Note:
If a low frequency clock (i.e. LFRCO or LFXO) is selected as source clock for HFSRCCLK via the HF bitfield in CMU_HFCLKSEL, then
no register reads should be performed from Low Energy Peripherals for registers which can change value every clock cycle (e.g. a
counter register). In addition to the peripherals on LFACLK, LFBCLK and LFECLK, this restriction applies in general to any low frequen-
cy peripheral, which is not directly or indirectly clocked from HFSRCCLK (e.g. WDOGn).
HFCLK can optionally be prescaled by setting PRESC in CMU_HFPRESC to a non-zero value. This prescales HFCLK to all high fre-
quency components and is typically used to save energy in applications where the system is not required to run at the highest frequen-
cy. The prescaler setting can be changed dynamically and the new setting takes effect immediately. HFCLK is used by the CMU and
drives the prescalers that generate HFCORECLK, HFRADIOCLK and HFPERCLK allowing for flexible clock prescaling. The
HFBUSCLK, used in for example the bus and memory system, is equal to HFCLK.
The HFXO clock is fed directly to the Radio Transceiver. The clock received by the Radio Transceiver is therefore not affected by the
selected clock source for HFSRCCLK nor by any clock prescaler.
11.3.1.2 HFCORECLK - High Frequency Core Clock
HFCORECLK is a prescaled version of HFCLK. This clock drives the Core Modules, which consists of the CPU and modules that are
tightly coupled to the CPU, e.g. the cache. The prescale factor for prescaling HFCLK into HFCORECLK is set using the CMU_HFCOR-
EPRESC register. The setting can be changed dynamically and the new setting takes effect immediately.
Note:
If HFPERCLK or HFRADIOCLK runs faster than HFCORECLK, the number of clock cycles for each bus-access to (radio) peripheral
modules will increase with the ratio between the clocks. Refer to
11.3.1.3 HFBUSCLK - High Frequency Bus Clock
HFBUSCLK is equal to HFCLK. This clock drives the Bus and Memory System. HFBUSCLK is also used to drive the bus interface to
the Low Energy Peripherals as described further in
11.3.1.7 LFACLK - Low Frequency a Clock
11.3.1.8 LFBCLK - Low Frequency B
11.3.1.9 LFECLK - Low Frequency E Clock
. Some of the modules that are driven by this clock can be clock gated completely
when not in use. This is done by clearing the clock enable bit for the specific module in CMU_HFBUSCLKEN0. The frequency of
HFBUSCLK is equal to the frequency of HFCLK and can therefore only be prescaled by using the PRESC bitfield in CMU_HFPRESC.
11.3.1.4 HFPERCLK - High Frequency Peripheral Clock
Like HFCORECLK, HFPERCLK is a prescaled version of HFCLK. This clock drives the High-Frequency Peripherals. All the peripherals
that are driven by this clock can be clock gated individually when not in use. This is done by clearing the clock enable bit for the specific
peripheral in CMU_HFPERCLKEN0. All high frequency peripheral clocks can be universally and simultaneously gated by clearing the
HFPERCLKEN bit in the CMU_CTRL register. The prescale factor for prescaling HFCLK into HFPERCLK is set using the
CMU_HFPERPRESC register. The setting can be changed dynamically and the new setting takes effect immediately.
Note:
If HFPERCLK runs faster than HFCORECLK, the number of clock cycles for each bus-access to peripheral modules will increase with
the ratio between the clocks. E.g. if a bus-access normally takes three cycles, it will take 9 cycles of HFCORECLK if HFPERCLK runs
three times as fast as HFCORECLK.
Reference Manual
CMU - Clock Management Unit
silabs.com
| Building a more connected world.
Rev. 1.1 | 282