README.rst
1.. zephyr:code-sample:: nrf_clock_skew
2 :name: nRF5x Clock Skew
3
4 Measure the skew between the high-frequency and low-frequency clocks.
5
6Overview
7********
8
9This sample uses the API for correlating time sources to measure the
10skew between HFCLK (used for the CPU) and LFCLK (used for system time).
11It also shows how to use this skew to correct durations measured in the
12LFCLK domain to durations in the HFCLK domain.
13
14The ``CONFIG_APP_ENABLE_HFXO`` Kconfig option can be select to configure
15the high frequency clock to use a crystal oscillator rather than the
16default RC oscillator. (Capabilities like Bluetooth that require an
17accurate high-frequency clock generally enable this source
18automatically.) The relative error is significantly lower when HFXO is
19enabled.
20
21Requirements
22************
23
24This application uses any nRF51 DK or nRF52 DK board for the demo.
25
26Building, Flashing and Running
27******************************
28
29.. zephyr-app-commands::
30 :zephyr-app: samples/boards/nordic/clock_skew
31 :board: nrf52dk/nrf52832
32 :goals: build flash
33 :compact:
34
35Running:
36
37
38Sample Output
39=============
40
41.. code-block:: console
42
43 *** Booting Zephyr OS build v2.5.0-rc3-94-g06a4b650467b ***
44 Power-up clocks: LFCLK[ON]: Running LFXO ; HFCLK[OFF]: Running HFINT
45 Start TIMER_0: 0
46 Timer-running clocks: LFCLK[ON]: Running LFXO ; HFCLK[OFF]: Running HFINT
47 Checking TIMER_0 at 16000000 Hz against ticks at 32768 Hz
48 Timer wraps every 268 s
49
50 Ty Latest Base Span Err
51 HF 00:00:00.015666
52 LF 00:00:00.404937
53 Started sync: 0
54
55 Ty Latest Base Span Err
56 HF 00:00:09.978436 00:00:00.015666 00:00:09.962769
57 LF 00:00:10.414520 00:00:00.404937 00:00:10.009582 00:00:00.046813
58 RHF 00:00:09.978435 -00:00:00.000000
59 Skew 0.995323 ; err 4676818 ppb
60
61 Ty Latest Base Span Err
62 HF 00:00:19.959136 00:00:00.015666 00:00:19.943469
63 LF 00:00:20.441589 00:00:00.404937 00:00:20.036651 00:00:00.093182
64 RHF 00:00:19.959117 -00:00:00.000018
65 Skew 0.995349 ; err 4650592 ppb
66
67 Ty Latest Base Span Err
68 HF 00:00:29.937181 00:00:00.015666 00:00:29.921514
69 LF 00:00:30.468627 00:00:00.404937 00:00:30.063690 00:00:00.142176
70 RHF 00:00:29.937175 -00:00:00.000005
71 Skew 0.995271 ; err 4729151 ppb
72
73 Ty Latest Base Span Err
74 HF 00:00:39.917347 00:00:00.015666 00:00:39.901680
75 LF 00:00:40.495666 00:00:00.404937 00:00:40.090728 00:00:00.189048
76 RHF 00:00:39.917339 -00:00:00.000008
77 Skew 0.995284 ; err 4715502 ppb
78
79 Ty Latest Base Span Err
80 HF 00:00:49.899493 00:00:00.015666 00:00:49.883826
81 LF 00:00:50.522674 00:00:00.404937 00:00:50.117736 00:00:00.233910
82 RHF 00:00:49.899486 -00:00:00.000007
83 Skew 0.995333 ; err 4667222 ppb
84
85 Ty Latest Base Span Err
86 HF 00:00:59.878166 00:00:00.015666 00:00:59.862499
87 LF 00:01:00.549713 00:00:00.404937 00:01:00.144775 00:00:00.282276
88 RHF 00:00:59.878154 -00:00:00.000011
89 Skew 0.995307 ; err 4693269 ppb
90 ...
91 Ty Latest Base Span Err
92 HF 00:02:59.654855 00:00:00.015666 00:02:59.639188
93 LF 00:03:00.873901 00:00:00.404937 00:03:00.468963 00:00:00.829775
94 RHF 00:02:59.654857 00:00:00.000001
95 Skew 0.995402 ; err 4597902 ppb
96 ...
97 Ty Latest Base Span Err
98 HF 00:04:59.410593 00:00:00.015666 00:04:59.394926
99 LF 00:05:01.198181 00:00:00.404937 00:05:00.793243 00:00:01.398317
100 RHF 00:04:59.410594 00:00:00.000001
101 Skew 0.995351 ; err 4648745 ppb
102 ...
103 Ty Latest Base Span Err
104 HF 00:09:58.829511 00:00:00.015666 00:09:58.813845
105 LF 00:10:02.008911 00:00:00.404937 00:10:01.603973 00:00:02.790128
106 RHF 00:09:58.829509 -00:00:00.000002
107 Skew 0.995362 ; err 4637837 ppb
108 ...
109 Ty Latest Base Span Err
110 HF 00:29:56.607589 00:00:00.015666 00:29:56.591923
111 LF 00:30:05.250732 00:00:00.404937 00:30:04.845794 00:00:08.253871
112 RHF 00:29:56.607585 -00:00:00.000004
113 Skew 0.995427 ; err 4573166 ppb
114 ...
115 Ty Latest Base Span Err
116 HF 00:59:43.781443 00:00:00.015666 00:59:43.765776
117 LF 01:00:00.085113 00:00:00.404937 00:59:59.680175 00:00:15.914399
118 RHF 00:59:43.781535 00:00:00.000092
119 Skew 0.995579 ; err 4421055 ppb
120 ...
121 Ty Latest Base Span Err
122 HF 01:59:37.666395 00:00:00.015666 01:59:37.650728
123 LF 02:00:09.810913 00:00:00.404937 02:00:09.405975 00:00:31.755247
124 RHF 01:59:37.666057 -00:00:00.000338
125 Skew 0.995595 ; err 4404723 ppb
126 ...
127 Ty Latest Base Span Err
128 HF 05:58:33.905236 00:00:00.015666 05:58:33.889570
129 LF 06:00:08.604980 00:00:00.404937 06:00:08.200042 00:01:34.310472
130 RHF 05:58:33.904338 -00:00:00.000898
131 ..
132 Skew 0.995635 ; err 4364550 ppb
133 Ty Latest Base Span Err
134 HF 11:56:59.503922 00:00:00.015666 11:56:59.488255
135 LF 12:00:06.793182 00:00:00.404937 12:00:06.388244 00:03:06.899989
136 RHF 11:56:59.503948 00:00:00.000025
137 Skew 0.995674 ; err 4325747 ppb
138