This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can you use DTM in an Application (using S110) without using a UART interface?

Hi Nordic Dev Zone, Ray Kampmeier here.

I'm building Direct Test Mode (DTM) into a production application that uses the 110 soft device. Unlike the provided Nordic examples, I'm not using an external UART interface to send/receive DTM commands. I need to inject them through a proprietary means.

Is their a way to use DTM, in an Application using Soft Device, without using UART?

I'm referencing two different example projects from Nordic:

  1. examples->dtm->direct_test_mode
  2. examples->dtm->dtm_serialization

I'm using example #1 as my main reference. I plan to initialize DTM using "dtm_init()", perform DTM operations with "dtm_cmd(...)", and retrieve the results with "dtm_event_get(...)".

I get a hard fault when I call "dtm_init()" as it internally calls timer_init. Specific line:

NRF_CLOCK->EVENTS_HFCLKSTARTED == 0  

The example #1 is DTM-only and does not include an application w/ soft device, so I expect the hard fault is result of a conflict between my included S110 and the DTM's attempted use of a shared timer.

Both examples enter into DTM and expose a DTM command interface over a UART.
Example #2 (dtm_serialization) does this within an example application that includes s110.

Unlike example #2, I'm not using a UART interface. I'd like to "inject" DTM commands from within my code, rather than externally via UART.

Related