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

Can Internal RC be used for BLE comms?

MS76SF2_SCH_V12.pdfHi, I am using SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL); for ble_Stack_init() because the off the shelf board (not from Nordic) goes into a never ending loop when SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL) is used. The external crystal does produce clock signals, but I think the loading capacitors are not right. Anyway, if I use NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, will this RC clock be accurate enough to keep the BLE connection (I am basically using ble_app_uart as base) going? Another question is, will the EMC testing pass with NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM as clock source? Thanks.

Parents
  • Hi RK, you are right. After I used start up code, it worked. This is what I did:

    Step 1: Start HF clock (from Xtal ) manually by doing this: NRF_CLOCK->EVENTS_HFCLKSTARTED = 0; NRF_CLOCK->TASKS_HFCLKSTART = 1;

    	while(NRF_CLOCK->EVENTS_HFCLKSTARTED == 0)
    	{
    	}    
    	//till this manually start HFClk
    

    Step 2: Synthesise the LF clock from the started HF clock by doing this: // Initialize SoftDevice. SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL);

  • Hi RK, as you can see in the attached schematics from the 3rd party manufacturer, there is no external 32KHz oscillator. There is only 16MHz oscillator. Will this be the reason why "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);" never returns back - because there is no LF Xtal oscillator(32KHz)? In this case, would this : "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION, NULL);" be the best option to use? (Since you do not recommend starting 16MHZ xtal oscillator first - use this as HF clock and then use SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL);)

Reply
  • Hi RK, as you can see in the attached schematics from the 3rd party manufacturer, there is no external 32KHz oscillator. There is only 16MHz oscillator. Will this be the reason why "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);" never returns back - because there is no LF Xtal oscillator(32KHz)? In this case, would this : "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION, NULL);" be the best option to use? (Since you do not recommend starting 16MHZ xtal oscillator first - use this as HF clock and then use SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL);)

Children
No Data
Related