0
\$\begingroup\$

I know similar questions have been asked before (Maximum cable length for 3.3V UART signals) but I would like to know the answer more specifically for a hobbyist.

I've been experimenting connecting various devices to an Arduino via I2C, UART and 1-wire. I have an adapter the goes form pins to RJ45, so I'm using them on both ends. I keep getting data errors when I use certain Ethernet cables, mostly in lengths over 10 feet. While I understand in principal the signal loss due to interference and resistance. I'm finding little information on how to quantify or overcome it.

I'm trying to figure out a way to boost the signal or utilize the Ethernet cable in a different way so that the lengths of cable can be longer.

\$\endgroup\$
5
\$\begingroup\$

For longer distances, and greater immunity to electrical noise, differential signalling is often used.

For example RS-422

RS-422 drivers are relatively low-cost (start at under £2). They can be connected directly to the UART for point-to-point communication.

There are also specific drivers to extend the range of I2C e.g. NXP datasheet or TI datasheet.

These should work well over twisted pair cables, e.g. Ethernet twisted pairs.

\$\endgroup\$
3
\$\begingroup\$

In most cases, the degradation is due to capacitance of the cable. You need to use good quality low capacitance cables. Capacitance prevents the signals from transitioning fast enough and hence you get communication errors or a complete communication failure.

I have successfully run the OneWire bus over 50 meters of ethernet cable without too much trouble (had to reduce the passive pull-up and implement some error checking in software).

As previously mentioned, for longer distances RS485 and/or RS422 are the way to go.

Hope that helps, -Igor

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

In addition to changing the communication method, you can use error detection(aka checking) and correction algorithms.

There are multiple algorithms and you can choose it based on what kinds of data you are sending.

One example adopting it is QR code, which can be read even if partially altered or damaged.

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