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.

CCS/TMS320C6743: SYS/BIOS clock configuration (OS tick)

Part Number: TMS320C6743
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hi, I'm just beginning with SYS/BIOS and the C6000 family. I cannot work out how the OS tick (which seems to be using the 64bit timer which is clocked from AUXCLOCK) decides what frequency it thinks AUXCLOCK is running at.

On my prototype board, this is 12MHz, but SYS/BIOS is assuming 24MHz as it has set the PRD to 24000 in order to give a 1ms system tick. Which naturally runs at half of the required tick rate.

I've looked through the configuration and searched through the SYS/BIOS and XDC library code, and cannot find anything that seems relevant.

I notice that the XGCONF editor has a "TimerProxy" section within the Clock options which hints at the ability to set a period for the timer, but setting these parameters don't seem to generate code that will compile.

Any pointers would be appreciated!

bios_6_76_01_12

xdctools_3_55_02_22_core

Thanks,

James

  • James,

    A good place where the clock and timers in BIOS kernel are explained is here:

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_how_to_guides.html#clocks-and-timers

    To locate the files that describe the defaults assumed, we provide a Timer mapping Html in the BIOS package that can be located here:

    bios_6_7x_xx_xx\packages\ti\sysbios\timers\timer64\doc-files\TimerTables.html

    For your usecase, In the ti.sysbios.timers.timer64.Timer module there is a module wide configuration parameter intFreqs[].  This parameter is an array of the lenght of the number of timers.  You can set this if your frequency is different from the default frequency.

        var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
        Timer.intFreqs[2].lo = 12000000;    // Setting Timer input to 12 Mhz.
        Timer.intFreqs[2].hi = 0;

    Hope this helps

    Regards,

    Rahul

  • Hi Rahul,

    Thank you very much for the quick reply and very useful information. I will bookmark the link for future reference. Part of my issue had been understanding when information is relevant to the c6000 platform, or whether it is only relevant to others.

    I find that adding the lines you mention to my configuration solves the issue (although I have to use timer index 0).

    Many thanks,

    James