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

SDK15.2 FreeRTOS Consumes high current when SD enabled

I've noticed during a project migration that the FreeRTOS on SDK 15.2 seems to consume quite alot of current, 0.8mA when the SoftDevice is enabled.  I've compared to the example HRS FreeRTOS project which also consumes the same high current of 0.8mA  regardless of the Advertising Interval.  This suggests a possible bug in the SDH FreeRTOS module.  I've migrated a project from SDK 12.3 to SDK 15.2. In SDK 12.3 I did not see this order of magnitude of current consumption.  This magnitude of consumption suggests that possible TIMER0 is not disabled between Radio events?    

I've also added the race-condition noted in nrf_sdh_freertos.c 

void SD_EVT_IRQHandler(void)
{
BaseType_t xYieldRequired = pdFALSE;

if(!m_task_created) return;

//xYieldRequired = xTaskResumeFromISR( m_softdevice_task );
vTaskNotifyGiveFromISR(m_softdevice_task, &xYieldRequired);

if( xYieldRequired == pdTRUE )
{
/* Switch the task if required. */
portYIELD_FROM_ISR(xYieldRequired);

}

Any ideas what could cause this, or what has changed from SDK 12.3?

Parents Reply Children
Related