state configuration depending on the crystal's CL, RESR and oscillation frequency. This configuration is programmed into the IBTRIM-
XOCORE, REGISH and CTUNE bitfields of the CMU_HFXOSTEADYSTATECTRL register. The minimum duration of the steady phase
is configured in the STEADYTIMEOUT bitfield of the CMU_HFXOTIMEOUTCTRL register.
All HFXO configuration needs to be performed prior to enabling the HFXO via HFXOEN in CMU_OSCENCMD unless noted otherwise.
The HFXOENS flag in CMU_STATUS indicates if the HFXO has been successfully enabled. Once the HFXO startup time (STARTUPTI-
MEOUT plus STEADYTIMEOUT) has exceeded and oscillations begin, the HFXO is ready for use as indicated by the HFXORDY flag
in CMU_STATUS. If PDA and SCO are enabled, the HFXOPEAKDETRDY and HFXOSHUNTOPTRDY flags in the CMU_STATUS reg-
ister indicate when these algorithms are ready and it is advised to also wait for these flags before using the HFXO.
The HFXO crystal bias current may be optimized and set to a value which decreases output phase noise without sacrificing PSR. This
is done by programming the recommended IBTRIMXOCORE value into the CMU_HFXOSTEADYSTATECTRL register. The built-in
Peak Detector Algorithm (PDA) performs further optimization to accommodate for process variations. Once PDA is ready as indicated
by the HFXOPEAKDETRDY flag, the found optimal bias current setting is available in the IBTRIMXOCORE bitfield of the CMU_HFXO-
TRIMSTATUS register. This IBTRIMXOCORE setting should be saved and can be applied directly during a future HFXO startup as a
low noise setting by programming it into the corresponding bitfield in CMU_HFXOSTEADYSTATECTRL while the HFXO is off.
If low noise is not required, the same PDA algorithm can be configured to optimize the HFXO for low current consumption by enabling
LOWPOWER in the CMU_HFXOCTRL register before starting up the HFXO. The found IBTRIMXOCORE setting can be saved as a
future low current setting.
Default PDA is started automatically once the HFXO has become ready. Repeated PDA can be triggered by writing HFXOPEAKDET-
START to 1 in the CMU_CMD register. PDA can also be triggered only by the command register by configuring PEAKDETSHUNTOPT-
MODE to CMD in the CMU_HFXOCTRL register before starting the HFXO. For PDA to work correctly, the REGISHUPPER bitfield of
CMU_HFXOSTEADYSTATECTRL should be programmed to the value of the steady state 3. The PEAKDETTIMEOUT bit-
field in the CMU_HFXOTIMEOUTCTRL register is used to time the PDA steps and needs to be configured according to the device data
sheet for the given crystal. The PEAKDETEN bitfield of the CMU_HFXOSTEADYSTATECTRL register is only used during manual (i.e.
fully software controlled) peak detection and is ignored during automatic or command based triggering of the PDA. Note that the man-
ual PDA mode is not recommended for general usage and therefore it is not further described. PDA should not be used when using an
external wave as clock source.
Current consumption can be (further) reduced by running Shunt Current Optimization (SCO) after PDA. Once SCO is ready as indica-
ted by the HFXOSHUNTOPTRDY flag, the found optimal regulator output current setting is available in the REGISH bitfield of the
CMU_HFXOTRIMSTATUS register. This REGISH setting should be saved and can be applied directly during a future HFXO startup as
a low current setting by programming it into the corresponding bitfield in CMU_HFXOSTEADYSTATECTRL while the HFXO is off. Nor-
mally SCO is run only for initial HFXO start up. The amplitude of the oscillator is not strongly dependent on temperature, but further
optimization may be done each time that the temperature changes significantly. In that case, run SCO again by writing HFXOSHUN-
TOPTSTART to 1 in the CMU_CMD register. SCO depends on the LOWPOWER setting in the CMU_HFXOCTRL and needs to be re-
run if that value has been changed. SCO should not be run when the HFXO is in use by the Radio Transceiver.
Default SCO is started automatically once the HFXO has become ready and PDA has finished. Repeated SCO can be triggered by
writing HFXOSHUNTOPTSTART to 1 in the CMU_CMD register. SCO can also be triggered only by the command register by configur-
ing PEAKDETSHUNTOPTMODE to CMD in the CMU_HFXOCTRL register before starting the HFXO. For SCO to work correctly, the
REGISHUPPER bitfield of CMU_HFXOSTEADYSTATECTRL should be programmed to the value of the steady state 3. The
SHUNTOPTTIMEOUT bitfield in the CMU_HFXOTIMEOUTCTRL register is used to time the SCO steps and needs to be configured
according to the device data sheet for the given crystal. The REGSELILOW bitfield of the CMU_HFXOSTEADYSTATECTRL register is
only used during manual (i.e. fully software controlled) shunt current optimization and is ignored during automatic or command based
triggering of the SCO. Note that the manual SCO mode is not recommended for general usage and therefore it is not further described.
Reference Manual
CMU - Clock Management Unit
silabs.com
| Building a more connected world.
Rev. 1.1 | 294