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

nRF52810QCAA stop at sd_softdevice_enable

Dear all,

  Sorry for asking an old question but I can't find any similar situation in the forum.

  I now have 3 boards: 1 is 52810 EVB, 1 is 52810 QFAA ( 48 pins) custom made module which totally same as the ref circuit in datasheet. and 1 is 52810 QCAA (32 pins)custom made module. I run the example program ble_app_hts in SDK 14.2.0 and both EVB & 48 pins ok ( can see Bluetooth Nordic_HTS in Android) but 32 pins can't. So I debug with J-Link & Keil and have the following finds:

  1.  32 pins has no signal in either 32.768KHz & 32MHz (only DC @ 32.768KHz), which 48 pins has until it goto sleep. But both the osc haven't shorted to ground nor shorted to each other
  2.  Tried example uart. Both can pint out char and neither of them have clock signal @ osc
  3.  Copied the uart-related code to the ble program. Both can pint out char. But 32 pin will stop & reset at ble_stack_init().
  4.  Debug with J-Link & Keil and find that it stop @ sd_softdevice_enable() (Maybe WDT timeout trigger reset?). But can't go deeper as it is inside softdevice

  5.  Created custom_board.h & removed all non-exist pins in 32 pins (eg P0.07). Still reset
  6.  Changed the LCLK source to NRF_CLOCK_LF_SRC_RC & NRF_CLOCK_LF_SRC_SYNTH in sdk_config.h & custom_board.h. 48 pins can works with NRF_CLOCK_LF_SRC_XTAL & NRF_CLOCK_LF_SRC_SYNTH. But 32 pins will reset in this 2 case, even changed rc_ctiv = 16 & rc_temp_ctiv = 2
    Fullscreen
    1
    2
    3
    4
    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_SYNTH, \
    .rc_ctiv = 16, \
    .rc_temp_ctiv = 2, \
    .accuracy = NRF_CLOCK_LF_ACCURACY_500_PPM}
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Fullscreen
    1
    2
    3
    #ifndef NRF_SDH_CLOCK_LF_SRC
    #define NRF_SDH_CLOCK_LF_SRC 2
    #endif
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7. Change project setting to DEVELOP_IN_NRF52810. No different
  8. Use default starting point for ROM (0x18000, size = 0x18000) & RAM (0x20001B80, size = 0x4480 ). No different
  9. Remove DC-DC related LC circuit. No different

  My question is: What is the difference between 32 pins & 48 pins?

Best Regards,

Sin Shukei

Parents
  • Have you tried this debugging method, to check if any errors are returned? Which Softdevice version are you using? Do you have some schematics/layout for the boards, that we can review?

    1. I guess this is with external crystal? Are you able to see any error codes if you test with clock source set to RC?
    2. You did actually write the SDK version, I was wondering if you use s132 or s112 softdevice, and what version.
    3. Is the boards identical except from the chip package size?
  • 1. You won't see any errors if the function call does not return. Can you test with the below clock config, and pass this to the softdevie enable function? Then check with the debugging method I linked above, if you see any error codes.
     

    Fullscreen
    1
    2
    3
    4
    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
    .rc_ctiv = 16, \
    .rc_temp_ctiv = 2, \
    .accuracy = NRF_CLOCK_LF_ACCURACY_500_PPM}
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    2. Thanks. You did write which SDK version you were using in the question, but not what softdevice version.

    3. Have you tried changing the oscillator(s), or made sure it is correctly mounted on the board?

Reply
  • 1. You won't see any errors if the function call does not return. Can you test with the below clock config, and pass this to the softdevie enable function? Then check with the debugging method I linked above, if you see any error codes.
     

    Fullscreen
    1
    2
    3
    4
    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
    .rc_ctiv = 16, \
    .rc_temp_ctiv = 2, \
    .accuracy = NRF_CLOCK_LF_ACCURACY_500_PPM}
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    2. Thanks. You did write which SDK version you were using in the question, but not what softdevice version.

    3. Have you tried changing the oscillator(s), or made sure it is correctly mounted on the board?

Children
No Data