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.

TMS320F280039C: The issue about system frequency

Part Number: TMS320F280039C

Hi Teams

We met another issue during testing XF280039C, that seems about the accuracy of the system frequency, and it cause the abnormal inverter control.

Here is the waveform about xlkout and switch frequency, from the waveforms, we can see the actual value is more than the expected by 0.45%.

We also check the external crystal, the frequency is 10MHz, that is normal.

Below is the configure code for system frequency and xlkout. Due to TIOS don’t support F280039C, and the main affect part is clock configuration. So we configurate cpu frequecy again when enterinto main(), that make TIOS can also work in F280039C, as below code.

Int main(void)
{
    xdc_runtime_Types_FreqHz cpufreq;

    InitSysCtrl();
    // Don't operate IER IFR Flag, Don't init PIE in SYSBIOS
    // Refreash the clock tick setting
    cpufreq.hi = 0;
    cpufreq.lo = 120000000L;
    BIOS_setCpuFreq(&cpufreq);
    Clock_tickReconfig();
    ...
    ...
    ...
    BIOS_start();    /* does not return */
    return(0);
}

Configurated the system frequency to 120MHz by using external crystal, And set xclkout to 30MHz.

Based on above info, please help to check the cause of the issue about accuracy of frequency, thanks in advance!

  • Hi Xiangwei,

    From the information provided: external crystal input frequency is 10MHz.  PLL multiplier is x12.  This would produce VCO clock of 10MHz*12 = 120MHz.  This VCO clock is out of spec.  See datasheet section "6.12.3.2.1.8 Internal Clock Frequencies".  VCOCLK should be between 220-600MHz.  Suggestion is to change the multiplier to 48 or 36 then have ODIV and/or PLLSYSDIV further divide VCOCLK to attain SYSCLK of 120MHz.

    Regards,

    Joseph

  • Hi Joseph,

    Thanks a lot, I configurated the system frequency as your suggestion, that changed the multiplier to 48, and changed ODIV to 4, as blow  code. The xlkout frequency and pwm frequency is expected value, and the inverter also work better than before.

        InitSysPll(XTAL_OSC, IMULT_48, REFDIV_1, ODIV_4, PLLCLK_BY_1, SYSCTL_DCC_BASE0);

    but there is still some abnormal on inverter control, and the same control code work normal on F28075, now we have to work hard to resolve it.

    I alway have a question about the configuration of system frequency. such as i want to set the system freuency to 120MHz, there are many methods by setting the multiplier ,REFDIV,ODIV,PLLCLK, but which one is best?

  • Hi Xiangwei,

    The critical parameter is VCOCLK, which has to be within 220-600MHz.  Placing the VCO target at the mid range level would be better options.  For the final SYSCLK target of 120MHz, The options for VCO are 480MHz (x48) and 360MHz (x36) which are around the mid range of VCOCLK.  Maybe you can play with the dividers to see which set would make your control more stable:

         -480MHz: ODIV=2, PLLDIV=2

         -360MHz: ODIV=1, PLLDIV=3 or ODIV=3, PLLDIV=1

    Regards,

    Joseph