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, To give you an update, this is what happens when I call "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);" in s110, SDK10.0 version the program flow never returns back. When I hit the halt button and see under Peripherals, System Viewer, clock (in keil), I see the following: LFCLKRUN: STATUS: 1: Triggered = Task LFCLKSTART has been triggered; LFCLKSTAT: 0x00010000: SRC: 0: RC = Internal 32KHz RC Oscillator running and generating the LFCLK clock (THIS NEEDS TO BE 1: XTAL - EXTERNAL 32KHZ XTAL OSCILLATOR RUNNING, right?); STATE: 1: Running = LFCLK clock running; LFCLKSRCCOPY = 0x00000001: SRC: 1: Xtal = External 32KHz crystal. LFCLKSRC: 0x00000001: SRC = 1: Xta; = External 32KHz crystal; XTALFREQ = 0xFFFFFFFF

Reply
  • Hi RK, To give you an update, this is what happens when I call "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);" in s110, SDK10.0 version the program flow never returns back. When I hit the halt button and see under Peripherals, System Viewer, clock (in keil), I see the following: LFCLKRUN: STATUS: 1: Triggered = Task LFCLKSTART has been triggered; LFCLKSTAT: 0x00010000: SRC: 0: RC = Internal 32KHz RC Oscillator running and generating the LFCLK clock (THIS NEEDS TO BE 1: XTAL - EXTERNAL 32KHZ XTAL OSCILLATOR RUNNING, right?); STATE: 1: Running = LFCLK clock running; LFCLKSRCCOPY = 0x00000001: SRC: 1: Xtal = External 32KHz crystal. LFCLKSRC: 0x00000001: SRC = 1: Xta; = External 32KHz crystal; XTALFREQ = 0xFFFFFFFF

Children
No Data
Related