Difference between revisions of "Tracing on Nordic Semiconductor nRF52840"

From SEGGER Wiki
Jump to: navigation, search
(Sample project)
Line 4: Line 4:
 
The Nordic Semiconductor nRF52840 series implements tracing via pins only, so a J-Trace is needed to perform tracing on these devices.
 
The Nordic Semiconductor nRF52840 series implements tracing via pins only, so a J-Trace is needed to perform tracing on these devices.
   
= Minimum requirements =
+
== Minimum requirements ==
 
In order to use trace on the Nordic Semiconductor nRF52840 series devices, the following minimum requirements have to be met:
 
In order to use trace on the Nordic Semiconductor nRF52840 series devices, the following minimum requirements have to be met:
 
* J-Link software version V6.32d or later
 
* J-Link software version V6.32d or later
Line 10: Line 10:
 
* J-Trace PRO for Cortex-M HW version V1.0 or later
 
* J-Trace PRO for Cortex-M HW version V1.0 or later
   
= Sample project =
+
== Sample project ==
 
The following sample project is designed to be used with J-Trace PRO and Ozone to demonstrate streaming trace. The project has been tested with the minimum requirements mentioned above and a nRF52840-DK (PCA10056). The sample project comes with a pre-configured project file for Ozone that runs out-of-the box on any Nordic Semiconductor nRF52840 that has the Tracepins connected. In order to rebuild the sample project, [https://www.segger.com/embedded-studio.html SEGGER Embedded Studio] can be used.
 
The following sample project is designed to be used with J-Trace PRO and Ozone to demonstrate streaming trace. The project has been tested with the minimum requirements mentioned above and a nRF52840-DK (PCA10056). The sample project comes with a pre-configured project file for Ozone that runs out-of-the box on any Nordic Semiconductor nRF52840 that has the Tracepins connected. In order to rebuild the sample project, [https://www.segger.com/embedded-studio.html SEGGER Embedded Studio] can be used.
   
Line 19: Line 19:
 
To create your own .JLinkScriptfile you can use the following project as reference: [https://wiki.segger.com/Tracing_on_ST_STM32F407_(SEGGER_Cortex-M_Trace_Reference_Board) Tracing on SEGGER_Cortex-M_Trace_Reference_Board]
 
To create your own .JLinkScriptfile you can use the following project as reference: [https://wiki.segger.com/Tracing_on_ST_STM32F407_(SEGGER_Cortex-M_Trace_Reference_Board) Tracing on SEGGER_Cortex-M_Trace_Reference_Board]
   
= Specifics/Limitations =
+
== Specifics/Limitations ==
 
The Nordic Semiconductor nRF52840 MCU uses a traceclock that is independent from the CPU clock. By hardware it is limited to maximum 16 MHz TCLK.
 
The Nordic Semiconductor nRF52840 MCU uses a traceclock that is independent from the CPU clock. By hardware it is limited to maximum 16 MHz TCLK.
   
Line 25: Line 25:
 
To make sure that no accidental button presses stop your trace stream we recommend setting SW7 in the Alt. position.
 
To make sure that no accidental button presses stop your trace stream we recommend setting SW7 in the Alt. position.
   
= Tested Hardware =
+
== Tested Hardware ==
 
[[File:NRF52840_DK.jpg|none|thumb|nRF52840-DK (PCA10056)]]
 
[[File:NRF52840_DK.jpg|none|thumb|nRF52840-DK (PCA10056)]]
   
 
'''Note:''' The 19-pin trace interface is not soldered on the target board by default. This needs to be assembled first.
 
'''Note:''' The 19-pin trace interface is not soldered on the target board by default. This needs to be assembled first.
   
= Reference trace signal quality =
+
== Reference trace signal quality ==
 
The following pictures show oscilloscope measurements of trace signals output by the "Tested Hardware" using the example project.
 
The following pictures show oscilloscope measurements of trace signals output by the "Tested Hardware" using the example project.
 
All measurements have been performed using a Agilent InfiniiVision DSO7034B 350 MHz 2GSa/s oscilloscope and 1156A 1.5 GHz Active Probes. If your trace signals look similar on your trace hardware, chances are good that tracing will work out-of-the-box using the example project.
 
All measurements have been performed using a Agilent InfiniiVision DSO7034B 350 MHz 2GSa/s oscilloscope and 1156A 1.5 GHz Active Probes. If your trace signals look similar on your trace hardware, chances are good that tracing will work out-of-the-box using the example project.
 
More information about correct trace timing can be found at the following [https://www.segger.com/products/debug-probes/j-trace/technology/setting-up-trace/ website].
 
More information about correct trace timing can be found at the following [https://www.segger.com/products/debug-probes/j-trace/technology/setting-up-trace/ website].
== Rise time ==
+
=== Rise time ===
 
The rise time of a signal shows the time needed for a signal to rise from logical 0 to logical 1. For this the values at 10% and 90% of the expected voltage level get used as markers. The following picture shows such a measurement for the trace clock signal.
 
The rise time of a signal shows the time needed for a signal to rise from logical 0 to logical 1. For this the values at 10% and 90% of the expected voltage level get used as markers. The following picture shows such a measurement for the trace clock signal.
 
[[File:nrf52840_Ristetime_TCLK.png|none|thumb|TCLK rise time]]
 
[[File:nrf52840_Ristetime_TCLK.png|none|thumb|TCLK rise time]]
== Setup time ==
+
=== Setup time ===
 
The setup time shows the relative setup time between a trace data signal and trace clock. The measurement markers are set at 50% of the expected voltage level respectively. The following picture shows such a measurement for the trace data signal 0 relative to the trace clock signal.
 
The setup time shows the relative setup time between a trace data signal and trace clock. The measurement markers are set at 50% of the expected voltage level respectively. The following picture shows such a measurement for the trace data signal 0 relative to the trace clock signal.
 
[[File:nrf52840_Setuptime_TD0.png|none|thumb|TD0 setup time]]
 
[[File:nrf52840_Setuptime_TD0.png|none|thumb|TD0 setup time]]

Revision as of 17:47, 13 November 2020

This article describes how to get started with trace on the Nordic Semiconductor nRF52840 series. This article assumes that there is already a basic knowledge about trace in general (what is trace, what different implementations of trace are there, etc.). If this is not the case, we recommend to read Trace chapter in the J-Link User Manual (UM08001). The Nordic Semiconductor nRF52840 series implements tracing via pins only, so a J-Trace is needed to perform tracing on these devices.

Minimum requirements

In order to use trace on the Nordic Semiconductor nRF52840 series devices, the following minimum requirements have to be met:

  • J-Link software version V6.32d or later
  • Ozone V2.56n or later (if streaming trace and / or the sample project from below shall be used)
  • J-Trace PRO for Cortex-M HW version V1.0 or later

Sample project

The following sample project is designed to be used with J-Trace PRO and Ozone to demonstrate streaming trace. The project has been tested with the minimum requirements mentioned above and a nRF52840-DK (PCA10056). The sample project comes with a pre-configured project file for Ozone that runs out-of-the box on any Nordic Semiconductor nRF52840 that has the Tracepins connected. In order to rebuild the sample project, SEGGER Embedded Studio can be used.

Nordic_NRF52840_Trace_Example.zip

Note: The example is shipped with a compiled .JLinkScriptfile, should you need the original source, please get in touch with SEGGER directly via our support system: https://www.segger.com/ticket/.

To create your own .JLinkScriptfile you can use the following project as reference: Tracing on SEGGER_Cortex-M_Trace_Reference_Board

Specifics/Limitations

The Nordic Semiconductor nRF52840 MCU uses a traceclock that is independent from the CPU clock. By hardware it is limited to maximum 16 MHz TCLK.

Note:The nRF52840-DK (PCA10056) has a switch SW7 that determines if the trace pins are shared with other functionality e.g. Buttons. To make sure that no accidental button presses stop your trace stream we recommend setting SW7 in the Alt. position.

Tested Hardware

nRF52840-DK (PCA10056)

Note: The 19-pin trace interface is not soldered on the target board by default. This needs to be assembled first.

Reference trace signal quality

The following pictures show oscilloscope measurements of trace signals output by the "Tested Hardware" using the example project. All measurements have been performed using a Agilent InfiniiVision DSO7034B 350 MHz 2GSa/s oscilloscope and 1156A 1.5 GHz Active Probes. If your trace signals look similar on your trace hardware, chances are good that tracing will work out-of-the-box using the example project. More information about correct trace timing can be found at the following website.

Rise time

The rise time of a signal shows the time needed for a signal to rise from logical 0 to logical 1. For this the values at 10% and 90% of the expected voltage level get used as markers. The following picture shows such a measurement for the trace clock signal.

TCLK rise time

Setup time

The setup time shows the relative setup time between a trace data signal and trace clock. The measurement markers are set at 50% of the expected voltage level respectively. The following picture shows such a measurement for the trace data signal 0 relative to the trace clock signal.

TD0 setup time