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: Cannot properly use DCC for fact clock failure detections

Part Number: TMS320F28388D
Other Parts Discussed in Thread: SYSCONFIG

Hi,

I'm trying to use the DCC module on the F28388 to very quickly detect clock failures:

  • SYSCLK is 100MHz,
  • CLOCK0 is 25 MHz, coming from OUTPUTXBAR 16
  • CLOCK1 is 25 MHz, coming from OUTPUTXBAR 15

I am using DCC0 in continuous mode to check that CLOCK0 and CLOCK1 are running at the same speed, with a very high accuracy (tolerance of 0.002%) -> no problem with that, the formulas provided in the TRM are working just fine.

Then I want to use DCC1 (also in continuous mode) to quickly check when one of the clocks is failing, for that I am using very short counters and valid window:

  • Counter0 = 2, Valid0 = 4, Counter1 = 4 --> this doesn't work, even when both clocks are fine, I get the interrupt with the error flag raised (and when I read register values inside the interrupt, I see Counter0 = 0, Valid0 = 0, Counter1 = 0)

Other try with more margin so that it fully fits the DCC error of 16 clock cycles: 

  • Counter0 = 16, Valid0 = 32, Counter1 = 32 --> same issue, after a few ms I get the error interrupt, with Counter0 = 0, Valid0 = 0, Counter1 = 0

I checked with an oscilloscope that both my clock signals are fine when they arrive to the 28388 chip. How is possible to see an error with these counter/window values? The margin of 16 counts on both sides seems huge, I should not get an error interrupt. Is there any limitation on how we can use the DCC module? Or an issue in the DCC module?

Best regards,

Stephane

  • Hello Stephane,

    I recommend using the built in DCC calculator in SysConfig to compute your counter values, or use the DCC_continuousMonitor() function. For the arguments to this function, you can specify tolerance argument as 0 and frequency error to be something really high like 75%. The function will automatically calculate the correct counter values and set up the DCC accordingly.

    If you prefer to set counter values manually, please use the DCC calculator in SysConfig, or follow the formulas specified in the device TRM DCC chapter. There are several factors (such as built in digitization error) to consider when computing the counter values in order to get a reliable error signal.

    Please let me know if you have specific constraints in response time and you have trouble meeting those constraints with the methods I have just described.

    Best regards,
    Ibukun