Other Parts Discussed in Thread: SYSBIOS
Tool/software: TI-RTOS
Dear,
We’re using Piccolo F28069 DSP in our project, which firmware platform is TI SYS/BIOS – version 6.50. The ADC ISR is 35KHz, and there will be Event post or Swi post from ADC ISR to tasks in every 20ms.
As I found, sometimes Event_post() or Swi_post() will take long time, which impacts the normal ADC ISR frequency - 35KHz. In this case, it’ll lose one ADC ISR. If Event or Swi is posted from task, it seems no such issue happens.
In bad case, Eg., Event_post() takes 45us and ADC ISR runs for 60us, Swi_post() takes 56us and ADC ISR runs for 70us, which are more longer than normal time.
The test code is as follows:
#pragma CODE_SECTION("ramfuncs");
__interrupt void adc_ISR( void )
{
GPIO_ISR_HIGH();
// Other code . . . . . .
if(AC_zero_crossed) // 20ms period
{
GPIO_POST_HIGH();
Event_post(TASK_EVENT_PFC, EVENT_ID_PFC_UTILITYZERO);
GPIO_POST_LOW();
}
// Other code . . . . . .
GPIO_ISR_LOW();
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; // Clear ADCINT1 flag reinitialize for next SOC
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;// Clear PIE acknowledge bit for INT1
}
Could you please help to see this issue? Thanks!
Teasir Chen