TCAN4550-Q1: TCAN4550 question

Part Number: TCAN4550-Q1
Other Parts Discussed in Thread: TCAN4550


I’m currently working on a project that needs to read voltage states from different GPIO ports and send message through CAN to our device,
For the 2nd version of our ECU I have to add a function to read CAN data from our device,
I finished the reading part from editing the TCAN demo code and it works, but I will get data that is wrong in some of the frames,
The CAN ID I want to read is 0x275, and most of the time I get the correct data
But I will get a frame of data that all 8 bytes of the message is “0” but the message ID

This is the CAN message that I send every 100ms, ID:0x275 and the data in the message won’t change

Most of the time I get the correct data from the array dataPayload[]

But some moment I will get an array full of zeros with the correct ID while I didn’t change the data that I send

I copy this code from TCAN DEMO and add my functions at line 121.

I need to read byte 0 and byte 2 of message ID 0x275 and if the data is all 0 I will get wrong results


I can avoid the problem with ignoring the data that are all zero

But I want to check with you to see if my code miss any settings that cause this problem

Thanks for your help!

SCH as below

  • Hi Kygo,

    I don't see any issue with the code added here. As you said, it looks like a simple modification and I don't expect this to cause any problem. 

    My first thought is that a message with this header and empty data field (all zeros) is being sent by the other node. Can you confirm that the other device is only sending frames that contain valid data? If this is difficult to see in the software, it may be easier to catch one of these empty frames on the CAN bus with an oscilloscope. 

    Could you also share what else is stored in the header? This will give us more information about the message and how TCAN4550 received and stored it. How often does the empty frame appears (percentage of total received frames)? 

    Eric Schott