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

After configured internal low frequency clock source,advertising stop but saadc still working

The program flow of the slave is to sample the analog signal source through the saadc and then send it to the host through the nus.
When debugging on nrf52dk, configure the chip to xtal mode and the program can run smoothly. But when the chip is configured as a 32.768k internal low-frequency clock source RC, after each reset, the broadcast signal appears for a while and disappears, but the saadc sampling continues to run. Why?
The strange thing is that the first run after programming the program is normal.

Parents
  • Hi

    Can you provide some information as to what error code you're seeing when the APP_ERROR_CHECK function terminates the program, as I think that will give us a pointer as to what's causing this. It seems very strange that the ADC should have any effect on the RC oscillator.

    Best regards,

    Simon

  • When the error occurs, I get the information as follows:

    m_data_data.fault_id == 0x00004001;   m_data_data.pc==0x0002C395;   m_data_data.error_info==0x2000DA10;

    m_data_data.p_file_name==main.c;   m_data_data.line_num==0x00000129;   m_data_data.err_code==0x00000008;

    the code of the line 292-298(DEC):

     

    static void adc_timer_handler(void * p_context)
    {
    		ret_code_t err_code;
    		NRF_LOG_INFO("SAADC loop.");
    		err_code = nrf_drv_saadc_sample(); 
    		APP_ERROR_CHECK(err_code);
    }

    When there is an error, the serial port usually gives out related error information, but it does not now.

    Another strange thing, the program will run normally a few times.

    I don’t know if this information is enough for your analysis. If you need any more information, please tell me.

    Thank you.

Reply
  • When the error occurs, I get the information as follows:

    m_data_data.fault_id == 0x00004001;   m_data_data.pc==0x0002C395;   m_data_data.error_info==0x2000DA10;

    m_data_data.p_file_name==main.c;   m_data_data.line_num==0x00000129;   m_data_data.err_code==0x00000008;

    the code of the line 292-298(DEC):

     

    static void adc_timer_handler(void * p_context)
    {
    		ret_code_t err_code;
    		NRF_LOG_INFO("SAADC loop.");
    		err_code = nrf_drv_saadc_sample(); 
    		APP_ERROR_CHECK(err_code);
    }

    When there is an error, the serial port usually gives out related error information, but it does not now.

    Another strange thing, the program will run normally a few times.

    I don’t know if this information is enough for your analysis. If you need any more information, please tell me.

    Thank you.

Children
No Data
Related