[SOLVED] nRF51822 CFI Compliance Issue

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

  • [SOLVED] nRF51822 CFI Compliance Issue

    Good Morning

    I have a J-Link Plus Programming device that I have been using to
    program a Nordic nRF51822 device. I have been using it to program an Raytec
    module, which are based around the Nordic nRF51822 without any issues.



    As the Raytec modules are awkward to source, and we don't have a distributor in
    the UK, has to be sourced from the Far East which takes time to import and
    ship. I have just completed a PCB design for my project that had the Nordic
    nRF51822 QFN packages put down onto my PCB directly.



    The PCB's arrived yesterday, so I connected it up and tried to program the
    Nordic nRF51822 devices. J-Link Plus finds the device and goes through
    programming, but then throws an error that J-Link "ERROR: Could not find
    CFI compliant flash device" on the nRF51822 device please see log below:



    What I am struggling to understand is why the J-Link Plus can program the
    Raytec device without any issues, but my nRF51822 device it is failing at
    this point. Have I missed something, or is it something that I need to change
    in the Settings...
    Any thoughts why this may be could I have used the wrong nRF51822 as Nordic use 3 different variants, 128KB/16KB 256KB/16KB 128KB/32KB 256KB/32KB. I have used the 256KB/32KB on my design, the number on the Nordic device in the RayTec device is NS1822 QFACA1 164HX. I have been unable to indentify this part though through as web search.



    Connecting ...

    - Connecting via USB to J-Link device 0

    - Target interface speed: 2000 kHz (Auto)

    - VTarget = 3.044V

    - Executing init sequence ...

    - Initialized successfully

    - Target interface speed: 2000 kHz (Auto)

    - J-Link found 1 JTAG device. Core ID: 0x0BB11477 (None)

    - Connected successfully

    Checking if selected data fits into selected flash sectors.

    Programming target (164192 bytes, 6 ranges) ...

    - Start of preparing flash programming

    - End of preparing flash programming

    - Start of determining dirty areas in flash cache

    - End of determining dirty areas

    - CPU speed could not be measured.

    - Start of erasing sectors

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00000000 - 0x000007FF (002 Sectors, 2 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00001000 - 0x00004FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00005000 - 0x00008FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00009000 - 0x0000CFFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x0000D000 - 0x00010FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00011000 - 0x00014FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00015000 - 0x000153FF (001 Sector, 1024 Bytes)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00016000 - 0x00019FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x0001A000 - 0x0001DFFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x0001E000 - 0x00021FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x00022000 - 0x00025FFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x0003C000 - 0x0003FFFF (016 Sectors, 16 KB)

    - Start of blank checking

    - End of blank checking

    - Erasing range 0x10001000 - 0x100013FF (001 Sector, 1024 Bytes)

    - End of erasing sectors

    - Start of flash programming

    - Programming range 0x00000000 - 0x000007FF (002 Sectors, 2 KB)

    - Programming range 0x00001000 - 0x00008FFF (032 Sectors, 32 KB)

    - Programming range 0x00009000 - 0x00010FFF (032 Sectors, 32 KB)

    - Programming range 0x00011000 - 0x000153FF (017 Sectors, 17 KB)

    - Programming range 0x00016000 - 0x0001DFFF (032 Sectors, 32 KB)

    - Programming range 0x0001E000 - 0x00025FFF (032 Sectors, 32 KB)

    - Programming range 0x0003C000 - 0x0003FFFF (016 Sectors, 16 KB)

    - Programming range 0x10001000 - 0x100013FF (001 Sector, 1024 Bytes)

    - End of flash programming

    - Flash programming performed for 5 ranges (167936 bytes)

    - 0x0000 - 0x07FF (002 Sectors, 2 KB)

    - 0x1000 - 0x153FF (081 Sectors, 81 KB)

    - 0x16000 - 0x25FFF (064 Sectors, 64 KB)

    - 0x3C000 - 0x3FFFF (016 Sectors, 16 KB)

    - 0x10001000 - 0x100013FF (001 Sector, 1024 Bytes)

    - Start of restoring

    - End of restoring

    - Start of determining flash info (Bank 1 @ 0x00000000)

    - ERROR: Could not find CFI compliant flash device

    - Error while determining flash info (Bank 1 @ 0x00000000)

    - End of determining flash info

    - Flash bank info:

    - 1 * 0 bytes @ 0x00000000

    - ERROR: Failed to program target

    Disconnecting ...

    - Disconnected
  • Hello,

    Thank you for your inquiry.
    It looks like your J-Flash project setup is incorrect.
    Could you try the attached project?
    Does that solve the issue for you?

    Best regards,
    Nino
    Files
    • nRF51.jflash

      (1.76 kB, downloaded 548 times, last: )
    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.