Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TMS320F28034: CAN communication upgrades error.

Expert 1610 points
Part Number: TMS320F28034

Hi ,

Using TMS320F28034 as a controller, some chips reported errors during CAN communication upgrades. Boot simulation found that the address parsed when writing data to FLASH was incorrect (it was a random value, but exceeded the valid address). One third of the chips in this batch had this problem, and the chips with this problem had previously been powered on and off again, erased FLASH, and rebooted, and used both internal and external clocks, but the problem still exists; Use instruments to test the CAN of 28034 during the upgrade process_ TR and CAN_ The data of RX pin is also normal; Please help me, thank you!CANBoot_230608.zip

  • Debugging your code is not something we can support on the e2e forum. If you could explain exactly what the problem is, we can get the right experts involved. Since you say “some chips reported errors during CAN communication upgrades”, it is evident that there is no hardware issue concerning CAN communications (otherwise, all chips would have failed).

    Boot simulation found that the address parsed when writing data to FLASH was incorrect

    I presume the parsing is done on the host side (possibly a PC). Please describe the complete flow (what is the host? How does it parse data? What CAN hardware is used on the host? What user interface is used on the host? etc etc).

    This doesn't look like a CAN problem. The more information you provide about your hardware, softare and tools, the better we will be able to help you.

  • Hi Reed,

    In addition to Hareesh's questions, when writing data to flash you say that it is a random value exceeding the address. One of the things to check is the GetLongData() function, is it fetching the correct 32-bit value for the entry address and what is this value?

    Another thing to check is the CopyData() function. When copying the blocks of data, it also uses the GetLongData() function to get destination addresses for memory blocks. 

    Will need some more information to diagnose the issue.

    Thanks and regards,

    Charles

  • Reed,

        I presume you go the answer you wanted and hence I am closing this post. If this is not the case, please re-open the post and let us know what help you need.