Hello
I am new to the NRF Connect and NRF board development. I was trying to run a blinky code on the nrf 52840 dongle using the nrf52840dk. I was referencing the following two docs:
https://docs.nordicsemi.com/bundle/ug_nrf5340_dk/page/UG/dk/ext_programming_support_P20.html
https://docs.nordicsemi.com/bundle/ug_nrf52840_dongle/page/UG/nrf52840_Dongle/hw_swd_if.html
However, when I run the code the led does not blink
I took the following steps:
1. I made sure to connect the dongle the way the schematic is shown, although instead if Vtg pin being present on P20, there is a SWD Sel pin on my board, so for one test I did not connect that and for the other I connected it to the Vdd as shown in the diagram
2. I added a build configuration for nrf52840 Dongle on the NRF Connect in the VS Code
3. I clicked Build and then Flash and no errors were shown, but the led does not blink.
4. Since it was not showing, I rebuild the code and then ran a debug (without the vtg connection since there is not vtg on my side):
JLinkGDBServerCL: SEGGER J-Link GDB Server V7.94e Command Line Version JLinkGDBServerCL: JLinkGDBServerCL: JLinkARM.dll V7.94e (DLL compiled Jan 15 2024 15:18:46) JLinkGDBServerCL: JLinkGDBServerCL: -----GDB Server start settings----- JLinkGDBServerCL: GDBInit file: none JLinkGDBServerCL: GDB Server Listening port: 50631 JLinkGDBServerCL: SWO raw output listening port: 2332 JLinkGDBServerCL: Terminal I/O port: 2333 JLinkGDBServerCL: Accept remote connection: localhost only JLinkGDBServerCL: Generate logfile: off JLinkGDBServerCL: Verify download: off JLinkGDBServerCL: Init regs on start: off JLinkGDBServerCL: Silent mode: on JLinkGDBServerCL: Single run mode: on JLinkGDBServerCL: Target connection timeout: 0 ms JLinkGDBServerCL: ------J-Link related settings------ JLinkGDBServerCL: J-Link Host interface: USB JLinkGDBServerCL: J-Link script: none JLinkGDBServerCL: J-Link settings file: none JLinkGDBServerCL: ------Target related settings------ JLinkGDBServerCL: Target device: nRF52840_xxAA JLinkGDBServerCL: Target device parameters: none JLinkGDBServerCL: Target interface: SWD JLinkGDBServerCL: Target interface speed: 12000kHz JLinkGDBServerCL: Target endian: little JLinkGDBServerCL: =thread-group-added,id="i1" =cmd-param-changed,param="pagination",value="off" 0xfffffffe in ?? () Program received signal SIGTRAP, Trace/breakpoint trap. 0x00000578 in ?? ()
But when I do connect the SWC Sel to the vdd as shown in the diagram I get the following debug message:
-- west flash: using runner nrfjprog -- runners.nrfjprog: Flashing file: c:\Users\zuran\Desktop\Nordic_Course\Blinky\build_1\zephyr\zephyr.hex [error] [ Client] - Encountered error -102: Command read_device_info executed for 139 milliseconds with result -102 [error] [ Worker] - An unknown error. [error] [ Client] - Encountered error -102: Command read_memory_descriptors executed for 32 milliseconds with result -102 Failed to read device memories. [error] [ Worker] - An unknown error. ERROR: JLinkARM DLL reported an error. Try again. If error condition ERROR: persists, run the same command again with argument --log, contact Nordic ERROR: Semiconductor and provide the generated log.log file to them. NOTE: For additional output, try running again with logging enabled (--log). NOTE: Any generated log error messages will be displayed. FATAL ERROR: command exited with status 33: nrfjprog --program 'c:\Users\zuran\Desktop\Nordic_Course\Blinky\build_1\zephyr\zephyr.hex' --sectoranduicrerase --verify -f NRF52 --snr 1050268299
And here is the normal blinky script. I did not change it:
#include <stdio.h> #include <zephyr/kernel.h> #include <zephyr/drivers/gpio.h> /* 1000 msec = 1 sec */ #define SLEEP_TIME_MS 500 /* The devicetree node identifier for the "led0" alias. */ #define LED0_NODE DT_ALIAS(led0) /* * A build error on this line means your board is unsupported. * See the sample documentation for information on how to fix this. */ static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios); int main(void) { int ret; bool led_state = true; if (!gpio_is_ready_dt(&led)) { return 0; } ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE); if (ret < 0) { return 0; } while (1) { ret = gpio_pin_toggle_dt(&led); if (ret < 0) { return 0; } led_state = !led_state; printf("LED state: %s\n", led_state ? "ON" : "OFF"); k_msleep(SLEEP_TIME_MS); } return 0; }