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

System crash when both use softdevie and spi

Dear all,

My chip is nrf52832, and sdk version is SDK12.1.0_0d232a. And tried to use ble service and spi master function.

I create a timer to send spi command every 4 ms.

void spi_master_init(void) {

nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.ss_pin           = SPI_SS_PIN;
spi_config.miso_pin         = SPI_MISO_PIN;
spi_config.mosi_pin         = SPI_MOSI_PIN;
spi_config.sck_pin          = SPI_SCK_PIN;
spi_config.frequency        = NRF_DRV_SPI_FREQ_8M;
spi_config.irq_priority     = 6;

APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler));

}

static void spi_send_handler(void * p_context) {

if(spi_xfer_done) {

    memset(spi_rx_buf, 0, spi_length);

    nrf_drv_spi_transfer(&spi, data_tmp, spi_length, spi_rx_buf, spi_length);

    spi_xfer_done = false;

}

}

void spi_event_handler(nrf_drv_spi_evt_t const * p_event) {

if (spi_rx_buf[0] != 0)

{
	/*
	command and request data
	*/
}

spi_xfer_done = true;

}

int main(void) { bool erase_bonds;

APP_ERROR_CHECK( NRF_LOG_INIT(NULL));

timers_init();

nrf_delay_ms(3000);

buttons_leds_init(&erase_bonds);

if (erase_bonds)
{
    NRF_LOG_INFO("Bonds erased!\r\n");
}

ble_stack_init();

peer_manager_init(erase_bonds);

db_discovery_init();

spi_master_init();

hrs_c_init();

application_timers_start();

gap_params_init();
conn_params_init();
services_init();
advertising_init();

adv_scan_start();

for (;;)
{
    if (NRF_LOG_PROCESS() == false)
    {
        // Wait for BLE events.
        power_manage();
    }
}

}

After some times, the system will crash.

If I request long data or send command faster. The number of occurrences will increased. It look like the spi handler was Interrupted by softdevice.

And I try to use high priority or low frequence, it still not use.

It will stopped at hardfault.

Any suggestions or pointers are very much appreciated.

Thanks!!!!

Related