This application note describes how to tune the HSE for RF applications using STM32WB
and STM32WL Series microcontrollers (hereinafter referred to as STM32 wireless MCUs).
These products offer a cost-effective and efficient solution by using their internal load
capacitances to control the oscillator accuracy, hence saving the cost of external
capacitances and lowering the crystal constraints.
STM32 wireless MCUs use an external oscillator high-speed clock source as the base for
RF clock generation. HSE accuracy is essential for RF system performance and the
external oscillator is therefore fine-tuned to achieve the highest clock accuracy.
The first part of this application note introduces the crystal oscillator solutions. The second
part introduces and then compares three HSE frequency tuning methods, namely a manual
one, an automatic one and another one based on STM32CubeMonitor-RF (for the
STM32WB Series only). The application of these methods to STM32WB and STM32WL
Nucleo boards is described in the following sections and provided as firmware and script
examples in X-CUBE-CLKTRIM, an STM32Cube Expansion Package.
A specific section of this document is dedicated to a description of how to configure HSE to
make its startup phase reliable and optimized for STM32WB Series microcontrollers.
This application note must be read in conjunction with the reference manuals and
datasheets available at www.st.com.
RF systems require high frequency accuracy to achieve the best performance. Any clock
deviation can cause system malfunctions and/or degrade performance.
Tab l e 1 shows the accuracy requirements for two RF pr
Series microcontrollers. For other protocols and
standards refer to the corresponding
otocols supported by STM32WB
specifications.
Bluetooth
IEEE 802.15.4 / Thread± 40 ppm
®
In STM32 wireless MCUs, based on Arm
high frequency VCO, which takes
Table 1. Carrier accuracy requirement for RF protocols
RF standardCarrier accuracy
Low Energy± 50 ppm
®(a)
Cortex® cores, the RF clock is provided by a
as reference a signal created by an embedded oscillator
using an external crystal.
This crystal is the HSE (high-speed external) clock
source of the RF synthesizer and of the
microcontroller. Its nominal frequency can vary, depending on factors such as process
variations, used crystal and PCB design. Since the inaccuracy of the HSE is directly
transferred to the RF clock, it must be fine-tuned by adjusting load capacitance at crystal
terminals.
STM32 wireless MCUs offer an efficient architectu
re with internal load capacitances that
allows the users to fine tune the crystal frequency without extra cost for additional external
capacitances.
The reliability of the startup phase of an
HSE oscillator depends on its actual
implementation (e.g. upon associated crystal, external components, environment). For the
STM32WB Series a method is proposed to adjust its internal operation to optimize and
consolidate this phase. A longer startup improves reliability but increases power
consumption.
Note:AN2867 (Oscillator design guide for
ST microcontrollers), which generally describes HSE
for STM32 product, does not apply to STM32 wireless MCUs due to the RF constraints. This
application note is the correct reference for these products.
a. Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
6/47AN5042 Rev 10
AN5042HSE oscillator
MSv47132V1
C
L2
C
L1
R
f
Inv
XTAL
C
S
C
L
C
L1CL2
C
L1CL2
+
-----------------------------Cs+=
1.1 Crystal oscillator
Figure 1 shows the crystal oscillator system principle. An oscillator consists of an inverting
amplifier, a feedback resistor (Rf), a crystal (XTAL) and two load capacitors (CL1 and CL2).
C
is the stray capacitance, resulting from the sum of the MCU pin capacitances (OSC_IN
s
and OSC_OUT) and the PCB capacitance: it is a parasitic capacitance.
Figure 1. Crystal oscillator principle
CL load capacitance
The load capacitance is the terminal capacitance of the circuit connected to the crystal
oscillator. This value is determined by the external capacitors C
capacitance of the printed circuit board and connections (C
the crystal manufacturer. For the frequency to be accurate, the oscillator circuit has to show
the same load capacitance to the crystal as the one the crystal was adjusted for.
Frequency stability mainly requires that the load capacitance be constant. The external
trimming capacitors C
and CL2 are used to tune the desired value of CL to reach the value
L1
specified by the crystal manufacturer.
The following equation gives the expression of C
L
Equation 1: Load capacitance
and CL2 and the stray
L1
). The CL value is specified by
s
AN5042 Rev 107/47
46
HSE oscillatorAN5042
MS53500V1
XTAL
OSC_IN
OSC_OUT
Capacitance
Bank IN
Capacitance
Bank OUT
Amplifier
and
Reshaping
Crystal oscillator
STM32WB/WL
HSE_CLK
1.2 STM32 wireless MCUs architecture
These MCUs embed an efficient and cost-effective crystal oscillator system with internal
capacitances for trimming. The advantages of the internal mechanism for load capacitance
tuning are twofold:
it reduces the accuracy constraints on the external crystal
it reduces the global BOM (and the footprint) of the PCB.
Figure 2 shows the crystal oscillator system embedded in the STM32 wireless MCUs. The
crystal is the only external component, no extra load capacitances are needed.
Figure 2. Crystal oscillator system overview
The crystal oscillator system consists of two pads (OSC_IN and OSC_OUT) with their
respective capacitance banks, and the amplifier stage.
For STM32WB Series, the capacitance value is the same for both the IN and the OUT
banks. This value, alongside with the oscillator gain and sense (the parameters that make
possible the optimization of the start-up phase), is driven by a register and controls the
system behavior. These parameters are explained in
For STM32WL Series, the capacitance values for the IN and the OUT banks are
independent. These two values are driven by two sub-GHz radio registers and control the
system behavior. These parameters are explained in
8/47AN5042 Rev 10
Section 1.3.
Section 1.4.
AN5042HSE oscillator
1.3 HSE configuration parameters - STM32WB Series
Three parameters can be set to control the oscillator module. They are accessible
in the RCC_HSECR register described below.
RCC_HSECR
Address0x09C
Reset0x0000 0030
AccessThis register is protected to avoid on-the-fly modification.
A key (0xCAFECAFE) must be written at the register address to unlock it
before any single write access, it is then locked again.
The HSE clock must be switched off during register access procedure to avoid
unpredictable behavior. Note that HSE must not be used as CPU clock source
during this step.
In this document the default MSI clock is used as system clock source after
startup from Reset.
This is the parameter responsible for the clock accuracy. It selects the capacitance value
added on both input and output pads. The adjustable range is set to have a global load
capacitance comprised between 12 and 16 pf. The minimum (0x00) and maximum (0x3F)
values correspond, respectively, to the smallest and to the largest load capacitance.
Default value is 0x00 (minimum load capacitance).
Current control: HSEGMC[2:0]
This parameter (referred to as Gm or Gm_crit_max in the documentation of other STM32
products for which it has a fixed value) is the maximum critical crystal transconductance of
the oscillator. It controls the startup performance of the system. A low value decreases the
power consumption, while a high value improves the startup time.
The minimum value (0b000) corresponds to Gm = 0.18 mA/V, the maximum value (0b111)
to Gm = 2.84 mA/V. Default value is 0x3 (Gm = 1.13 mA/V).
HSES sense amplifier threshold
This parameter controls an internal comparison threshold for the oscillator startup. When
this bit is set (1), the startup time is reduced (from around 15 µs) but the current
consumption is higher.
Default value is 0x0 (1/2 ratio).
AN5042 Rev 109/47
46
HSE oscillatorAN5042
1.4 HSE configuration parameters - STM32WL Series
For the STM32WL Series two parameters can be set to control the oscillator module. They
are accessible in the SUBGHZ_HSEINTRIMR and the SUBGHZ_HSEOUTTRIMR sub-GHz
radio registers, which contain the capacitance value of the IN and OUT banks, respectively.
The associated value is represented by their six lower bits (the remaining bits of these
registers must be kept at their reset values).
For both registers:
0x00 corresponds to the minimum capacitance (~11.3 pF)
0x2F corresponds to the maximum capacitance (~33.4 pF)
the values must not exceed 0x2F and the trimming step is ~0.47 pF
the reset value is 0x12, which corresponds to ~20.3 pF.
As mentioned earlier, SUBGHZ_HSEINTRIMR and SUBGHZ_HSEOUTTRIMR are part of
the sub-GHz radio and not of the system CPU. To modify their values the user code needs
to communicate with the sub-GHz radio via its SPI interface. The addresses of these
registers, considering this SPI interface, are 0x911 for SUBGHZ_HSEINTRIMR and 0x912
for SUBGHZ_HSEOUTTRIMR.
1.5 Board implementation
Oscillator pads are available on different pins (named OSC_IN and OSC_OUT), depending
upon the package.
Tab l e 2 shows the pin numbers for four different packages used in
Nucleo and USB dongle boards for the STM32WB Series.
Table 2. Oscillator pin numbers for the STM32WB Series
PackageOSC_INOSC_OUT
UFQFPN482524
VFQFPN683534
WLCSP100J1J2
BGA129M13N13
The crystal is plugged directly onto the pads, with no extra capacitance, and as close as
possible to the device to minimize parasitic capacitance.
Figure 3 shows a typical UFQFPN48 footprint for the STM32WB Series.
The PCB layout for the STM32WB and STM32WL Series reference designs are detailed,
respectively, in AN5165 “Development of RF hardware using STM32WB microcontrollers”
and AN5407 “Optimized RF board layout for STM32WL Series”, both available on
www.st.com.
1.6 Crystal references
Tab l e 3 shows the specification of the crystals used to validate the reference designs.
SeriesNDK crystalParameterValue
STM32WB
STM32WL
NX2016SA 32 MHz
EXS00A-CS06654
NX2016SA 32 MHz
EXS00A-CS06465
Table 3. Crystal specifications
Load capacitance8 pF
Frequency tolerance(25 ± 3 °C) ± 10 × 10
Frequency vs. temperature
(with reference to +25 °C)
Load capacitance10 pF
Frequency tolerance± 10 ppm at 25 °C
Frequency vs. temperature
−6
± 25 × 10
−6
± 10 ppm (-25 to +70 °C)
± 30 ppm (-40 to +85 °C)
AN5042 Rev 1011/47
46
HSE oscillatorAN5042
It is possible to use other crystals, as long as they respect the carrier accuracy requirements
(see
Tabl e 1). More precisely, the sum of the maximum values for the following parameter
specifications of the chosen crystal must be below the carrier accuracy requirements:
frequency tolerance
frequency versus temperature characteristics (for the temperature in which the crystal
must be used)
aging (for the duration during which the crystal must be used).
Note:Such data can be named differently or absent in the crystal documentation.
The previous verification is reliable if the PCB based on the chosen crystal is designed with
the requirements mentioned in
methods described in the next sections of this document.
Note that the accuracy of the capacitance bank used for the HSE trimming can vary from a
product to another. If the carrier accuracy verification is needed for the whole production
chain refer to
Section 1.7.
Section 1.5 and fine-tuned with one of the HSE trimming
1.7 Tuning in production
With mass production in perspective, it is important to know if the trimming parameters
defined for a test PCB will have the same efficiency when applied to all the PCBs to be
produced.
To have a faster and more efficient production chain, it is not mandatory to operate the
trimming process on each PCB.
Data gathered during the production of the STM32WB Nucleo boards have shown some
variations of the HSE frequency for a fixed HSETUNE value (HSETUNE accuracy).
Besides, the typical HSETUNE granularity is 1 ppm (see XOTUNE granularity in STM32WB
datasheets). To compensate for these variations, the following trimming method is
suggested for production:
1.tune some PCBs (not more than a few dozens) to get a significant span of HSETUNE
values
2. calculate the median of the found values, and use the result to trim all other PCBs
3. the interval between the median and the maximum/minimum of the found values
corresponds to the HSETUNE accuracy for the tuned design.
Moreover, after having followed this process, a potential frequency deviation due to the
HSETUNE accuracy (point
accuracy verification calculation presented in Section 1.6.
A similar method can be used for STM32WL Series. The number of test boards must be
larger because of the two trimming parameters for these products.
3) has to be taken into account and added to the carrier
12/47AN5042 Rev 10
AN5042Trimming methods comparison
2 Trimming methods comparison
The three trimming methods described in this document are detailed in Tabl e 4, and
compared in Tabl e 5.
MethodDescription
Manual
Automatic
STM32CubeMonitor-RF
(1)
Table 4. Trimming methods
A precision frequency meter is used to measure the HSE frequency
output on one of the STM32 pins. Then, the user tunes the HSE
frequency with the buttons of a Nucleo board. A button is dedicated to
the saving of the tuning parameters in the STM32 non-volatile memory.
One STM32 timer is clocked with a precision external clock source
provided by the user via one of the STM32 pins. This reference clock
allows the user to measure the internal STM32 system HSE frequency.
Then, the STM32 can compare the frequency measured with the one
expected, to test and determine the best tuning parameters. Finally, the
STM32 saves these parameters in its non-volatile memory.
A precision frequency meter is used to measure the HSE frequency
output on one of the STM32 pins. Then, the user tunes the HSE
frequency with a script to run in STM32CubeMonitor-RF. The user has
to change the tuning parameter values in the script to test them. When
the correct values are found, another script saves them in the STM32
non-volatile memory.
1. Compatible with STM32WB Series only.
Table 5. Comparison of trimming methods
MethodAdvantagesDisadvantages
Manual
Runs in SRAM (user program in
Flash memory is not affected).
Needs the use of buttons and a
frequency meter for each product.
Runs in SRAM (user program in
Automatic
Flash memory is not affected).
The user needs to set up a
reference clock only once to trim as
Method based on a more complex
principle.
many devices as wanted.
BLE stack and transparent mode
FW must be flashed in the device.
Requires several actions from the
user for each product (modifying
and running the script, use of a
STM32CubeMonitor-RF
Convenient for users familiar with
(1)
STM32CubeMonitor-RF, willing to
achieve the maximum functionality.
frequency meter).
1. Compatible with STM32WB Series only.
Note:The proposed methods require the use of a pin (MCO) to output the HSE signal for the
frequency measurement. If no MCO pin is available for this purpose, AN5378 (available on
www.st.com) describes another technique: instead of measuring the frequency on the MCO
pin, it proposes to do the measurement on a tone frequency emitted by the STM32WB
radio. However, while this tone is emitted, HSE cannot be trimmed because it is used by the
AN5042 Rev 1013/47
46
Trimming methods comparisonAN5042
radio (actually this is more a verification than a real trimming method like those exposed in
this document).
14/47AN5042 Rev 10
AN5042Manual frequency trimming procedure example for the STM32WB Series
3 Manual frequency trimming procedure example for
the STM32WB Series
The firmware and scripts associated to this document are available as an STM32Cube
Expansion Package
(X-CUBE-CLKTRIM_vx.y\Projects\P-NUCLEO-WB55.Nucleo\RCC_HSE_Calib).
3.1 Procedure description
The procedure consists in measuring the HSE clock generated inside the device from the
external crystal. This clock is output on pin PA8 and is measured by a precision frequency
meter.
Note:An external reference is mandatory since no such accurate one is integrated in the device.
A step-by-step tuning of the load capacitance is performed to reach the best accuracy of the
HSE clock. The load capacitance value is then stored inside a non-volatile location of the
device, either a dedicated area of the user Flash memory or in the One-Time-Programming
area.
Flash memory or OTP programming is done with a double-word granularity (64 bits). To
save OTP bytes (1
be appended to a 64-bit wide structure with other personalization data (such as the
Bluetooth
®
device address, the MAC short address, the product specific code, the key).
K in the STM32WB Series), the load capacitance value on six bits can
This procedure can be done several times, only the latest setup is active.
Once the procedure is completed, the active load capacitance value can be retrieved at
startup (in the clock configuration function) and the HSE configuration register set
accordingly.
3.2 Implementation
The procedure is executed in SRAM, so it can be run on an already programmed device
without modifying the Flash memory content.
AN5042 Rev 1015/47
46
Loading...
+ 32 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.