Oscillator drift guidelines - sigfox-tech-radio/sigfox-ep-lib GitHub Wiki
The Sigfox technology is based on a software defined network providing a cognitive behavior. This means the network does not impose any form of synchronization or heavy requirement to the terminals, but discovers their appearance in the operational uplink band and adapts as much as possible to their imperfections, at least up to a certain level that are the published limits.
On the device side, one of the main source of imperfection is the crystal oscillator used by the radio. This a very sensitive element in the hardware design.
The static drift of the oscillator, which is the absolute frequency inaccuracy (offset), is not of a high concern as long as the signal is within the uplink band. A calibration can be performed in production, or some margins, called guard bands, can be applied to guarantee that the uplink frequency is within the monitored spectrum of the base stations.
However, the dynamic drift, defined as the parasitic frequency variation of the oscillator during the uplink transmission, is a critical parameter which affects the reception performance. This parameter is not given in the crystal datasheet as it strongly depends on the hardware implementation. Since the signal is ultra narrow band (UNB), the base station applies narrow band filters on the incoming signal in order to reach the best performance. The signal has to remain in the channel filter during the whole transmission, that is why the dynamic drift value needs to be limited and compliant with the specification, in order to be the correctly demodulated by the network.
The dynamic drift criteria are given in the section 2.2.3 of the Sigfox device specification.
The drift is expressed in Hz/s. As an example, 50 Hz/s means that the frequency of the frame must not vary by more than 50 Hz in one second, or 25 Hz in an half of second, etc. The drift should be especially reduced when using the 100 bps bit rate, as the frame lasts longer.
100 bps | 600 bps | |
---|---|---|
Peak dynamic drift | 30 Hz/s | 100 Hz/s |
Mean dynamic drift | 20 Hz/s | 50 Hz/s |
The most common cause of dynamic drift is the short-term temperature variation, as the crystal stability is very sensitive to this parameter.
When the radio transmission starts, multiple circuits are turned on: either internal for a chip or external when additional active circuits are used in the front-end. The sudden increase of current consumption leads to a PCB heating effect, which can disturb the oscillator.
Warning
When measuring the dynamic drift, the crystal must be protected from any air flow which can also create a temperature variation (wind, breath or equipment fan).
The device vibration can also disturb the radio oscillator stability. Some test should be performed depending on the use case, to check if there is any consequence on the dynamic drift.
- Case of crystal
When a passive crystal oscillator is attached to a transceiver, it is internally linked to an active excitation circuit. The chipset injects a certain power to the crystal to start and maintain the oscillation. An excessive drive level can disturb the oscillator stability. Moreover, a bad power supply decoupling of the radio transceiver can have an impact on the oscillator circuit and the overall frequency stability.
- Case of TCXO
Even it is internally regulated, an active oscillator is very sensitive to its power supply, especially the short term variations which are too quick to be compensated by the internal regulation loop. Indeed, some parasitic ripple can appear on the power supply during the radio transmission, in particular when an amplitude modulation is used: this is the case in the Sigfox DBPSK which has an amplitude shaping on a '0' bit transmission.
Tip
If you have any issue with your radio design, the first advice is to get in touch directly with the chipset manufacturer and/or the crystal manufacturer in order to get the best technical support. Obviously they know their components better than anyone and they generally have reference implementations to compare with.
Special attention should be taken regarding the environmental conditions of the crystal during the frame transmission, depending on the targeted use case.
- Since any air flow could affect the crystal oscillator stability, keep in mind to close the direct environment of the crystal (shielding, plastic cavity, or device enclosure that protect from external air stream) particularly if the device will be exposed to air streams.
- As well as for vibrations conditions, if the device will be used in mobility or within specific condition.
As long as a sufficient guard band is applied to the frequency range, a Sigfox device can operate with any crystal in term of frequency tolerance. However, using a 10ppm crystal could be simpler to manage the static drift because it will be less sensitive to environmental variations.
Tip
Depending on your oscillator accuracy, you can adjust the guard band used by the frequency generator of the library, by modifying the SIGFOX_RCx_EPSILON_EP_HZ
macro in the src/sigfox_rc.c
file, or by creating a custom RC structure with the desired value in the epsilon_hz
field.
First select the right load capacitors by taking into account the parasitic capacitance of the PCB (Cstray, which generally represents some pF).
C1 = C2 = 2 x (CL - Cstray)
At least on the prototyping phase, it could be useful to add also a series resistor R1 between the chipset oscillator output and the crystal. Some tens or hundreds of Ohms can help to reduce the injected power and thus the heat transfer to the crystal. A 0R can be mounted if not necessary.
The radio power supply must be stable enough with good decoupling capacitors. It is generally advised to have 2 capacitors per power supply pin or feeding point: a small capacitor to isolate the RF signals, such as a 100pF for the 800-900MHz band, and a larger one (hundreds of nF or few µF) to reduce the ripple caused by the amplitude modulation.
Tip
Refer to your specific chipset datasheet for better implementation tips.
As a general advice, caution must me considered on the radio components placement and routing. A transceiver is generally controlled by a digital interface (such as a SPI for example) with high frequency square signals. The RF part and especially the oscillator must be well isolated from the digital part to suppress any crosstalk. On a multi-layer PCB, the RF and oscillator tracks should not cross any other signals if possible.
Regarding the crystal placement itself, there is no single rule but two approaches can be considered.
- Strong ground plane
In some cases, the dynamic drift is reduced by placing the crystal as close as possible to the radio chipset, and by attaching the ground pins directly to the main ground plane of the PCB. This can reduce the temperature variation because a copper plane heats slower than a single track.
The PCB thickness can also affect the dynamic drift: for instance changing from 0.4 mm to 0.6 mm can improve the dynamic drift, because there is more copper and thus a higher thermal inertia.
- Thermal isolation
In other cases, the dynamic drift can be reduced by adding a thermal isolation between the crystal and the radio chipset. Unlike the previous method, this is achieved by placing the crystal a bit further away and by isolating the crystal from the top ground plane. The electrical connection to the ground is performed with vias to another layer ground plane. This way, the crystal is less affected by the temperature variation caused by the radio transmission, as it is “less” directly connected to the heating planes and tracks.
In most of devices, the radio can be configured by software, either by an external MCU or by an internal core in case of a SoC.
The drive level can sometimes be tuned in the chipset registers. A too large value can increase the dynamic drift and also damage the quartz quicker. The effects of overdriving can be significant, causing the crystal to age in a month what it would have aged in a year at its rated drive power. On the other hand, a too low value could stop the oscillation. Refer to the crystal datasheet to find the accurate value, and perform the test on several crystal batches.
Adding a delay between the oscillator startup and the beginning of the frame transmission can help to reduce the dynamic drift, since the transient effects are especially hard during the warm-up phase. The delay can vary from few to hundreds of milliseconds depending on the hardware implementation.
When using a multi-frame message (N > 1), the oscillator can be let running between the frames, instead of turning it off and on consecutively. This can also help to get a better frequency stability during the radio transmission.