A GNSS-disciplined timebase for the NXP MCXN947 using only a standard crystal oscillator.
No VCXO. No TCXO. No OCXO.
By disciplining the MCU's IEEE-1588 timer against the 1PPS signal from a u-blox NEO-M8N receiver, this project achieves timing performance typically associated with much more expensive hardware.
Typical Measured Results:
| Metric | Measured Value |
|---|---|
| Phase Offset | typ. ±25 ns, max. ±35 ns |
| RMS Jitter | ~10 ns |
| Frequency Stability (ADEV @ 104 s) | 1.8 × 10-12 |
| Max Time Interval Error (MTIE 24h) | <= 66 ns |
| Time Stability (TDEV Minimum) | 68 to 138 ps |
Hardware cost is less than $100.
Can a low-cost MCU with a standard crystal oscillator achieve sub-100 ns timing performance when disciplined by GNSS?
This project explores that question using the NXP MCXN947 and its IEEE-1588 timer hardware.
Unlike traditional GPSDO designs, the local oscillator is not frequency-controlled. Instead, the GNSS reference is used to continuously discipline the hardware timer itself through software.
The result is a low-cost GNSS-disciplined timebase focused on timing accuracy rather than ultra-low phase-noise frequency generation.
Measurement plots, hardware mods, and build instructions are on the project website:
https://emb4fun.de/projects/gnssdo/
This project is licensed under the BSD 3-Clause License. See the LICENSE file for full text and conditions.
This project uses software components from the MCUXpresso SDK for the FRDM-MCXN947 board by NXP,
including the els_pkc module which provides cryptographic functionality.
These components are subject to the LA_OPT_NXP_Software_License and may only be used in connection with NXP hardware. Redistribution or modification of these components outside this context is not permitted.
The original directory structure and license file from the MCUXpresso SDK have been preserved. For more details, refer to: https://www.nxp.com/docs/en/disclaimer/LA_OPT_NXP_SW.html