0
\$\begingroup\$

I am currently trying to connect many serial slave devices to my Arduino device over a 14 meter distance. I am looking to have slave-to-master communication. These devices include:

  • 3 BME280 Environmental Sensors (SPI; not enough addresses to use I2C)
  • 1 Hx711 Load Cell Amplifier (I2C)

Obviously, SPI and I2C aren't the best options here due to their short range, so I am looking for ways to increase range. Below are some options and problems I am currently facing, with embedded questions.


SPI

  • LTC6820: isoSPI Transceiver. Only one chip select line; requires some additional hardware (which is okay if it makes this a good option, but I don't want to break the bank either)
  • MAX3140: RS485 Transceiver. Only one chip select line

Maybe a single chip select line isn't a problem? Maybe I could just run logic lines over a 14 meter distance?

I won't need a very high data rate (possibly less than 100KHz).

I2C

  • P82B96: Bus Buffer. Too small to work with - I would like compatibility with a prototype board.

Is there a possibility of running I2C signals over SPI?


Any advice on tackling the issue of this long-range communication would be much appreciated!

\$\endgroup\$
  • \$\begingroup\$ If you can live with a really low data rate, you could use Onewire for the 14m distance and the DS28E17 Onewire-I²C bridge near the sensors. You can have several of those on the bus so your I²C addressing problem is solved automatically. Otherwise, I would use Wifi. \$\endgroup\$ – Janka May 23 at 23:47
  • \$\begingroup\$ Your idea with RS485 might be a good choice as you can achieve distances above 100m with that according to maximintegrated.com/en/app-notes/index.mvp/id/3884 . Else you could try to use single-ended to differential translator (eg cmos to lvds driver) as differential / current based transmission is less sensistive to long distances. \$\endgroup\$ – Christian B. May 24 at 9:00
  • \$\begingroup\$ @ChristianB. My problem there is that there is only one CS line on most boards I can find, when I need three. \$\endgroup\$ – Instakat May 24 at 20:09

Your Answer

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

Browse other questions tagged or ask your own question.