NRF52832 (on BMD-350 Module) SWD not connecting...

I'm having no luck in getting JLinkExe or nrfjprog to see my BMD-350 device on my custom PCB. 

I have read though all the threads here that reference similar issues and have verified all of the following:

* Connections to SWCLK and SWDIO are made properly and have no pullup/pulldown resistors.

* The device is remotely powered

* The signals on SWCLK and SWDIO are there and look to be the proper levels.

* The device itself works - it has factory firmware that advertises services (RigDFU etc.) on BLE

I have tried both a Segger JLink as well as the using the development board programmer via the 10

pin connector.

There has to be something basic I am missing.  Below are a
PDF of the device schematic and the log.log output from nrfjprog -f nrf52 --recover

I'm doing the development in Linux, and have had no problem in connecting to the development board.

I've also asked for help from the manufacturer, UBlox, but have heard nothing back from them.

Any pointers here would be greatly appreciated.

-Glenn

6648.log.logSG_Bluetooth_4-Layer.pdf

Parents
  • Hi there,

    The schematics looks ok. 

    1. Exactly what voltage do you measure on VDD, GND and RESET pin?
    2. Have you tried omitting the regulator stage and power the board directly from a bench top supply? 
    3. Do you see this issue on all of your samples? 
    4. Thank you for including the log from nrfjprog --recover. But could you also specify what error message that is reported by the program when you just run nrfjprog --recover? 

    regards

    Jared 

  • Hi Jared,

    Thanks for responding.

     - The voltages on the board are:

       * VDD - 3.28V

       * GND - .009V

       * nRESET - 3.28V

    Under test, I am powering the board over the SWD cable with a bench power supply into a 3.3V regulator. 

    I've tried a couple of the BMD-350s, and they all seem to give the same results

    One thing I noticed when looking at a couple schematics I found for the Thingy devices is that you use a 4.6 uF capacitor after the regulator - I have just a 1uF on my board.  I was going to try putting a 4.7uF in its place but have not yet done so.

    I've attached the output from nrfjprog --recover:

    ERROR: Unable to connect to a debugger.
    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.
    
    

Reply
  • Hi Jared,

    Thanks for responding.

     - The voltages on the board are:

       * VDD - 3.28V

       * GND - .009V

       * nRESET - 3.28V

    Under test, I am powering the board over the SWD cable with a bench power supply into a 3.3V regulator. 

    I've tried a couple of the BMD-350s, and they all seem to give the same results

    One thing I noticed when looking at a couple schematics I found for the Thingy devices is that you use a 4.6 uF capacitor after the regulator - I have just a 1uF on my board.  I was going to try putting a 4.7uF in its place but have not yet done so.

    I've attached the output from nrfjprog --recover:

    ERROR: Unable to connect to a debugger.
    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.
    
    

Children
  • Hi,

    What kind of debugger did you use when you provided that log? The debugger on the devkit or the stand alone debugger? If the latter, which model?

    The error message indicates that the computer isn't able to get in contact with the debugger. Are you able to get in contact with it if you use J-link Commander? The issue might be related to the drivers installed, can you check if changing computer and OS to Windows mitigates the issue?

    regards
    Jared 

  • I'm using the Development kit - BMD-350-EVAL to be specific.

    Switching to a Windows machine would be difficult at the moment.

    I can say that both JLinkExe and nrfjprog - (as well as the Nordic Programmer Linux app) all work when the target is the module on the board itself. (see attached outputs below).

    I would think that if it's a driver issue that wouldn't work either.

    I also have had no issues programming the Devkit board from Visual Studio.

    -Glenn

    glenn@rawls:/opt/SEGGER/JLink$ nrfjprog  --recover 
    Recovering device. This operation might take 30s.
    Erasing user code and UICR flash areas.
    
    glenn@rawls:/opt/SEGGER/JLink$ JLinkExe            
    SEGGER J-Link Commander V7.68c (Compiled Jul 28 2022 15:43:29)
    DLL version V7.68c, compiled Jul 28 2022 15:43:14
    
    Connecting to J-Link via USB...O.K.
    Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 20 2022 16:43:31
    Hardware version: V1.00
    J-Link uptime (since boot): N/A (Not supported by this model)
    S/N: 682820868
    License(s): RDI, FlashBP, FlashDL, JFlash, GDB
    USB speed mode: High speed (480 MBit/s)
    VTref=3.300V
    
    
    Type "connect" to establish a target connection, '?' for help
    J-Link>connect
    Please specify device / core. <Default>: CORTEX-M4
    Type '?' for selection dialog
    Device>nrf52
    Please specify target interface:
      J) JTAG (Default)
      S) SWD
      T) cJTAG
    TIF>s
    Specify target interface speed [kHz]. <Default>: 4000 kHz
    Speed>
    Device "NRF52" selected.
    
    
    Connecting to target via SWD
    InitTarget() start
    InitTarget() end
    Found SW-DP with ID 0x2BA01477
    DPIDR: 0x2BA01477
    CoreSight SoC-400 or earlier
    Scanning AP map to find all available APs
    AP[2]: Stopped AP scan as end of AP map has been reached
    AP[0]: AHB-AP (IDR: 0x24770011)
    AP[1]: JTAG-AP (IDR: 0x02880000)
    Iterating through AP map to find AHB-AP to use
    AP[0]: Core found
    AP[0]: AHB-AP ROM base: 0xE00FF000
    CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
    Found Cortex-M4 r0p1, Little endian.
    FPUnit: 6 code (BP) slots and 2 literal slots
    CoreSight components:
    ROMTbl[0] @ E00FF000
    [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
    [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
    [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
    [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
    [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
    [0][5]: E0041000 CID B105900D PID 000BB925 ETM
    Cortex-M4 identified.
    J-Link>
    
    
    

  • GJChristman said:

    'm using the Development kit - BMD-350-EVAL to be specific.

    Switching to a Windows machine would be difficult at the moment.

    I can say that both JLinkExe and nrfjprog - (as well as the Nordic Programmer Linux app) all work when the target is the module on the board itself. (see attached outputs below).

    Fair point. 

    Have you double checked that SWDCLK and SWDIO hasn't been switched when they were routed out on your custom board?

    It should be fairly straightforward to flash a board with a debugger. 

    1. SWDIO and SWDCLK needs to be connected to their respective pins.
    2. Boards needs to be supplied.
    3. VDD of the board needs to be routed to the debugger.

    regards

    Jared

  • Connecting pin 6 (SWO) of the Tag-Connect to Gnd is unusual, although may be benign; maybe try disconnecting that pin

  • Hmolesworth,

    A good point. 

    Although it looks like the SWO pin is connected to ground, there is no connection of that pin to either the BMD-350 or the programmer.

    To describe my setup more fully:  I have a breadboard in between my device and the Development kit.  This board has a header which the TC2030 cable plugs onto, and then wires that go from that header to a 10-pin header connector that plugs into the Development kit. It also has a 3.3V regulator that powers my custom board. The other end of the TC2030 connects to my custom board:

    Dev_Kit (10 pin connector)----------------Breadboard------(TC2030)------------Target Board

                                                                          |

                                                                 Power Supply

    I have no connection to the Dev_Kit's SWO pin.

    When I double-checked,  I did notice a short between the TDI pin and the nRESET pin.  Even though that pin does not seem to be implemented, I removed that short - but no joy.

Related