nRF5x Clock Skew
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). It also shows how to use this skew to correct durations measured in the LFCLK domain to durations in the HFCLK domain.
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
west build -b nrf52dk/nrf52832 samples/boards/nordic/clock_skew
west flash
Running:
Sample Output
*** Booting Zephyr OS build v2.5.0-rc3-94-g06a4b650467b ***
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.015666
LF 00:00:00.404937
Started sync: 0
Ty Latest Base Span Err
HF 00:00:09.978436 00:00:00.015666 00:00:09.962769
LF 00:00:10.414520 00:00:00.404937 00:00:10.009582 00:00:00.046813
RHF 00:00:09.978435 -00:00:00.000000
Skew 0.995323 ; err 4676818 ppb
Ty Latest Base Span Err
HF 00:00:19.959136 00:00:00.015666 00:00:19.943469
LF 00:00:20.441589 00:00:00.404937 00:00:20.036651 00:00:00.093182
RHF 00:00:19.959117 -00:00:00.000018
Skew 0.995349 ; err 4650592 ppb
Ty Latest Base Span Err
HF 00:00:29.937181 00:00:00.015666 00:00:29.921514
LF 00:00:30.468627 00:00:00.404937 00:00:30.063690 00:00:00.142176
RHF 00:00:29.937175 -00:00:00.000005
Skew 0.995271 ; err 4729151 ppb
Ty Latest Base Span Err
HF 00:00:39.917347 00:00:00.015666 00:00:39.901680
LF 00:00:40.495666 00:00:00.404937 00:00:40.090728 00:00:00.189048
RHF 00:00:39.917339 -00:00:00.000008
Skew 0.995284 ; err 4715502 ppb
Ty Latest Base Span Err
HF 00:00:49.899493 00:00:00.015666 00:00:49.883826
LF 00:00:50.522674 00:00:00.404937 00:00:50.117736 00:00:00.233910
RHF 00:00:49.899486 -00:00:00.000007
Skew 0.995333 ; err 4667222 ppb
Ty Latest Base Span Err
HF 00:00:59.878166 00:00:00.015666 00:00:59.862499
LF 00:01:00.549713 00:00:00.404937 00:01:00.144775 00:00:00.282276
RHF 00:00:59.878154 -00:00:00.000011
Skew 0.995307 ; err 4693269 ppb
...
Ty Latest Base Span Err
HF 00:02:59.654855 00:00:00.015666 00:02:59.639188
LF 00:03:00.873901 00:00:00.404937 00:03:00.468963 00:00:00.829775
RHF 00:02:59.654857 00:00:00.000001
Skew 0.995402 ; err 4597902 ppb
...
Ty Latest Base Span Err
HF 00:04:59.410593 00:00:00.015666 00:04:59.394926
LF 00:05:01.198181 00:00:00.404937 00:05:00.793243 00:00:01.398317
RHF 00:04:59.410594 00:00:00.000001
Skew 0.995351 ; err 4648745 ppb
...
Ty Latest Base Span Err
HF 00:09:58.829511 00:00:00.015666 00:09:58.813845
LF 00:10:02.008911 00:00:00.404937 00:10:01.603973 00:00:02.790128
RHF 00:09:58.829509 -00:00:00.000002
Skew 0.995362 ; err 4637837 ppb
...
Ty Latest Base Span Err
HF 00:29:56.607589 00:00:00.015666 00:29:56.591923
LF 00:30:05.250732 00:00:00.404937 00:30:04.845794 00:00:08.253871
RHF 00:29:56.607585 -00:00:00.000004
Skew 0.995427 ; err 4573166 ppb
...
Ty Latest Base Span Err
HF 00:59:43.781443 00:00:00.015666 00:59:43.765776
LF 01:00:00.085113 00:00:00.404937 00:59:59.680175 00:00:15.914399
RHF 00:59:43.781535 00:00:00.000092
Skew 0.995579 ; err 4421055 ppb
...
Ty Latest Base Span Err
HF 01:59:37.666395 00:00:00.015666 01:59:37.650728
LF 02:00:09.810913 00:00:00.404937 02:00:09.405975 00:00:31.755247
RHF 01:59:37.666057 -00:00:00.000338
Skew 0.995595 ; err 4404723 ppb
...
Ty Latest Base Span Err
HF 05:58:33.905236 00:00:00.015666 05:58:33.889570
LF 06:00:08.604980 00:00:00.404937 06:00:08.200042 00:01:34.310472
RHF 05:58:33.904338 -00:00:00.000898
..
Skew 0.995635 ; err 4364550 ppb
Ty Latest Base Span Err
HF 11:56:59.503922 00:00:00.015666 11:56:59.488255
LF 12:00:06.793182 00:00:00.404937 12:00:06.388244 00:03:06.899989
RHF 11:56:59.503948 00:00:00.000025
Skew 0.995674 ; err 4325747 ppb