nrf52810 not ble advertising.. help me

Hello, I'm currently implementing BLE after I made the NRF51810 custom board.
We are testing with the BLE example BLE UART with SDK 17.1.0 VER.

The current setting is as follows.
Soft device: s112_nrf52_7.2.0_soft device.hex
Firmware: ble Uart example 10040e

sdk_config.h
1. NRFX_CLOCK_Activation 1
2. 2. NRFX_CLOCK_CONFIG_LF_SRC 0
3. NRF_CLOCK_Activation 1
4. 4. LOCK_CONFIG_LF_SR 0
5. 5. 5. NRF_SDH_CLOCK_LF_SRC 0
6. 6. 6. NRF_SDH_CLOCK_LF_RC_CTIV 16
7. 7. 7. NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2
8. NRF_SDH_CLOCK_LF_Accuracy 1

The code seems to be working normally, but Bluetooth is not advertising.
I'd appreciate it if you could help me with what I can try.

<code>

int main(void)
{

////bool erase_bonds;

//Initialize.
uart_init();
printf("\r\2. uart_init.\r\n");
log_init();
printf("\r\3. log_init.\r\n");
timers_init();
printf("\r\4. timers_init.\r\n");

power_management_init();
printf("\r\6. power_management_init.\r\n");
ble_stack_init();
printf("\r\7. ble_stack_init.\r\n");
gap_params_init();
printf("\r\8. gap_params_init.\r\n");
gatt_init();
printf("\r\9. gatt_init.\r\n");
services_init();
printf("\r\10. services_init.\r\n");
advertising_init();
printf("\r\11. advertising_init.\r\n");
conn_params_init();
printf("\r\12. conn_params_init.\r\n");

////// Start execution.
printf("\r\nUART started.\r\n");
NRF_LOG_INFO("Debug logging for UART over RTT started.");
advertising_start();
printf("\r\13. advertising_start.\r\n");


//// Enter main loop.
for (;;)
{
idle_state_handle();
}

}

<circuit diagram>





  • Hello,

    SDK configuration looks good as you dnt have external LF. 

    ''The code seems to be working normally, but Bluetooth is not advertising.'' - It seems like high frequency crystal issue. Did you solder XC1 and XC2 to the board properly?

  • Thank you for your answer. My current account is locked, so I'm replying to you by creating another ID.
    I misconfigured sdk.
    pages xl1 and xl2 are not used because they refer to the reference data sheet circuit diagram.
    I don't have crystals for xl1 and xl2 32,768 RTC. I'm using them now as pins for other uses instead.
    Based on this, I have configured SDK_config with the current circuit diagram. Current
    1. 1. NRFX_CLOCK_Activation 1
    2. 2. 2. NRFX_CLOCK_CONFIG_LF_SRC 0
    3. 3. NRF_CLOCK_Activation 1
    4. 4. 4. LOCK_CONFIG_LF_SR 0
    5. 5. 5. 5. NRF_SDH_CLOCK_LF_SRC 0
    6. 6. 6. 6. NRF_SDH_CLOCK_LF_RC_CTIV 16
    7. 7. 7. 7. NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2
    8. 8. NRF_SDH_CLOCK_LF_Accuracy 1
    I knew this was wrong.

    I've configured it to use xtal. I don't know if it's correct, but..
    I would appreciate it if you could let me know how to configure it based on the current circuit diagram. After doing sdk_config as I currently thought

    When you build and run after the configuration
    Power_management_init(); does not go to the next.

  • 그리고 XCl1 (xtal1), xcl2 (xtal2)가 제대로 납땜 된 것 같습니다. 검증은 Arduino IDE를 사용하여 테스트되었습니다. 크리스탈이 제대로 납땜되어 있기 때문에 Serial.print가 터미널에 제대로 인쇄됩니다. 이것은 크리스탈이 32mhz를 mcu 측에 제대로 전달하고 있음을 의미합니다

  • Edit: looks like this is what you have, but try placing at very top of sdk_config.h

    Try this at top of sdk_config.h, clock accuracy must be 500ppm for internal RTC (no 32kHz crystal):

    // NO_32_KHZ_CRYSTAL
    #define NRFX_CLOCK_CONFIG_LF_SRC         0
    #define CLOCK_CONFIG_LF_SRC              0
    #define NRF_SDH_CLOCK_LF_SRC             0
    #define NRF_SDH_CLOCK_LF_RC_CTIV        16
    #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV    2
    #define NRF_SDH_CLOCK_LF_ACCURACY        1 // <1=> NRF_CLOCK_LF_ACCURACY_500_PPM

  • hello  , I'm also implementing BLE after making a custom NRF52810 board. We are testing with the BLE UART example from SDK 17.0.2, and it is not working. The Bluetooth connection disconnects after a few seconds from establishing a connection and indicates a fatal error. I am using an internal oscillator like yours. Can you provide the steps you followed to build and flash the code?

Related