11.3.2.4.1 Automatic HFXO Start
The enabling of the HFXO and its selection as HFSRCCLK source can be performed automatically by hardware. Automatic HFXO ena-
ble and select can for example be used upon wake-up of the Radio Controller (RAC). Automatic control of the HFXO is controlled via
the AUTOSTARTRDYSELRAC, AUTOSTARTSELEM0EM1 and AUTOSTARTEM0EM1 bits in the CMU_HFXOCTRL register. It further
depends on the energy mode of the EFR32 and on the status of the RAC .
The HFXO autostart functionality is typically used when the RAC is used. The RAC module always requires the HFXO for its operation.
The hardware requirement from RAC for an HFXO based HFSRCCLK is indicated in the HFXOREQ bitfield of the CMU_STATUS regis-
ter. This requirement in itself does not lead to an automatic enable or select of the HFXO.
An automatic HFXO enable is performed only if any of the following conditions are met:
• EFR32 is in EM0/EM1 and AUTOSTARTEM0EM1 or AUTOSTARTSELEM0EM1 are set to 1.
• RAC is awake and AUTOSTARTRDYSELRAC is set to 1.
An automatic HFXO select is performed only if any of the following conditions is met:
• EFR32 is in EM0/EM1 and AUTOSTARTSELEM0EM1 is set to 1.
• RAC is awake, HFXO is ready, and AUTOSTARTRDYSELRAC is set to 1.
Whenever any of the conditions for automatic HFXO enable is met, software is not allowed to disable the HFXO. An attempt to do so
(e.g. by writing 1 to the HFXODIS bit) is ignored and causes the HFXODISERR bit in the CMU_IF register to be set to 1. Similarly,
whenever any of the conditions for automatic HFXO selection is met, software is not allowed to deselect the HFXO as clock source for
HFSRCCLK. An attempt to do so (e.g. by selecting another clock source via CMU_HFCLKSEL) is ignored and causes the HFXODI-
SERR bit in the CMU_IF register to be set to 1. Note that CMUERR is not implied by HFXODISERR. CMUERR will not get set to 1 for
the above scenarios in which HFXODISERR gets set.
Software can only disable or deselect the HFXO after removing all of the HFXO automatic enable or select reasons. Note that if the
autostart functionality is not used, software can always disable or deselect the HFXO even if hardware requires the HFXO as indicated
via HFXOREQ bitfield in CMU_STATUS. The HFXODISERR flag will not get set in that case. The HFXO is only disabled by hardware
upon EM2, EM3 or EM4 entry.
In case that AUTOSTARTSELEM0EM1 is set to 1 in EM0/EM1 (irrespective of the other autostart bits), the HFXO select will occur im-
mediately, even if HFXO is not ready yet. Upon wake-up into EM0/EM1 this can therefore lead to a relatively long startup time as the
system will not start operating from the HFRCO as it would otherwise do. In case of an automatic select triggered by the RAC (while
AUTOSTARTSELEM0EM1 is set to 0), such a select will only occur upon the HFXO becoming ready and software can select and use
another clock source in the mean time.
A typical use scenario of the AUTOSTARTRDYSELRAC bit is as follows. Set the AUTOSTARTRDYSELRAC bit in the
CMU_HFXOCTRL register to 1 and set up the RTCC to periodically generate a compare match. Setup a PRS channel which uses this
RTCC compare match as its source and allow the PRS channel to cause a wake-up into EM1. Setup the RAC to use the PRS channel
as its source for TXEN or RXEN. Now, when the EFR32 is in EM2 and the RTCC generates a compare match, a wake-up into EM1 will
occur and the HFXO will automatically start and become selected after which the RAC can perform its work and trigger a transition back
into EM2 when done. The system started, used, and stopped the HFXO without ever being in EM0.
Note that the user should take care that the settings in the MSC_READCTRL and CMU_CTRL registers, as described in
uration for Operating Frequencies
, are compatible with 40 MHz HFXO operation before enabling the HFXO automatic startup feature. A
basic automatic HFXO start scenario is shown in
Figure 11.8 CMU Automatic Startup and Selection of HFXO on page 296
Reference Manual
CMU - Clock Management Unit
silabs.com
| Building a more connected world.
Rev. 1.1 | 295