1
\$\begingroup\$

I'm trying to create a network of hot pluggable collections of iot devices into a bus (Containing Device 'A') that will always be present. There could be up to 50 collections with each collection containing up to 10 CAN devices each. What I am trying to figure out is if this is even possible as it is essentially many CAN buses plugged into a CAN bus.

I currently have 120Ohm resistors at both ends of the the 'always there' bus, but don't have any resistors on each collection. If I needed resistors there, what would they be? In my research I've seen reference to a CAN hubs and CAN gateways, but not sure if they are needed or would work here (Some of the hubs seem like they are just a way to condense the bus and connectors down to a single device). Also have seen reference to 2-channel CAN devices, but not sure how that would work here either without making one of the CAN devices in each collection a 2-channel CAN device or adding more devices in my 'always there' bus.

Hope I am explaining my challenge clearly enough, but if not, then I will be happy to answer any questions.

Example Bus topology

\$\endgroup\$
6
  • \$\begingroup\$ What speed are you running at, and long are the runs into your subcollections? For sufficiently 'low' speeds and 'short' stubs it can be fine. \$\endgroup\$ Commented Jun 13 at 1:28
  • \$\begingroup\$ Thanks for the speedy reply! The CAN bus in each collection could be up to 1 meter and the 'always there' CAN Bus would be ~2 meters. I don't have a required speed and could likely get by with something rather slow. BTW, you mention it can be fine, but is there a better way that I should be doing it (e.g. 2-channel, use a hub, add termination resistors, etc.)? \$\endgroup\$
    – iBax
    Commented Jun 13 at 1:44
  • \$\begingroup\$ It seems fine for your use case. Look into CAN in Automation recommendations about bus / stub length: old.can-cia.org/ru/can-knowledge/canopen/canopen-lower-layers - 125 kbit/s seems to be attainable with your configuration (mind that you might have capacitance issues with so many devices that may distort the signal too much, so make sure to build the maximum network and test with an oscilloscope at several nodes). Also mind that with 500 nodes and 1 ms/message (8 bytes, 11-bit IDs ~> 110-120 bits) every node gets to transmit more or less 1 message per second (at 50%-60% bus load). \$\endgroup\$
    – Astrinus
    Commented Jun 13 at 8:30
  • \$\begingroup\$ Also look into CAN FD SIC transceivers. They improve ringing in data phase (and using CAN FD means you can go up to 64 bytes frames, so you may reduce overhead, even if you don't use an higher data rate). \$\endgroup\$
    – Astrinus
    Commented Jun 13 at 8:39
  • \$\begingroup\$ I am definitely considering CAN FD, just was more concerned about the branches off the main bus as I couldn't find anywhere that was expressly "allowed" with CAN. \$\endgroup\$
    – iBax
    Commented Jun 13 at 15:34

1 Answer 1

0
\$\begingroup\$

I have made hot pluggable I2C and SPI busses before. I used a digital buffer to switch the digital on an off with an enable pin. You need to connect ground first on the connector OR have an IC\switch circuit that can prevent the power from turing on before the connector has fully engaged. You also may want a rom if you don't have one that you can identify each card.

\$\endgroup\$

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