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.
Hi team,
The customer is using TCAN4550-Q1 in PEPS application, and facing a issue that the data is not being transmitted or received properly in their test prototype.
The detail is as below shown:
1. The software driver is downloaded from TI's official website and the corresponding interrupt is cleared during initialization, as shown in the following figure:
2. The wrong sample has been re-tested several times, and the results are not good.
3. Our software does automatic sleep, and the CAN bus goes to sleep with no data in 20s, and when the CAN bus has data entered, the CC2642 is woken up via the nWKRQ pin, with a delay of 15ms to determine which mode the TCAN4550 state is processed after the nWKRQ is low, and to re-initialize the TCAN4550 to normal mode if in standby mode.
4. The simulation shows that both DI0 and DIO1 of the SPI read TCAN4550 are normal, but the data cannot be received and transmitted, some are capable of sending but not receiving data, and the SPIERR flag is set in interrupt register.
Could you kindly comment?
Thanks a lot.
William,
Thanks for bringing this to E2E, and I'm sorry to hear that the device isn't working for the customer. Can you clarify what is meant by point number 2?
And when you say "some are capable of sending but not receiving data" do you mean just SPI? Or CAN communication? If you mean SPI, is it possible for the customer to read back register 0x0000?
Regards,
Eric Hackett
Hi Eric,
"some are capable of sending but not receiving data" is in the CAN communication.
Wing,
Thank you for the clarification, it's good to know that SPI communication is always working. Are there any other interrupt flags being set when CAN communication isn't working?
And are the CAN frames not being received in the allocated memory space or are they not being transmitted at all to the CAN bus? Is it possible to share waveforms of the CAN messages on CANH and CANL?
Just to inform you, tomorrow (Friday, 04/02/2021) is a holiday for TI Dallas, so responses may be delayed.
Regards,
Eric Hackett
Hi Eric,
some time has the "SPIERR" and "CANERR" flags being set。there are some can't received in the allocated memory space,but can transmitted to the CAN bus; and some can't received and transmitted at all.
the normal CANH and CANL waveforms show as follow:
Wing,
Thanks for this information, can you also read back registers 0x0820 and 0x000C as well? The SPIERR will point to an interrupt located in 0x000C, and 0x0820 will tell us which CAN interrupts are triggering the CANERR flag.
One other thing is your CAN bus waveforms look strange, specifically the recessive level. These should be at the same voltage but on your oscilloscope it looks like they are ~500mV apart. What kind of components do you have on the CAN bus? Is it possible to share a schematic?
Regards,
Eric Hackett
Hi Eric,
The "SPIERR" and "CANERR" flags was read form 0x0820, and the 0x000C readback as follow:
schematic as follow:
Wing,
One thing I would recommend is to place 120ohms at the B node on the bus. Since the CAN transceiver is designed to drive a nominal bus with 60ohms bus impedance, this may be a reason why CAN communication is not consistent. Some of your bits may be getting distorted, and the CAN controller sees this as an error.
Looking at your readbacks, are the bit labels incorrect? It looks like you just readback the interrupt register (0x0820) again.
Regards,
Eric Hackett