nRF82532 DTM firmware not communicating with nRF DTM desktop software

Hello,

I am having trouble communicating with the nRF82532 and the DTM software.  I am using nRF5_SDK_17.1.0 which has the DTM firmware.  The project that I selected is: direct_test_mode_pca10040 for the Segger Embedded Studio for ARMv5.66.  The nRF DTM software version is 2.02.  Below is a copy of the log file from the DTM software:

2022-08-08T22:07:30.017Z DEBUG Application data folder: C:\Users\DevEng02\AppData\Roaming\nrfconnect\pc-nrfconnect-dtm
2022-08-08T22:07:30.133Z INFO Using nrf-device-lib-js version: 0.4.11
2022-08-08T22:07:30.133Z INFO Using nrf-device-lib version: 0.11.8
2022-08-08T22:07:30.133Z INFO Using nrfjprog DLL version: 10.15.4
2022-08-08T22:07:30.134Z INFO Using JLink version: JLink_V7.58b
2022-08-08T22:07:30.156Z DEBUG App pc-nrfconnect-dtm v2.0.2 official
2022-08-08T22:07:30.156Z DEBUG App path: C:\Users\DevEng02\.nrfconnect-apps\node_modules\pc-nrfconnect-dtm
2022-08-08T22:07:30.156Z DEBUG nRFConnect 3.11.1, required by the app is (^3.8.0)
2022-08-08T22:07:30.156Z DEBUG nRFConnect path: C:\Users\DevEng02\AppData\Local\Programs\nrfconnect\resources\app.asar
2022-08-08T22:07:30.156Z DEBUG HomeDir: C:\Users\DevEng02
2022-08-08T22:07:30.156Z DEBUG TmpDir: C:\Users\DevEng02\AppData\Local\Temp
2022-08-08T22:07:41.425Z INFO No firmware defined for selected device
2022-08-08T22:07:41.426Z INFO Please make sure the device has been programmed with a supported firmware
2022-08-08T22:07:41.436Z INFO Device selected successfully
2022-08-08T22:08:22.490Z INFO Running device setup
2022-08-08T22:08:22.490Z DEBUG DTM Transport: Create setup CMD with control: 0
2022-08-08T22:08:22.490Z DEBUG DTM Transport: Create setup CMD with parameter: 0
2022-08-08T22:08:22.490Z DEBUG DTM Transport: Create setup CMD with dc type: 00
2022-08-08T22:08:22.536Z DEBUG DTM Transport: Serialport is opened
2022-08-08T22:08:22.536Z DEBUG DTM Transport: Succeeded to open serialport
2022-08-08T22:08:22.537Z DEBUG DTM Transport: Sending data: 0x00 0x00
2022-08-08T22:08:23.538Z INFO DTM setup reset command failed
2022-08-08T22:08:23.538Z INFO Can not communicate with device. Make sure it is not in use by another application and that it has a Direct Test Mode compatible firmware.

I did reconfigure my UART port pins for the firmware as shown below from the include file:

// LEDs definitions for PCA10040
#define LEDS_NUMBER    4

#define LED_START      17
#define LED_1          17
#define LED_2          18
#define LED_3          19
#define LED_4          20
#define LED_STOP       20

#define LEDS_ACTIVE_STATE 0

#define LEDS_INV_MASK  LEDS_MASK

#define LEDS_LIST { LED_1, LED_2, LED_3, LED_4 }

#define BSP_LED_0      LED_1
#define BSP_LED_1      LED_2
#define BSP_LED_2      LED_3
#define BSP_LED_3      LED_4

#define BUTTONS_NUMBER 4

#define BUTTON_START   13
#define BUTTON_1       13
#define BUTTON_2       14
#define BUTTON_3       15
#define BUTTON_4       16
#define BUTTON_STOP    16
#define BUTTON_PULL    NRF_GPIO_PIN_PULLUP

#define BUTTONS_ACTIVE_STATE 0

#define BUTTONS_LIST { BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4 }

#define BSP_BUTTON_0   BUTTON_1
#define BSP_BUTTON_1   BUTTON_2
#define BSP_BUTTON_2   BUTTON_3
#define BSP_BUTTON_3   BUTTON_4

#define RX_PIN_NUMBER  4    // P0.08   KL4-TX-GRN  // 2022-08-01 -> FCC Test on BLE Rev C -> P0.04 pad A
#define TX_PIN_NUMBER  9    // P0.06   KL4-RX-YEL  // 2022-08-01 -> FCC Test on BLE Rev C -> P0.09 pad D
#define CTS_PIN_NUMBER 7    // P0.07
#define RTS_PIN_NUMBER 5    // P0.05
#define HWFC           true

#define SPIS_MISO_PIN   28  // SPI MISO signal.
#define SPIS_CSN_PIN    12  // SPI CSN signal.
#define SPIS_MOSI_PIN   25  // SPI MOSI signal.
#define SPIS_SCK_PIN    29  // SPI SCK signal.

#define SPIM0_SCK_PIN   29  // SPI clock GPIO pin number.
#define SPIM0_MOSI_PIN  25  // SPI Master Out Slave In GPIO pin number.
#define SPIM0_MISO_PIN  28  // SPI Master In Slave Out GPIO pin number.
#define SPIM0_SS_PIN    12  // SPI Slave Select GPIO pin number.

#define SPIM1_SCK_PIN   2   // SPI clock GPIO pin number.
#define SPIM1_MOSI_PIN  3   // SPI Master Out Slave In GPIO pin number.
#define SPIM1_MISO_PIN  4   // SPI Master In Slave Out GPIO pin number.
#define SPIM1_SS_PIN    5   // SPI Slave Select GPIO pin number.

#define SPIM2_SCK_PIN   12  // SPI clock GPIO pin number.
#define SPIM2_MOSI_PIN  13  // SPI Master Out Slave In GPIO pin number.
#define SPIM2_MISO_PIN  14  // SPI Master In Slave Out GPIO pin number.
#define SPIM2_SS_PIN    15  // SPI Slave Select GPIO pin number.

// serialization APPLICATION board - temp. setup for running serialized MEMU tests
#define SER_APP_RX_PIN              23    // UART RX pin number.
#define SER_APP_TX_PIN              24    // UART TX pin number.
#define SER_APP_CTS_PIN             2     // UART Clear To Send pin number.
#define SER_APP_RTS_PIN             25    // UART Request To Send pin number.

#define SER_APP_SPIM0_SCK_PIN       27     // SPI clock GPIO pin number.
#define SER_APP_SPIM0_MOSI_PIN      2      // SPI Master Out Slave In GPIO pin number
#define SER_APP_SPIM0_MISO_PIN      26     // SPI Master In Slave Out GPIO pin number
#define SER_APP_SPIM0_SS_PIN        23     // SPI Slave Select GPIO pin number
#define SER_APP_SPIM0_RDY_PIN       25     // SPI READY GPIO pin number
#define SER_APP_SPIM0_REQ_PIN       24     // SPI REQUEST GPIO pin number

// serialization CONNECTIVITY board
#define SER_CON_RX_PIN              24    // UART RX pin number.
#define SER_CON_TX_PIN              23    // UART TX pin number.
#define SER_CON_CTS_PIN             25    // UART Clear To Send pin number. Not used if HWFC is set to false.
#define SER_CON_RTS_PIN             2     // UART Request To Send pin number. Not used if HWFC is set to false.


#define SER_CON_SPIS_SCK_PIN        27    // SPI SCK signal.
#define SER_CON_SPIS_MOSI_PIN       2     // SPI MOSI signal.
#define SER_CON_SPIS_MISO_PIN       26    // SPI MISO signal.
#define SER_CON_SPIS_CSN_PIN        23    // SPI CSN signal.
#define SER_CON_SPIS_RDY_PIN        25    // SPI READY GPIO pin number.
#define SER_CON_SPIS_REQ_PIN        24    // SPI REQUEST GPIO pin number.

#define SER_CONN_CHIP_RESET_PIN     11    // Pin used to reset connectivity chip


// Arduino board mappings
#define ARDUINO_SCL_PIN             27    // SCL signal pin
#define ARDUINO_SDA_PIN             26    // SDA signal pin
#define ARDUINO_AREF_PIN            2     // Aref pin
#define ARDUINO_13_PIN              25    // Digital pin 13
#define ARDUINO_12_PIN              24    // Digital pin 12
#define ARDUINO_11_PIN              23    // Digital pin 11
#define ARDUINO_10_PIN              22    // Digital pin 10
#define ARDUINO_9_PIN               20    // Digital pin 9
#define ARDUINO_8_PIN               19    // Digital pin 8

#define ARDUINO_7_PIN               18    // Digital pin 7
#define ARDUINO_6_PIN               17    // Digital pin 6
#define ARDUINO_5_PIN               16    // Digital pin 5
#define ARDUINO_4_PIN               15    // Digital pin 4
#define ARDUINO_3_PIN               14    // Digital pin 3
#define ARDUINO_2_PIN               13    // Digital pin 2
#define ARDUINO_1_PIN               12    // Digital pin 1
#define ARDUINO_0_PIN               11    // Digital pin 0

#define ARDUINO_A0_PIN              3     // Analog channel 0
#define ARDUINO_A1_PIN              4     // Analog channel 1
#define ARDUINO_A2_PIN              28    // Analog channel 2
#define ARDUINO_A3_PIN              29    // Analog channel 3
#define ARDUINO_A4_PIN              30    // Analog channel 4
#define ARDUINO_A5_PIN              31    // Analog channel 5

If I try to debug, I end up in an exception handler after most step commands.  If I set a breakpoint in the main loop, I can make it to the breakpoint within the main loop but any subsequent step commands cause the exception to occur.  If I try to run the debug version of the DTM firmware in the IDE, the firmware will automatically end up in the exception handler.

I am using a 32 MHz crystal and I am setup to use the DCDC regulator mode if that should be taken into account.

Any ideas?

Thanks,

Allen Shea

Parents
  • Hi Allen

    I see that you have configured the TX pin to use pin P0.09, which is by default configured as an NFC pin (alongside P0.10) so I'm guessing that is what's causing issues when trying to connect to the DTM app for Desktop.

    To use these pins as GPIOs you have to add the following preprocessor define "CONFIG_NFCT_PINS_AS_GPIOS" (add under project settings -> "Preprocessor" -> "Preprocessor definitions").

    Best regards,

    Simon

  • Hello Simon,

    I added that to the preprocessor definitions under the common so it would apply to the Release and Debug versions.  Recompiled the Release and flashed the custom board.  P0.09 is definitely an output but is not transmitting.  On P0.04, I can see the command on the O-Scope coming in to the receive pin on the custom board.

    Thanks,

    Allen

Reply Children
No Data
Related