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.

SN65HVD230 trouble in CAN communication

Other Parts Discussed in Thread: SN65HVD230

Hi,

I'm facing difficulties while trying to use a SN65HVD230 transceiver in a CAN system.

To provide context :

- Automobile ECU as "master" with 500k bitrate

- STM32 MCU in "listen only" mode

When using any 5V transceiver, I get no problem reading CAN telegrams. Here is an exemple with NXP TJA1040 transceiver:

- Channel 1 -> CAN L

- Channel 2 -> CAN H

- Channel 3 -> CAN_RX of transceiver

Here are some measurements, all ref to a common ground (ECU, STM32, transceivers):

I think I get the required 1,5V delta for logic Low but on the SN65HVD230 CAN_RX, there is striclty nothing ! The Vref is floating and the Rs is pulled to ground (tried short and via 10k resistor). The end points are terminated with the 120ohm resistors.

What am I doing wrong ?

Thanks for your help, I really want to avoid a 5V power source in the final product.

  • Hi Thomas,

    In your second set of screenshots, which device is transmitting? Is this the HVD230 device or a 5-V transceiver on the other side of the bus? And, what is the status of the RX output pin of the HVD230 - is it stuck high or low? It does sound like you are handling the device correctly by pulling RS low, so this behavior sounds strange. The CAN bus waveforms look OK to me.

    If the screenshots don't show HVD230 transmitting, are you able to observe it working properly as a transmitter (i.e., toggling the TX input causes corresponding activity on CANH and CANL)?

    Regards,
    Max
  • Hi Max,

    Thanks for your help.

    The only device transmitting is the automobile ECU (don't know what's inside but 12v power source) as my final goal is to silently read CAN telegrams from the car with the stm32 MCU.

    The CAN_RX is stuck low.

    I'll try to test the transmitting function of the HVD230, good point.

    Also, I did not mention it but the transceiver is coming from a chinese seller...may be not genuine (if ever counterfeit parts exist). I've ordered a hvd230 from farnell and I'll test it to be sure.

    Regards,
    Thomas M.
  • Ok, I come back with new facts:

    First, here is a screenshot with CAN H, CAN L, CAN L-H, and CAN_RX of the NXP TJA1050:

    Then, as I test two different HVD230, I got different behaviour on the recessive state:

    First one, stuck Low:

    Second one, stuck High:

    But both of them remain in the state state when ECU is transmitting. With some artefact btw:

    As another test, here is the NXP TJA 1050 on channel 3 and the MCP2562 (5V powered, 3,3V IO) on channel 4:

    ---

    I think I'll wait the "genuine" sn65hvd230 to arrive then I'll do all the test with it. There are already different behaviour with two different hvd230 and it's strange.

    As I understand CAN bus, in the recessive state, CAN_RX should be High, isn't it ?

    Thanks for your help, I'll post when I have news.

    Regards, 

    Thomas M.

  • Hi Thomas,

    Thanks for the updates. I agree that this behavior is strange, and it probably makes sense to conduct future tests on units that are expected to be genuine. You are right that the recessive CAN state (CANH - CANL < 500 mV) should correspond to a high logic level at the RX output of the CAN transceiver.

    Please let me know how the testing goes once the new units arrive.

    Regards,
    Max