Difference between revisions of "Tracing on Nordic Semiconductor nRF52"

From SEGGER Wiki
Jump to: navigation, search
Line 1: Line 1:
 
__TOC__
 
__TOC__
   
This article describes how to get started with trace on the Nordic Semiconductor nRF52 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 nRF52 device series supports ETM tracing via trace pins. However different pins are used on different subfamilies. The following article will link to each setup respectively and offer an out-of-the-box trace example.
The Nordic Semiconductor nRF52 series implements tracing via pins only, so a J-Trace is needed to perform tracing on these devices.
 
   
  +
= nRF52832 =
= Minimum requirements =
 
  +
The Wiki article describing the nRF52832 device family can be found here: https://wiki.segger.com/Tracing_on_Nordic_Semiconductor_nRF52832
In order to use trace on the Nordic Semiconductor nRF52 series devices, the following minimum requirements have to be met:
 
* J-Link software version V6.18c or later
 
* Ozone V2.46a 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 =
+
= nRF52840 =
  +
The Wiki article describing the nRF52840 device family can be found here: https://wiki.segger.com/Tracing_on_Nordic_Semiconductor_nRF52840
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 PCA10040 V0.9.0. The sample project comes with a pre-configured project file for Ozone that runs out-of-the box on any Nordic Semiconductor nRF52 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.
 
 
[[Media:Nordic_nRF52_TraceExample_16MHz_TCLK_pex.zip | Nordic_nRF52_TraceExample_16MHz_TCLK.zip]]
 
 
 
'''Note:''' The example is shipped with a compiled .JLinkScriptfile, should you need the original source it can be requested at [mailto:support@segger.com support@segger.com]
 
 
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 =
 
The Nordic Semiconductor nRF52 MCU uses a traceclock that is independend from the cpu clock. By hardware it is limited to maximum 16 MHz TCLK.
 
 
= Tested Hardware =
 
[[File:Nordic_RF52_PCA10040_V0.9.0.jpg|none|thumb|PCA10040 V0.9.0]]
 
'''Note:''' The Trace adapter shown in this picture comes directly from Nordic but is unfortunately not publicly available.
 
 
Quote from Nordic Semiconductor: ''"Connect debugger (with trace functionality) to target device, making sure trace pins are connected (see which GPIOs are trace pins here: https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/pin.html#pin_assign). Note that we have a custom board to make this easy but you will have to figure something else out."''
 
 
However schematics can be downloaded [https://devzone.nordicsemi.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04-DZ-909/8461.pca64111_5F00_schematic_5F00_ETM_5F00_trace.pdf here] so the adapter can be replicated.
 
 
= 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 [https://www.segger.com/products/debug-probes/j-trace/technology/setting-up-trace/ 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.
 
[[File:nrf52_TCLK_Risetime.png|none|thumb|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.
 
[[File:nrf52_TD0_Setuptime.png|none|thumb|TD0 setup time]]
 

Revision as of 13:38, 5 June 2018

The Nordic Semiconductor nRF52 device series supports ETM tracing via trace pins. However different pins are used on different subfamilies. The following article will link to each setup respectively and offer an out-of-the-box trace example.

nRF52832

The Wiki article describing the nRF52832 device family can be found here: https://wiki.segger.com/Tracing_on_Nordic_Semiconductor_nRF52832

nRF52840

The Wiki article describing the nRF52840 device family can be found here: https://wiki.segger.com/Tracing_on_Nordic_Semiconductor_nRF52840