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.

TMS320F28377S: CLA watchdog

Genius 5910 points

Part Number: TMS320F28377S

I got the following problem: Some times the CLA stops working, that result in a big short circuit. This is bad.

All the tasks stops working of a sudden.  Is there away to detect that the CLA is stopped in de main controller, so I can disable the outputs.

Thanks

  • If the CLA is stuck, it is possible that the MIRUN bit will be set and never clear. You can poll the MIRUN bit.

    Also, it may be that the MIRUN bit is 0 and never gets set if the CLA is not running. So, again you can check the MIRUN bit.

    I am not sure what your issue is, so wither may work for you.

    sal
  • Sal,
    Thanks for the reply. How do you now the CLA is between task or the CLA is stop working. (if MIOVF != 0 solve my issue)
  • Hi,

    That is a good question, but depends on your system.

    At some point the CLA is likely to stop running, unless you are constantly getting triggers and the tasks are long in execution. So, if MIRUN is never cleared, you could set up a timeout value in which case after the timer expired, you could reasonably assume there has been some corruption of CLA execution.

    We also provide the CLA STL which was designed for ISO 26262 and IEC 61508 compliance. You could use a diagnostic measure like the CLA STL.
    www.ti.com/.../spraci3.pdf
    www.ti.com/.../C2000-SAFETI-DIAGNOSTICS-LIB

    But, you should debug this first to determine what exactly is causing your issue.

    Hope this helps,
    sal
  • Hi,

    The CLA is a fancy interrupt controller so it is inherit event based. So there there are always changes switches between events when the CLA is stopped. Even for a really short time. So to verify the CLA is running you have to sample at 2x running frequency (nyquist). My fasted loop in the CLA is 250khz. So I have to sample at the main controller at least 500khz if the CLA is still running. That are a lot of resources for just checking the CLA is still working. and why use the CLA in the first place.

    I have 2 problems:

     - Verify that the CLA is working correctly because errors result in shorting the mains.

     -  Why does happens in the first place?  The controller is verify fast so why do I run out of time?

      I  noted some compiler optimization issues. So I have to write parts in assembly to optimize.

  • Please describe more specifically what you are trying to accomplish.

    The information you provided is general. With more specific questions, we can try to help you and help your understanding.

    If you can narrow down your problem, then we may be able to help.

    sal