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

NRf51822 qfaa bootloader settings not working

I am trying to implement DFU for nrf51822 qfaa module
I have used sdk secure boot-loader example.
Its working on nrf51DK

but not working on nrf51822 qfaa module
sdk : 12.3.0

Parents
  • HI Dhaval, 

    does the nRF51822 module have an external 32kHz crystal? If not, then you need to change the LFCLK configuration to use the internal RC Oscillator, i.e. 

    #define NRF_CLOCK_LFCLKSRC      {.source        = NRF_CLOCK_LF_SRC_RC,            \
                                     .rc_ctiv       = 16,                                \
                                     .rc_temp_ctiv  = 2,                                \
                                     .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}
    Best regards
    Bjørn
  • It worked with my module when I changed ram as below

      FLASH (rx) : ORIGIN = 0x35C00, LENGTH = 0xA000

      /** RAM Region for bootloader. This setting is suitable when used with s110, s120, s130, s310. */
      RAM (rwx) :  ORIGIN = 0x200025e0, LENGTH = 0x1a02

      /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
       *  from application to bootloader when using buttonluss DFU OTA.
       */
      NOINIT (rwx) :  ORIGIN = 0x20003fe2, LENGTH = 0x80

      /** Location of bootloader setting in at the last flash page. */
      BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0003FC00, LENGTH = 0x0400

      /** Location in UICR where bootloader start address is stored. */
      UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04


    but on OTA inrf toolbox giving me error upload failed gatt error

    I have generated package using application hex and private key using following command

    nrfutil pkg generate --hw-version 51 --application-version 1 --application testFirmware\mainApp.hex --sd-req 0x87 --key-file keys\private.pem OTATest.zip

Reply
  • It worked with my module when I changed ram as below

      FLASH (rx) : ORIGIN = 0x35C00, LENGTH = 0xA000

      /** RAM Region for bootloader. This setting is suitable when used with s110, s120, s130, s310. */
      RAM (rwx) :  ORIGIN = 0x200025e0, LENGTH = 0x1a02

      /** Location of non initialized RAM. Non initialized RAM is used for exchanging bond information
       *  from application to bootloader when using buttonluss DFU OTA.
       */
      NOINIT (rwx) :  ORIGIN = 0x20003fe2, LENGTH = 0x80

      /** Location of bootloader setting in at the last flash page. */
      BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0003FC00, LENGTH = 0x0400

      /** Location in UICR where bootloader start address is stored. */
      UICR_BOOTLOADER (r) : ORIGIN = 0x10001014, LENGTH = 0x04


    but on OTA inrf toolbox giving me error upload failed gatt error

    I have generated package using application hex and private key using following command

    nrfutil pkg generate --hw-version 51 --application-version 1 --application testFirmware\mainApp.hex --sd-req 0x87 --key-file keys\private.pem OTATest.zip

Children
Related