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.

CAN stops at higher ambient temperature

Other Parts Discussed in Thread: TMS320F28035

Hello everyone,

I developed CAN application code for TMS320f28035(automative grade).

CAN settings:-

Baud rate - 500 kbps

SCC mode used

It was working fine at normal temperatures.But for my application i wanted to test my MCU at higher ambient temperature (full temperature range of MCU till 125 degree C).So i made a small enclosed chamber and placed my MCU inside it and also connected MCU CANTx and CANRx with CAN sniffer(http://www.peak-system.com/PCAN-USB.199.0.html?L=1 ). So what i have observed at higher ambient temperature CAN stops working.And then i decreased the temperature but it doesn't recovers.So it goes to non recoverable state.But after reset it starts working at decreased temperature. 

After searching about the issue,i found it in errata(sprz295m) along with its solution. I implemented solution mentioned in errata and fixed the problem.

But i have following questions in my mind to find root cause of the problem:-

1) Why CAN communication does not recovers at decreased temperature? i.e Why i have to reset the controller to recover the CAN?

2) Is it problem of mismatch of baud rate between PCAN and MCU or Is it CAN peripheral only stopped working at higher temperature ?

Regards

Siddharth

  • Siddharth,

    You've posted this same question several times. I've deleted your other posts. In the future, please do not post duplicate questions as it slows down tracking and searching for posts. I will assign experts to look into your question and all discussion on this topic will be on this thread.

    Elizabeth
  • Siddharth,

     

    1. Are you using the on-chip zero-pin oscillator? If so, are you periodically doing the calibration of the oscillator as explained in http://www.ti.com/lit/an/sprabi7a/sprabi7a.pdf ?
    2. Which erratum/workaround are you referring to in SPRZ295?
    3. Explain "Stops working". What stops working? Do you see the CAN signal out of CANTX pin? Have you measure the bit-time to check if it is 2 uS? 
    4. Do you know where the code is at high temperature? Do you have some kind of a hearbeat signal (say, toggling of a GPIO pin) in your application that indicates that the MCU is still executing code properly? 
    5. Are all the components on your board rated for 125'C operation? Is it possible that some other component (say, the CAN transceiver) is failing at high.temp, that you interpret as CAN failure?

     

    Please answer every one of the above questions clearly to take the debug forward..

  • Hi Hareesh Sir,

    Following are the answers to questions asked by you:-

    Ans 1) Yes i am using on chip zero pin oscillator(Internal Oscillator 1). So firstly when i implemented CAN application code for TMS320f28035 i didn't include any code for calibration of oscillator. In Silicon Errata of TMS320f28035, i found this solution of re calibrating the oscillator periodically ,so i implemented it in my codes and fixed the issue.

    Ans2) I am referring to Silicon Errata of TMS320f28035 (www.ti.com/.../sprz295m.pdf )

    Ans3) "Stop working" means data stop coming on PCAN from MCU. I didn't probe CAN Tx line but i probed CANH and CANL signals so i have seen these signals stops coming when data stops coming to PCAN. No i havent measured bit timing.I am using VP 232 as CAN transceiver.(www.ti.com/.../sn65hvd231.pdf)
    Ans4) Yes there is GPIO toggling using timers in my code .So at higher temperature where CAN data stops coming i have seen GPIO toggling is correct with correct timing received.

    Ans5) Yes all the components soldered are of automotive grade (rated at 125'C).So failure is not due to other components.

    Sorry for not providing some information in my previous post.I have tried to provide much information by answering all your questions.

    Sir i know the solution of re-calibrating the oscillator in order to solve CAN stopping at higher ambient.But i need to find root cause of this as Why only CAN stops at higher temperature and not other peripherals(Timers etc) and also Why it is non recoverable?

    Thanks

    Regards
    Siddharth
  • Ans 1) Yes i am using on chip zero pin oscillator(Internal Oscillator 1). So firstly when i implemented CAN application code for TMS320f28035 i didn't include any code for calibration of oscillator. In Silicon Errata of TMS320f28035, i found this solution of re calibrating the oscillator periodically ,so i implemented it in my codes and fixed the issue.

     

    Which issue?

     

    Ans2) I am referring to Silicon Errata of TMS320f28035 (www.ti.com/.../sprz295m.pdf )

     

    Again, which specific Advisory? Is it “Zero-Pin Oscillator: Modification to Oscillator Frequency Parameter”?

     

    So, your problem is that at high temperature, the CAN module suddenly stops transmitting and does not recover even when the temperature is lowered back.

     

    Questions:

     

    1. How many devices exhibit this problem? Is it possible for you to try a different board/device?
    2. Is this experiment repeatable? In other words, is the temperature at which communication stops the same every time you repeat this experiment? If so, what is that temperature?
    3. Am I correct that you start the experiment at a lower temperature and then gradually increase the temperature only to observe that the transmission stops?
    4. How about reception? Have you checked if the CAN module is capable of receiving? Just let the PCAN module transmit to the eCAN and toggle a GPIO pin every time a frame is received and now slowly increase the temperature.
    5. How many nodes are there in your setup? Is it possible that the node simply went bus-off? Are you able to examine the registers? If so, what is the value of CANMC.CCR?

    I hope the code correctly initializes those registers/bits that may have random values upon reset. The MSGID register is an example. I know you are having problems with transmission and not reception, but just wanted you to be aware.

  • HI Hareesh sir,

    Sorry for delay in answering to your questions due to couple of holidays.

    Sir i am referring to same issue that CAN stops at higher ambient temperatures and it never recovers from that state.

    "specific advisory" is "Using the Piccolo™ CAN Bootloader at High Temperature"

    Answers:-

    1) Yes sir,i have tried for different boards.In all boards i have faced this same issue.

    2) Yes experiment is repeatable. And every time it stops at same temperature which is around 93 degree C.

    3) Yes sir you are correct.We start my experiment at lower temperature and then increase the temperature slowly to observe the change in CAN communication .

    4) No sir i haven't checked the reception.Yes with my code it is capable of receiving but at higher temperatures i haven't verified whether it is receiving or not.

    5) Only one node - PCAN is connected to TMS MCU. Since our debugger is not rated for temperatures beyond 70 degree C so while increasing temperature inside thermal chamber where MCU is placed i didn't connected any debugger to it.Therefore i cannot monitor CANMC.CCR. Suggest me any way of monitoring this value with using debugger.

    Yup initializing things are absolutely correct.I have verified all these things while initial testing.

    In my next iteration of this test i will take missing points told by you in my test plan and will update you the same.Also if you wanted to include any other things then please tell me.

    Thanks

    Regards

    Siddharth

  • Siddharth,

               

    1. Please provide a scope capture of the CAN bus. I'd like to see if your calibration function correctly trims the oscillator to ensure the bit-time does not change. Please provide the snapshot at room temperature and also at 90'C (just before the failure happens.
    2. Lower your bit rate to 50 kbps (or even lower like 25 kbps or 10 kbps) and see if that makes a difference.
    3.  In your earlier posts, when you say "fix the problem" you are only referring to incorporating the OSC calibration in your application, but your problem (that of CAN quitting @ 93'C and above) still remains , correct?
    4.  Have you employed 32-bit R/W? This is VERY important. See SPRUGL7 for more information.
    5.  Check reception.