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.

TMS320F280045: Problem about the use of DCC

Part Number: TMS320F280045

 I use INTOSC1 as DCCCLKSRC0 and SYSCLK as DCCCLKSRC1, This means comparing the frequency error between INTOSC1 and SYSCLK. Recently,a device display a DCC error, so I carefully studied the use of DCC. My understanding of this passage: if I want to monitor the frequency of SYSCLK, i need to  set  EXTERAL-XTAL as DCCCLKSRC0 because I use XTAL as the source of PLL. I think it's comparing myself to myself Because SYSCLK is multiple by PLL, in brief, SYSCLK is from XTAL.But  when i use INTOSC1 as DCCCLKSRC0, if  detect a error ,i can not  confirm who is the bad source.  How to choose for  DCCCLKSRC0 when i want to monitor SYSCLK ??? Thanks!

  • Hello,

    You're right in surmising that if you use XTAL as DCCCLKSRC0, you might not be able to detect a fault in the crystal itself since that is the PLL clock source. This is not always the case though -- if there were to be a total failure of the crystal (or even a large enough frequency drop), the PLL would go into limp mode and output a slow frequency, somewhere between 30 and 70MHz. This would still cause the DCC to generate an error.

    That said, to cover the entire clock path, it is best to use INTOSC1 as the reference clock source. INTOSC1 is the failsafe clock when there is a system clock failure, and is what the system switches to when the MCD circuit detects a failure for instance. The only "downside" of INTOSC1 is that it has a lower accuracy spec (3%), which you need to reflect in your DCC counter values.

    Best regards,
    Ibukun

  • Thanks for your answer.When I used INTOSC1 as DCCCLKSRC0 and detected a DCC failure, did that mean there must be a problem with XTAL? Does high temperature cause excessive error in INTOSC1?

  • It is possible that you have configured the DCC counters for a tolerance that exceeds the accuracy limit of INTOSC1. Are you using DCC_continuousMonitor()?

    Here's an example of using DCC_continuousMonitor to monitor a clock for a drift of 1.5% or more:

    DCC_continuousMonitor(DCC0_BASE, DCC_COUNT1SRC_PLL, 200.0f, DCC_COUNT0SRC_INTOSC1, 10.0f, 3.0f, 1.5f, 100.0f);

    Note that the 6th argument is the tolerance for the monitoring clock and is set to 3%.

  • I'm sure my configuration is fine.My question is whether the fault detected by DCC is due to the excessive error of INTOSC1 caused by high temperature?Can I trust INTOSC1 100%? I didn't find any details for INTOSC1

  • Can you confirm the counter values you used in your application?

  • Yes, i'm sure.. The DCC of most devices is normal, but two devices reported DCC failure recently. I suspect it is caused by the high temperature, so I want to confirm the attribute of INTOSC1 under the high temperature.

  • Sorry, I meant I would like to review the actual counter values you programmed.