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

Can't connect to custom nrf52 board with J-LINK

We come from here : 

https://devzone.nordicsemi.com/f/nordic-q-a/35180/error-with-nrf52dk-and-mac-os-hs

Now, i have a new development kit and i can program it but now i have a problem with the J-LINK connection, i cant connect with my nordic 58323 custom board 

I have tried from j-link, and j-link commander, and nrfjprog --recover, nothing works :( 

I have tried with a few usb wires too, and a few laptops with differents environments (windows, mac)

Here is the  nrfjprog --recover log :

nrfjprog --recover --log

nrfjprog version 9.7.3

--------------------------------------------------------------------------------

nRF_open_dll

. nRF52_open_dll

. . nRF52_dll_version

nRF_enum_emu_snr

. nRF52_enum_emu_snr

. . nRF52_enum_emu_snr

nRF_enum_emu_snr

. nRF52_enum_emu_snr

. . nRF52_enum_emu_snr

nRF_connect_to_emu_with_snr

. nRF52_connect_to_emu_with_snr

. . nRF52_is_connected_to_emu

. . nRF52_enum_emu_snr

. . nRF52_connect_to_emu_with_snr

. . . nRF52_connect_to_emu_without_snr

. . . nRF52_connect_to_emu_without_snr: JLink: Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 12 2018 16:05:20

. . . nRF52_connect_to_emu_without_snr: JLink: Hardware: V1.00

. . . nRF52_connect_to_emu_without_snr: JLink: S/N: 682010721

. . . nRF52_connect_to_emu_without_snr: JLink: TELNET listener socket opened on port 19021

. . . nRF52_connect_to_emu_without_snr: JLink: WEBSRV  Starting webserver

. . . nRF52_connect_to_emu_without_snr: JLink: (0015ms, 0020ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:006

. . . nRF52_connect_to_emu_without_snr: JLink: WEBSRV Webserver running on local port 19080

. . . nRF52_connect_to_emu_without_snr: JLink: (0015ms, 0020ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:006

. . . nRF52_connect_to_emu_without_snr: JLink:   returns O.K.

. . . nRF52_connect_to_emu_without_snr: JLink: (0016ms, 0021ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:022

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_GetHWStatus(...)

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x00

. . . nRF52_connect_to_emu_without_snr: JLink: (0000ms, 0021ms total) 

. . . nRF52_connect_to_emu_without_snr: There is no generic nRF52 device in J-Link, so we select NRF52832_xxAA.

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:023

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_ExecCommand("Device = NRF52832_xxAA", ...).

. . . nRF52_connect_to_emu_without_snr: JLink: /Applications/SEGGER/JLink/JLinkDevices.xml evaluated successfully.

. . . nRF52_connect_to_emu_without_snr: JLink: Device "NRF52832_XXAA" selected.

. . . nRF52_connect_to_emu_without_snr: JLink: Device "NRF52832_XXAA" selected.

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x00

. . . nRF52_connect_to_emu_without_snr: JLink: (0267ms, 0288ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:290

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_ExecCommand("SetRestartOnClose = 0", ...).

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x01

. . . nRF52_connect_to_emu_without_snr: JLink: (0000ms, 0288ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:290

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_ExecCommand("DisableFlashDL", ...).

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x00

. . . nRF52_connect_to_emu_without_snr: JLink: (0001ms, 0289ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:291

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_ExecCommand("SetDbgPowerDownOnClose = 1", ...).

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x01

. . . nRF52_connect_to_emu_without_snr: JLink: (0000ms, 0289ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:291

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_ExecCommand("ExcludeFlashCacheRange 0x0-0xFFFFFFFF", ...).

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x00

. . . nRF52_connect_to_emu_without_snr: JLink: (0000ms, 0289ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:291

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_TIF_Select(JLINKARM_TIF_SWD)

. . . nRF52_connect_to_emu_without_snr: JLink:   returns 0x00

. . . nRF52_connect_to_emu_without_snr: JLink: (0004ms, 0293ms total) 

. . . nRF52_connect_to_emu_without_snr: JLink: TADEA7380 000:295

. . . nRF52_connect_to_emu_without_snr: JLink: JLINK_SetSpeed(4000)

. . . nRF52_connect_to_emu_without_snr: JLink: (0001ms, 0294ms total) 

nRF_recover

. nRF52_recover

. . nRF52_is_connected_to_emu

. . nRF52_is_connected_to_emu: JLink: TADEA7380 000:297

. . nRF52_is_connected_to_emu: JLink: JLINK_IsOpen()

. . nRF52_is_connected_to_emu: JLink:   returns 0x01

. . nRF52_is_connected_to_emu: JLink: (0000ms, 0294ms total) 

. . nRF52_is_connected_to_device

. . nRF52_is_connected_to_device: JLink: TADEA7380 000:297

. . nRF52_is_connected_to_device: JLink: JLINK_IsConnected()

. . nRF52_is_connected_to_device: JLink:   returns FALSE

. . nRF52_is_connected_to_device: JLink: (0000ms, 0294ms total) 

. . nRF52_readback_status

. . . nRF52_is_ctrl_ap_available

. . . . nRF52_read_access_port_register

. . . . . nRF52_coresight_configure

. . . . . nRF52_coresight_configure: JLink: TADEA7380 000:298

. . . . . nRF52_coresight_configure: JLink: JLINK_CORESIGHT_Configure()

. . . . . nRF52_coresight_configure: JLink:   returns 0

. . . . . nRF52_coresight_configure: JLink: (0102ms, 0396ms total) 

. . . . . nRF52_power_debug_and_system_regions

. . . . . . nRF52_write_debug_port_register

. . . . . . nRF52_write_debug_port_register: JLink: TADEA7380 000:402

. . . . . . nRF52_write_debug_port_register: JLink: JLINK_CORESIGHT_WriteAPDPReg(DP reg 0x02, 0x00000000)

. . . . . . nRF52_write_debug_port_register: JLink:   returns -1

. . . . . . nRF52_write_debug_port_register: JLink: (0001ms, 0398ms total) 

. . . . . . nRF52_write_debug_port_register: JLinkARM.dll CORESIGHT_WriteAPDPReg returned error -1.

. . . . . nRF52_power_debug_and_system_regions: JLinkARM.dll CORESIGHT_WriteAPDPReg returned error -102.

nRF_close_dll

. nRF52_close_dll

. . nRF52_is_connected_to_emu

. . nRF52_is_connected_to_emu: JLink: TADEA7380 000:405

. . nRF52_is_connected_to_emu: JLink: JLINK_IsOpen()

. . nRF52_is_connected_to_emu: JLink:   returns 0x01

. . nRF52_is_connected_to_emu: JLink: (0000ms, 0398ms total) 

. . nRF52_disconnect_from_emu

. . . nRF52_is_connected_to_device

. . . nRF52_is_connected_to_device: JLink: TADEA7380 000:406

. . . nRF52_is_connected_to_device: JLink: JLINK_IsConnected()

. . . nRF52_is_connected_to_device: JLink:   returns FALSE

. . . nRF52_is_connected_to_device: JLink: (0000ms, 0399ms total) 

. . . nRF52_unpower_debug_and_system_regions

. . nRF52_disconnect_from_emu: JLink: TADEA7380 000:419

. . nRF52_disconnect_from_emu: JLink: JLINK_Close()

can anyone help me ?

Parents
  • Hi,

     

    If you measured between VTG and VDD, then you have measured the current going into the Segger IC, and not the current going into your custom board. "VTG" is an input for the SEGGER IC to use this specific port for programming, as the DK has a total of 3 debug outputs (P19, P20, and on-board nRF).

    You should measure the current like this:

    VDD ------+--<AM-METER>-> VDD
             /
    VTG ----+
    
    GND ------------+-------> GND
                   /
    GND DETECT ---+
    
    SWD IO -----------------> SWD IO
    
    SWD CLK ----------------> SWD CLK

     

    You could also check if there's voltage on the VDD (in case you've used the board for current measurement on a previous occasion and cut SB9).

     

    Best regards,

    Håkon

  • I dont have measure between VDD and VTG, I was said that VDD and VTG from DK are jumpered, and after, I measured these 2 wires (converted in one wire  by the jumper)  and my custom board VDD

    I was mean before that VDD and VTG are jumpered like this:

       

    VDD ------+--<AM-METER>-> VDD CUSTOM BOARD
             /
    VTG ----+


    And i think that this would be the same:

    VDD --------------+---> VDD
                    /
    VTG -<AM-METER>---+

    And in the vdd I have voltage (2,80 aprox).

    As I said is a new DK and stills stocks 

    regards !!

  • It would not be the same to put the am-meter in series with the VTG pin. "VTG" is an input, it does not provide any current to your board. As I previously stated, this is a logic switch for the on-board debugger to use the P20 as the debug out port. This can be confirmed by removing the connection and measuring VTG using your volt-meter, it will then read 0 V.

     

    If you have a blank chip on your custom board, the current consumption you should expect is a couple of milliamps (+ current from any other external ICs that you have on your board).

     

    Best regards,

    Håkon

  • Yes you are right !! 

    So, i have a unknown state of my chip, I dont know if have a program inside or are blank.

    The vtg measure 0V  and vdg 2,85V  


    So, with the data that i have provided you, and the consumption data in idle and when I tried recover it , can you know anything weird ? 

    Edit: add pic to clarify the consumption measurement

  • Your setup is good now.

    How much current does your board draw now? It should be ~2-3 mA (might be higher if you have a lot of other ICs on your board).

     

    -H

  • Thanks for reply ! 

    The consumption was the one that commented previously!

    In idle was 29μA and when i tried the nrjprog --recover or --readregs or other the was between 33μA and 130μA.

    I have always had that configuration but I did not know how to explain my measurement configuration

    I have oscilloscope also in case it is necessary to make any measurements on the pins of SWDCL and SWDIO or whatever is necessary

    Regards !!

  • If this chip has never been programmed, and is drawing microamps, then there is something wrong. Have you tried checking the internal connections on your custom board to see if there is any issues there?

Reply Children
  • I have several customized boards. And I have been able to code it before but after a process like:
          - recover
          - eraseall
          - programsofdevice

    The board  stopped responding, so I do not know what state it is in.

    I get the impression that the nordic chip is blocked or asleep or something like that.

    Yes, I checked the board and it seems that there is no error, as I say it was after a process described above

Related