zephyr/samples/boards/nrf/clock_skew
Peter Bigot 08f4ce4efb samples: boards: nrf: add clock_skew
Provide a demonstration of using the timeutil skew infrastructure to
measure the relative error of the two clock sources on Nordic boards.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2021-01-20 16:38:56 -05:00
..
src
CMakeLists.txt
Kconfig
README.rst
prj.conf
sample.yaml

README.rst

.. _nrf-clock-skew-sample:

nRF5x Clock Skew Demo
#####################

Overview
********

This sample uses the API for correlating time sources to measure the
skew between HFCLK (used for the CPU) and LFCLK (used for system time).

The ``CONFIG_APP_ENABLE_HFXO`` Kconfig option can be select to configure
the high frequency clock to use a crystal oscillator rather than the
default RC oscillator.  (Capabilities like Bluetooth that require an
accurate high-frequency clock generally enable this source
automatically.)  The relative error is significantly lower when HFXO is
enabled.

Requirements
************

This application uses any nRF51 DK or nRF52 DK board for the demo.

Building, Flashing and Running
******************************

.. zephyr-app-commands::
   :zephyr-app: samples/boards/nrf/clock_skew
   :board: nrf52dk_nrf52840
   :goals: build flash
   :compact:

Running:


Sample Output
=============

.. code-block:: console

   *** Booting Zephyr OS build zephyr-v2.4.0-693-g4a3275faf567  ***
   Power-up clocks: LFCLK[ON]: Running LFXO ; HFCLK[OFF]: Running HFINT
   Start TIMER_0: 0
   Timer-running clocks: LFCLK[ON]: Running LFXO ; HFCLK[OFF]: Running HFINT
   Checking TIMER_0 at 16000000 Hz against ticks at 32768 Hz
   Timer wraps every 268 s

   Ty  Latest           Base             Span             Err
   HF  00:00:00.015667
   LF  00:00:00.404296
   Started sync: 0

   Ty  Latest           Base             Span             Err
   HF  00:00:10.001151  00:00:00.015667  00:00:09.985483
   LF  00:00:10.413818  00:00:00.404296  00:00:10.009521  00:00:00.024038
   Skew 0.997599 ; err 2401411 ppb

   Ty  Latest           Base             Span             Err
   HF  00:00:19.997456  00:00:00.015667  00:00:19.981788
   LF  00:00:20.434265  00:00:00.404296  00:00:20.029968  00:00:00.048180
   Skew 0.997595 ; err 2405464 ppb

   Ty  Latest           Base             Span             Err
   HF  00:00:29.993845  00:00:00.015667  00:00:29.978178
   LF  00:00:30.454650  00:00:00.404296  00:00:30.050354  00:00:00.072176
   Skew 0.997598 ; err 2401828 ppb

   Ty  Latest           Base             Span             Err
   HF  00:00:39.986181  00:00:00.015667  00:00:39.970514
   LF  00:00:40.475036  00:00:00.404296  00:00:40.070739  00:00:00.100225
   Skew 0.997499 ; err 2501189 ppb

   Ty  Latest           Base             Span             Err
   HF  00:00:49.981516  00:00:00.015667  00:00:49.965848
   LF  00:00:50.495422  00:00:00.404296  00:00:50.091125  00:00:00.125277
   Skew 0.997499 ; err 2501010 ppb

   Ty  Latest           Base             Span             Err
   HF  00:00:59.976042  00:00:00.015667  00:00:59.960375
   LF  00:01:00.515808  00:00:00.404296  00:01:00.111511  00:00:00.151136
   Skew 0.997486 ; err 2514243 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  00:01:59.935661  00:00:00.015667  00:01:59.919994
   LF  00:02:00.638153  00:00:00.404296  00:02:00.233856  00:00:00.313862
   Skew 0.997390 ; err 2610445 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  00:04:59.769166  00:00:00.015667  00:04:59.753498
   LF  00:05:01.005279  00:00:00.404296  00:05:00.600982  00:00:00.847484
   Skew 0.997181 ; err 2819240 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  00:09:59.513787  00:00:00.015667  00:09:59.498119
   LF  00:10:01.617156  00:00:00.404296  00:10:01.212860  00:00:01.714741
   Skew 0.997148 ; err 2852201 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  00:30:08.384536  00:00:00.015667  00:30:08.368868
   LF  00:30:14.084594  00:00:00.404296  00:30:13.680297  00:00:05.311429
   Skew 0.997072 ; err 2928495 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  00:59:57.353602  00:00:00.015667  00:59:57.337934
   LF  01:00:07.734375  00:00:00.404296  01:00:07.330078  00:00:09.992144
   Skew 0.997230 ; err 2770006 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  02:59:33.181323  00:00:00.015667  02:59:33.165656
   LF  03:00:03.434265  00:00:00.404296  03:00:03.029968  00:00:29.864312
   Skew 0.997236 ; err 2764463 ppb
   ...
   Ty  Latest           Base             Span             Err
   HF  05:59:55.031709  00:00:00.015667  05:59:55.016042
   LF  06:00:57.120941  00:00:00.404296  06:00:56.716644  00:01:01.700602
   Skew 0.997151 ; err 2849042 ppb