Could this week’s EYE ON NPI (video) help you with communicating with far away I2C sensors and devices? Yes, indeed it CAN! This week we’re featuring the Analog Devices LT3960, a handy chip that will let you take advantage of the noise-durability of CAN with the universality of I2C.
The LT3960 is a high-speed transceiver which creates the functional equivalent of a single-master I2C bus in the CAN physical layer and is powered from a single wide-ranging input voltage. Using two integrated CAN transceivers, the LT3960 creates a differential proxy for each of the single-ended I2C clock and data signals which is capable of traversing harsh or noisy environments across two twisted pairs.
Please note! The LT3960 is not a I2C to CAN bus converter/adapter. It isn’t like your CAN devices will appear on an I2C bus or vice versa. It’s just a physical-layer converter: basically it lets you use your existing I2C controllers and peripherals but without the restrictive single-ended transmission layer:
It should be noted that while the LT3960 uses the CAN physical layer to conduct bidirectional I2C data, the CANSCL and CANSDA buses created by the LT3960 are not traditional CAN buses carrying traditional CAN data. As such, the CANSCL and CANSDA buses between LT3960 devices cannot be shared with standard CAN transceivers in a multidrop configuration.
However, you can (ha!) have multiple I2C sensors on the end of the long cable, either by having multiple sensors connected to one LT3960 or multiple LT3960’s tied to the I2CAN bus along the route. A nice touch is the separate VIN pin, connected to a high-voltage LDO that can drop 60V down to 3.3V so you could also pass a high voltage power signal down the cable that could be then regulated at the end, locally, to provide power to the transceiver and sensor.
This could do a great job for automotive/robotics/industrial/agricultural sensor systems with long distances or electrically-noisy environments, without having to go to wireless or having ‘smart’ nodes. OK so why not just use CAN bus straight-up, instead of this converter? Well, I2C is the vastly more popular protocol for a variety of sensors and devices – it’s supported by every microcontroller and microcomputer we’ve ever seen. If you wanted to use CAN, you’d have to connect an existing I2C sensor to a microcontroller/computer with CAN and then write and support the converter firmware. But most low cost microcontrollers don’t have native CAN – it’s considered an advanced peripheral, so now you have to go with a pricey chip like the STM32F405 or you could try tacking a CAN converter chip onto your existing nodes, also not cheap and that now adds another failure risk.
So whether you’re using an Arduino UNO, STM32F405 or Raspberry Pi main controller or data logger, you can take advantage of the existing I2C controller you’ve already got. Then use this low cost chip on either side of your sensor network to create a durable network without the added complexity of having I2C-to-CAN nodes.
So for example, if you have a greenhouse with a plethora of SHT30-based soil sensors, each on I2C, you can stick this chip on the end of each sensor and voila, the data can be run all the way to the end of the building (and with that 60V LDO, your CAT-5 cable can provide power too).
Sprinkle a few of these over your design and sweep away your EMI and stray capacitance problems with no change in firmware. This NPI just dropped, so sign up at digikey.com to be notified the moment the LT3960’s (https://www.digikey.com/short/9wp0j1f5) are in stock!