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.

TCAN4550: TCAN4550 CAN data rate issue

Part Number: TCAN4550


Hi Team,

I'm using the above part in my project. As the datasheet suggests, the CAN data rate supports up to 5 Mbps with up to an 18 MHz SPI clock speed. But I observed that it's working only up to 3 Mbps.

Kindly provide your input.

Regards,

Chithraj S

  • Hi Chithraj,

    The TCAN4550 will support a 5 Mbps CAN FD data rate with the right bit timing configuration and a properly terminated CAN bus.

    Can you provide me information about your test setup?  What types of boards are you using, (i.e. are they one of the TI developed boards or one you have designed)?

    What is the crystal or single-ended clock frequency connected to the OSC1 and OSC2 pins?

    What are your register configuration values, particularly the Nominal and Data Bit Timing and Prescaler registers as well as the Transmitter Delay Compensation Registers? 

    Are you using multiple TCAN4550 boards together, or are you using a single TCAN4550 board to communicate with another type of CAN FD device?

    Do you have proper termination at both ends of the CAN bus, and can you describe the bus (i.e. how long is it, how many devices are on it, etc.)

    Regards,

    Jonathan

  • Hi Jonathan,

    Thanks for your reply.

    The test setup is our custom HMI board, developed by us. I'm using 40-MHz crystals for the OSC1 and OSC2 pins. And the register configuration values are mentioned below; all are the default values provided in the datasheet.

    Nominal and data bit timing values: 0600 0A03 (as default)

    Timestamp Prescalar: h’00000002 (as default)

    Transmitter Delay Compensation Register: 0000 0000 (as default)

    I'm using two TCAN4550 transceivers in my board and tested them by communicating between the two CAN transceivers, and proper termination was given at the CAN bus.

    Regards,

    Chithraj S

  • Hi Chithraj,

    You will need to configure the Nominal Bit Rate and Prescaler (NBTP) register (h101C) to set the desired nominal or arbitration bit rate based on your crystal frequency by allocating how many time quanta (tq), or clock cycles are before the sample point in the bit period, and how many tq are after the sample point.  the total number of tq defines the length of the bit period and therefore the bit rate. 

    You will also have to set the CAN FD Data bit rate in the Data Bit Rate and Prescaler (DBTP) register (h100C) in the same way by allocating the number of tq before and after the sample point which is recommended to be 80% of the bit period length (or closer to the end of the period).

    If you are using faster CAN FD bit rates, you will also need to enable the Transmitter Delay Compensation by setting the TDC bit in the DBTP register to '1' and then set the Transmitter delay compensation offset (TDCO) and Transmitter delay compensation filter (TDCF) values in the Transmitter Delay Compensation Register (h1048) to match the DTSEG1 value in the the DBRP register.

    Note the DGSEG1 value is interpreted by the device as 1 greater than the value entered because "0" is not a valid entry.  However "0" is valid for the TDCO and TDCF registers so these will need to be set to one greater than the DTSEG1 so that and equivalent number of tq is allocated.

    More information about how to configure the bit timing and transmitter delay compensation registers can be found in the following documents.

    TCAN45xx Software User's Gude

    Bosch M_CAN User's Manual

    Regards,

    Jonathan

  • Hi Jonathan,

    The above-mentioned register values are already implemented properly as per the given software user's guide, and I re-checked the termination in the CAN bus at the hardware as per the TI design guide.

    But I'm getting a "bus_off" error while trying to communicate with higher data rate values.

    And below are the commands I am using for CANFD with 5 Mbps. Please let me know if any changes are required.

    To enable the CANFD interface
    --------------------------------------------
    ip link set can0 up type can bitrate 5000000 dbitrate 5000000 fd on
    ip link set can1 up type can bitrate 5000000 dbitrate 5000000 fd on

    To receive and transmit data
    --------------------------------------------
    candump can0 &
    cansend can1 123##3111122334455
    candump can1 &
    cansend can0 123##3111122334455

    Regards,

    Chithraj S

  • Hi Chithraj,

    It looks like you are using the publicly released Linux driver to configure the TCAN4550 register settings and bit rates, is that correct?

    It also looks like you are trying to configure both the CAN Arbitration or Nominal bit rate and the CAN FD Data bit rate to 5Mbps.  This is not allowed by the CAN FD protocol and the maximum CAN Arbitration or Nominal bit rate is limited to 1Mbps.  Only the CAN FD Data bit rate can be set to a higher rate such as 5Mbps. 

    Having an invalid Nominal bit rate can lead to errors which will cause a bus off condition.

    Regards,

    Jonathan

  • Hi Jonathan,

    I have configured the nominal bit rate to 1 Mbps and the CAN FD to a higher data bit rate.

    It got worked up to 8 Mbps.

    Thanks for your valuable support.

    Regards,

    Chithraj S

  • HI Chithraj,

    I'm glad I could help. 

    Regards,

    Jonathan