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

DFU Bootloader does not work on rev 2 nrf51822

I have been unable to get an ISP130301 module to work with the example dfu s110 bootloader. Dual band, single bank, all of the sdk and SD variants. I've followed the tutorial.

SD110 + application by itself works fine.

Am I correct in believing that I should discard my rev 2 ISP130301 modules and replace with rev 3 devices?

Parents
  • Hi, DFU does work with rev 2, and the only required change I can think of is to change the linker settings(true for the older Development kits with rev 2). SDK v.7 and later are configured for the nRF51 DK kit and dongle which has the xxAC chip variant with 32K of RAM as opposed to 16K with the other variants (overview of chip variants).

    The UICR.BOOTLOADDERADDR seems to be set correct as you are able to break in the bootloader. The MBR will not forward the execution to the bootloader unless this is set.

    My suggestion would be to try once more with a clean copy of the SDK 8.1 without the Keil packs system. I.e., download the SDK.zip without the _packs postfix at developer.nordicsemi.com/. Then only adjust the RAM settings, and also use the internal RC oscillator in if you do not have an external low frequency clock source on your module (see ble stack init routine). After downloading the softdevice and bootloader, you should see the device advertising as "dfutarg".

  • Thanks for your comment. Funny you should mention using the RC oscillator; looking at the ble stack init of the hrs application (which works) and the bootloader (which doesn't), I see there is a difference in the sequencing of oscillator config. My setup is an ISP130301 module on thin wires to a bus pirate; it may be that there is a issue with the LF oscillator startup. Low frequency crystals can be fussy, and either take a very long time to startup, or not start at all.

    I'm building my first PCB today, I will try that before messing with the RC osc. I've been taking the 16K RAM into account, by setting the bootloader ram to 0x20002000, size 0x2000.

    Thanks again, Mike.

Reply
  • Thanks for your comment. Funny you should mention using the RC oscillator; looking at the ble stack init of the hrs application (which works) and the bootloader (which doesn't), I see there is a difference in the sequencing of oscillator config. My setup is an ISP130301 module on thin wires to a bus pirate; it may be that there is a issue with the LF oscillator startup. Low frequency crystals can be fussy, and either take a very long time to startup, or not start at all.

    I'm building my first PCB today, I will try that before messing with the RC osc. I've been taking the 16K RAM into account, by setting the bootloader ram to 0x20002000, size 0x2000.

    Thanks again, Mike.

Children
No Data
Related