1
\$\begingroup\$

I am wondering if it is possible to implement the following idea: I want to build a network of sensors, all of them communicate via I2C protocol and all those sensors will send their parameters via CAN bus to the main microcontroller that will handle all those data to execute some determined command. I know it is necessary to have one microcontroller for each sensor to implement the communıcation between the sensor and the CAN Bus.

My question is, is it possible for the microcontroller (with CAN peripheral) receive those data from I2C protocol "transform" them into CAN protocol and send them to the master microcontroller located in another point from CAN BUS?

Thank you

\$\endgroup\$
1
\$\begingroup\$

A microcontroller which looks after a sensor would be a master on the I2C bus. It would package the data from the sensors and send it on the CAN bus. You would have one long range CAN bus and many local I2C buses. That's a fairly common architecture for a CAN bus.

So, yes, it's possible.

\$\endgroup\$
0
\$\begingroup\$

It is possible like Nick Alexeev answered.

Do note that the number of nodes on a CAN bus is not unlimited. It is determined by characteristics of the physical layer, the applied CAN standard, etc.

Also the number of messages that the CAN bus can handle is not unlimited. It depends on CAN bus speed (which is typically lower when having more nodes), the length of the message, etc. https://e2e.ti.com/support/interface/f/138/t/200360

\$\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.