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