0
\$\begingroup\$

I have developed a CAN bus between two STM32s on two breadboards. My transceivers are MCP2551 ICs. I have faced something weird, the transfer of data becomes possible only when I remove two 120 Ohm terminating resistors. This made me curious to explore the reason of it. Please share your Ideas. Thank you.

\$\endgroup\$
11
  • 1
    \$\begingroup\$ do the transceivers have them built in? \$\endgroup\$
    – jsotola
    Apr 28 '20 at 21:51
  • \$\begingroup\$ @jsotola Yep. They do. Sounds like an answer to me. The datasheet has a block diagram on the first page. I find that rather surprisingly actually since that would not allow the transceiver to be used at anything but the ends of the bus. It's not even advertised in the datasheet anywhere. It just discretely appears in the block diagram. \$\endgroup\$
    – DKNguyen
    Apr 28 '20 at 21:59
  • \$\begingroup\$ @DKNguyen no they are not the termination resistors. See electrical specs for their value. That's why they are not advertised. \$\endgroup\$
    – Justme
    Apr 28 '20 at 22:02
  • \$\begingroup\$ other thought: wire wound termination resistors \$\endgroup\$
    – jsotola
    Apr 28 '20 at 22:05
  • 1
    \$\begingroup\$ @Bornak They're not, but I don't see why having them would stop it from working. They aren't detrimental so much as the issues they address aren't severe enough to prevent functionality at short distances. \$\endgroup\$
    – DKNguyen
    Apr 28 '20 at 22:37
-1
\$\begingroup\$

most CAN transceivers use internal voltage dividers to handle bus voltages far below and far above the GND/VDD region.

Those resistors will not be 120 ohms.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.