| .. _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 |