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
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