This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Sys/Bios Scheduling Issue

Other Parts Discussed in Thread: TMS320F28335

Hi All,

I am using TMS320F28335 in my project on CCS5.2 SYS/BIOS.

I have some HWI,SWI,Task and Some board interface.

Highest priority is assigned to ADC and I am using PLL(Phase locked loop) function call in adc.

Sampling rate is 10200Hz.i.e for every 98 us ADC will get an interrupt.

Our PLL parameters are fluctuating and are not stable when we interface all the modules.But when we comment an interrupt lower than the ADC the PLL parameters are found stable.

I am suspecting some Priority preemption issues,Can anybody have some ideas about this issue.

Thanks,

manju

  • Hi manju,

    Are you setting the maskSetting field in your Hwi_Params when you create the ADC interrupt? Your problem sounds like it could be caused by leaving maskSetting as the default "MaskingOption_SELF".

    If you want ADC to be the highest priority and want to make sure all other interrupts are disabled when it runs, set maskSetting field to "MaskingOption_ALL." I would suggest looking at the Hwi section in the SYS/BIOS API reference in the CCS Help Contents window for more info on the Hwi_Params.

    Thanks,
    Whitney

  • Hi Whitney,

    On behalf of manju iam posting the following query

    We configured two HW ISR’s which are having different priority. We initialized ADCISR and SCIC_TX_ISR. ADCISR(Start of conversion through PWM) will occur for every 100usec. We kept while(1) in SCIC_TX_ISR, code under ADCISR should get executed due to preemption (because ADCISR having highest priority than SCIC_TX_ISR).

     For Both ISR’s we selected MakingOption_SELF. Is there any option to select Interrupt preemption in configuration file(.cfg in SYS/BIOS GUI).

  • Hi villuribhanu,

    This post gives a nice explanation of the maskSetting. They are using a different device, but to my understanding, the same explanation applies. I think you may want to try selecting MaskingOption_ALL for your ADCISR and see if that helps.

    Here's where you can select it using the GUI.

    Whitney

  • Hi,

    Even after changing to MaskOption_ALL it is noit working. Whether TMS320F28335 will support interrupt preemption while using SYS/BIOS.

    Thanks & Regards,

    Bhanu

     

  • Hi Bhanu,

    Hwis can be preempted while using SYS/BIOS. I'm having a little trouble completely understanding your problem. I'm guessing you want to make sure that the ADCISR can preempt the SCIC_TX_ISR, but do not want the SCIC_TX_ISR to be able to preempt the ADCISR, correct?

    I suggest studying this wiki page, particularly the sections about interrupts. Note that it says that the "priority parameter for the Hwi.Params structure passed to Hwi_create() is ignored for 28x devices."  To make sure that ADCISR cannot be preempted by anything, set it's maskSetting to MaskingOption_ALL. To make sure that SCIC_TX_ISR can preempt ADCISR, leave SCIC_TX_ISR's masking option to _SELF.

    If the above doesn't make things any clearer, please try explaining your problem in more detail.

    Thank you for your patience.

    Whitney