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.

CAN bus bias soluation

Other Parts Discussed in Thread: SN65HVD1040

I am sharing a connector with RS485/422/CAN in the design, and I am trying to make them bias correctly.

In CAN bus, SN65HVD1040 datasheet mentioned a solution with split termination network.

But TI AN847 mentioned another solution,

Can I just use the way in AN847 for CAN bus?

Thanks,

Frank

  • Hi Frank,

    The AN847 biasing method works well for RS-485 because the high and low logic levels are centered around 0 V. Without the biasing, conditions that would normally result in no differential input signal (i.e., bus lines shorted, driver disabled, or cable disconnected) would result in an indeterminate logic state. Adding this biasing in RS-485 ensures that there is always a valid high or low logic level at the receiver even during these failure conditions.

    For CAN, though, this is not needed. Any differential input below 500 mV should be considered recessive (logic high) by the receiver. So, a failure condition like a disconnected wire, idle bus, or cable short will be considered recessive automatically without requiring additional biasing.

    A CAN bus would likely be functional if it used this termination scheme, but it would not be optimal. Adding a differential offset will degrade the amplitude margin of the link (i.e., the difference between the signal high and low levels and their corresponding logic thresholds). In RS-485 this is not such a concern, since the driver outputs should be at least 1.5 V while the logic threshold is just 200 mV. For CAN, though, the minimum driver output amplitude is still 1.5 V but the logic thresholds are at 0.9 V (for dominant) and 0.5 V (for recessive). So, shifting the differential bus by a few hundred millivolts higher or lower could have an impact on the sensitivity of the link to noise.

    A better option may be to choose RS-485 transceivers that have internal failsafe biasing, which is a common feature among newer parts. Internal biasing implements the same functionality as this three-resistor network without having to actually use the external resistors to bias the bus.

    Regards,
    Max
  • Hi Max,

    The RS485 transceiver I am using - SN65HVD21AD - has failsafe circuitry. It can put output to high after 250 ms. And It looks like they are not resistors and won't have any side effect.

    I have a RS232 chip MAX211IDB connecting to the shared connector as well. It has build-in 5K pull down at input pin, which is also connected to CAN_L and RS485_H (A in SN65HVD21AD ). It should work. Please correct me if I am wrong.

    Thanks,

    Frank
  • Frank,

    I agree, these components should work well together and the 5 kOhm pull-down resistance shouldn't be much of a concern. If you wanted to be extra careful, you could also include a pad for a pull-down resistance on the RS485_L/CAN_H net in case you find that you need to add some resistance in order to balance the loading. One other thing to note is that the pull-down resistance will bias the CAN recessive level much lower than normal. Without any common-mode loading, the CAN recessive level is typically VCC/2. With the pull-down resistance, it will be closer to 0 V. This will not affect the transceivers' ability to communicate, but it may cause the CAN waveforms to not match what you expect when you view them on a scope.

    Are you able to provide 120-Ohm differential termination to the RS-485 and CAN buses without affecting the RS-232 communication?

    Regards,
    Max
  • Hi Max,

    Since there is only one chip working at a time, and the others are disable, we can use jumpers to add termination when RS-232 is not selected. I am still worry about the 5K pull down in MAX211IDB. If I have 30 nodes in RS-482/422/CAN, those pull downs can make a 160ohm. I am trying to use AM36LV32 or DS26C32A as RS-232 reciever, but their input resistance is 7-12K. Any other suggestion?

    Thanks,

    Frank
  • Hi Frank,

    That's a good point; I didn't realize you would have so many nodes on the network. I don't know of another transceiver option that would eliminate the ~5 kOhm load on RIN, though. If you are already using jumpers in order to configure the termination in RS-485 or CAN mode, could you use a similar approach to disconnect the RIN inputs of the RS-232 transceiver?

    Regards,
    Max
  • Thanks Max. I think that works.

    Frank