[ABANDONED] JFLASH fails programming Nordic Semiconductor nRF51422

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [ABANDONED] JFLASH fails programming Nordic Semiconductor nRF51422

    Hi
    We use the JFlash ARM production programmer with several different designs with different Cortex M MCU's.
    We know have a new product with the Nordic Semiconductor nRF51422 Bluetooth SOC with an ARM Cortex M MCU embedded.But this is not as easy as it normally is...
    Version 5.12g of J-Flash supports the device.When I try to program, read, reset or any function where I want to access the MCU, it comes up with this error:
    "PC of target system has unexpected value after checking target RAM. (PC = 0xFFFFFFFE)"
    We use the "SWD" type connection.But compared to other standard Cortex MCU's, this one uses the SWDIO as RESET pin too: The pin is designated "SDWIO/nRESET" in the datasheet.The normal Reset pin is not used.The designer of the board (we did not design the board our selves), has an additional pin "Boot" in the interface connector, but this should not be used, I am told.
    I am not sure if this device should be handled in a special way, with this combined SWDIO and RESET pin.But the J-Flash supports the device, so I guess it will handle this?
    Anyone with experience programming this device ?
    I have attached a picture of the error.
    Thanks in advance!
    (Google does not help me much...)
  • I know, its not the wanted solution, but we use the nrfprog utility, provided by nordic for production programming.
    We programming 12 units at one time with the segger jlink programmer.

    Its fast and reliable.

    Best,
    Ingolf
  • No, it was not the wanted solution :0)

    The company who developed the application uses the nRF tool too.
    But in our production setup we don't want to add a new specific programming interface for every device we are testing.

    But if there is no other solution, we may have to do it with this product.

    br
    Kaare
  • Hi Kaare,


    I just gave it a try, but "unfortunately" I cannot reproduce any issue regarding J-Flash + nRF51422 devices.

    Logoutput:

    Source Code

    1. Connecting ...
    2. - Connecting via USB to J-Link device 0
    3. - Target interface speed: 1000 kHz (Fixed)
    4. - VTarget = 3.300V
    5. - Initializing CPU core (Init sequence) ...
    6. - Initialized successfully
    7. - Target interface speed: 1000 kHz (Fixed)
    8. - Connected successfully
    9. Reading entire flash chip ...
    10. - 129 sectors, 2 ranges, 0x0 - 0x1FFFF, 0x10001000 - 0x100013FF
    11. - Start of preparing flash programming
    12. - End of preparing flash programming
    13. - Start of blank checking
    14. - End of blank checking
    15. - Start of blank checking
    16. - End of blank checking
    17. - Start of blank checking
    18. - End of blank checking
    19. - Start of blank checking
    20. - End of blank checking
    21. - Start of blank checking
    22. - End of blank checking
    23. - Start of restoring
    24. - End of restoring
    25. - Target memory read successfully. (132096 bytes, 2 ranges) - Completed after 1.996 sec
    26. Erasing chip ...
    27. - 129 sectors, 2 ranges, 0x0 - 0x1FFFF, 0x10001000 - 0x100013FF
    28. - Start of preparing flash programming
    29. - End of preparing flash programming
    30. - Start of determining dirty areas in flash cache
    31. - End of determining dirty areas
    32. - CPU speed could not be measured.
    33. - Start of erasing chip
    34. - End of erasing chip
    35. - Start of restoring
    36. - End of restoring
    37. - Erase operation completed successfully - Completed after 178.621 sec
    38. Erasing chip ...
    39. - 129 sectors, 2 ranges, 0x0 - 0x1FFFF, 0x10001000 - 0x100013FF
    40. - Start of preparing flash programming
    41. - End of preparing flash programming
    42. - Start of determining dirty areas in flash cache
    43. - End of determining dirty areas
    44. - CPU speed could not be measured.
    45. - Start of erasing chip
    46. - End of erasing chip
    47. - Start of restoring
    48. - End of restoring
    49. - Erase operation completed successfully - Completed after 0.193 sec
    50. Reading entire flash chip ...
    51. - 129 sectors, 2 ranges, 0x0 - 0x1FFFF, 0x10001000 - 0x100013FF
    52. - Start of preparing flash programming
    53. - End of preparing flash programming
    54. - Start of blank checking
    55. - End of blank checking
    56. - Start of blank checking
    57. - End of blank checking
    58. - Start of restoring
    59. - End of restoring
    60. - Target memory read successfully. (132096 bytes, 2 ranges) - Completed after 0.141 sec
    61. Checking if selected data fits into selected flash sectors.
    62. Programming and verifying target (132096 bytes, 2 ranges) ...
    63. - Start of preparing flash programming
    64. - End of preparing flash programming
    65. - Start of determining dirty areas in flash cache
    66. - End of determining dirty areas
    67. - CPU speed could not be measured.
    68. - Start of erasing sectors
    69. - Start of blank checking
    70. - End of blank checking
    71. - Start of blank checking
    72. - End of blank checking
    73. - Start of blank checking
    74. - End of blank checking
    75. - Start of blank checking
    76. - End of blank checking
    77. - Start of blank checking
    78. - End of blank checking
    79. - Start of blank checking
    80. - End of blank checking
    81. - Start of blank checking
    82. - End of blank checking
    83. - Start of blank checking
    84. - End of blank checking
    85. - Start of blank checking
    86. - End of blank checking
    87. - End of erasing sectors
    88. - Start of flash programming
    89. - Programming range 0x00000000 - 0x00007FFF (032 Sectors, 32 KB)
    90. - Programming range 0x00008000 - 0x0000FFFF (032 Sectors, 32 KB)
    91. - Programming range 0x00010000 - 0x00017FFF (032 Sectors, 32 KB)
    92. - Programming range 0x00018000 - 0x0001FFFF (032 Sectors, 32 KB)
    93. - Programming range 0x10001000 - 0x100013FF (001 Sector, 1024 Bytes)
    94. - End of flash programming
    95. - Flash programming performed for 2 ranges (132096 bytes)
    96. - 0x0000 - 0x1FFFF (128 Sectors, 128 KB)
    97. - 0x10001000 - 0x100013FF (001 Sector, 1024 Bytes)
    98. - Start of verifying flash
    99. - End of verifying flash
    100. - Start of restoring
    101. - End of restoring
    102. - Target programmed and verified successfully (CRC = 0xB535AA4E) - Completed after 2.556 sec
    Display All


    Screenshot:



    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Niklas

    Thanks for your feedback and test.
    Can you describe your setup and interface connections?

    I use :
    Flasher ARM production programmer
    J-Flash V5.92g (I can see you use V6)

    SWDCLK and SWDIO connected (And 3,3V and GND)
    RESET is NOT used (it is shared with SWDIO on the nRF chip somehow ??? )
    Boot pin on nRF chip not used.

    is this comparable to your setup?

    br
    Kåre

    The post was edited 1 time, last by Kaare Bach ().

  • Hi Kaare,


    SWDCLK and SWDIO connected (And 3,3V and GND)

    Sounds good enough at first glance.

    Could you please give the newest version of the J-Link software & documentation pack a try?
    V4.92 is quite old.

    If it does not work with the current version, could you please upload your J-Flash project file?

    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Typeo: We use V 5.92g...
    It should be quite new, as we upgraded to this version 2 months ago.

    I do not have the target PCB at me right now, but will have one later today.
    Then I will try with the newest version.

    If we have no success, I will post my project file here.

    br
    Kåre
  • Hi Kåre,

    are you sure about V5.92g?
    The "highest" V5 version I know are 5.12(release) and 5.41(beta)
    Edit: In the first post, you mentioned that you use 5.12g :)

    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.