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.

TMS320F28388D: CM timer interrupts used by SYS/BIOS

Part Number: TMS320F28388D
Other Parts Discussed in Thread: SYSBIOS

Hello there,

I'm working on a SYS/BIOS application on the CM. In that application I want to use some timer interrupts (TIMER0/1/2 or SYSTICK), but one or more are probably already in use by SYS/BIOS in its core or in the Timer/Clock modules (when used). How can I tell which ones are used in SYS/BIOS, and which ones I'm free to use in my application? Is this documented anywhere for each specific platform?

Thanks and kind regards,
Arjan

  • It's configurable--if you look at the Clock and Timer module settings, you'll see a "Timer Id" field that lets you choose.

    If you haven't seen it already, the API documentation for SYS/BIOS can be found here.

    Whitney

  • Hi Whitney,

    So a "Timer id" field value of 0/1/2 refers directly to the CM's TIMER0/1/2 peripherals and their interrupts?

    In the API documentation there's a link to the 'Delegate mappings' that describe the target Timer implementation: Supported Texas Instruments Devices and their proxies.

    For the TMS320F2838X, both Clock and Timer modules refer to the ti.sysbios.family.arm.m3.Timer module. There it says "The Cortex M3 Timer Manager utilizes the M3's internal NVIC SysTick Timer". It implies that the SysTick timer interrupt is the only timer peripheral that is used for Clock and Timer functions.
    Or is the SysTick timer only used for the periodic system tick (for Clock functions), and are Timer0/1/2 used for the Timer functions? So I should set Timer_NUM_TIMER_DEVICES to 3 in that case?

    Thanks,
    Arjan

  • That's strange. I would have expected that it would use 'ti.sysbios.family.arm.f2838x.Timer' for Timer. You might still be able to use it by putting it in the cfgScript directly. Something like:

    var TimerF2838x = xdc.useModule('ti.sysbios.family.arm.f2838x.Timer');
    
    var timer38xParams = new TimerF2838x.Params();
    var timer38x = TimerF2838x.create(2, "&testTimerFxn", timer38xParams);

    Whitney

  • I need to learn to find my way around the API doc, I had totally overlooked ti.sysbios.family.arm.f2838x. Apparently some peripherals are covered by ti.sysbios.family.arm.f2838x, and some by the more generic ti.sysbios.family.arm.m3. Maybe the page "Supported Texas Instruments Devices and their proxies" needs updating?

    Anyway for now I don't need elaborate timer functions in my application, only some timeout checks, and I can simply use the Clock tick counter for that (Clock_getTicks()). When the need arises I will try your suggestion with ti.sysbios.family.arm.f2838x.Timer.

    Thanks,
    Arjan