0
\$\begingroup\$

my first question in this page :)

The sensors I use give analog signals, so I want to translate them all to I2C, but I can't find IC's that allow me to give them any desired address, I find only with very limited possibilities.

My idea is to have few cables in my system, so I would want to have these ADC ICs very near of each sensor and make the communication through I2C. Thank you for your help, and excuse me if the question has an easy answer, I'm still an student and just couldn't find anything that fitted my concept.

Maybe there is another way to do this... I saw multiplexors, which don't help me, because all the analog signals should go to it, so, at the end, I have the same quantity of cables going around. Then, I saw IC's with 3 address bits, but I need more address, like 15 or even more.

Thank you again for your help.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ It sounds like using a small microcontroller that supports both ADC and I2C would be an answer. For example, there are many 8-bit PIC devices that would do this. \$\endgroup\$ – Roger Rowland Apr 13 '16 at 13:30
  • \$\begingroup\$ That's exactly what they told me yesterday to do. I will use some Atmega328p (the one in the arduino) and program with the arduino IDE. The arduino solution seemed bad to me because I don't like the way the I2C works on arduino, to me, it seems like it's only interesting to be used between arduinos. Also, I didn't want to design so many arduino like PCBs. But then, this guy told me that in arduino, the analog signals go directly to the atmega, without SMD components in between. So, suddenly, the idea of these PCBs seemed very good and since it's so easy to communicate between arduinos... \$\endgroup\$ – Iñigo Marque Vidorreta Apr 15 '16 at 11:41
1
\$\begingroup\$

I2C (Inter-Integrated Circuit) is primarily designed for tightly coupled systems- short runs on a board- not really intended for cables and such like.

You seem to be trying to use it for a more distributed system- in which case something like RS485, CAN, Ethernet, various Fieldbus standards, Lon, etc. (or even a wireless scheme of some kind) may be more appropriate. The wired schemes of this kind tend to use balanced terminated twisted pairs, sometimes galvanically isolated as well as shielded.

If you find that I2C is actually suitable for your purposes you can just program small local microcontrollers as @Roger Rowland suggests. That will give you a lot of flexibility (for example, you could digitally filter and decimate signals before transmitting them to the master MCU), and you are free to determine addresses as you prefer.

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

You have to lay out much more of a plan. If you build something with a microcontroller, for example, you don't need each analog input to have its own I2C address. You would work out some sort of communication plan where you can use a single I2C address to request data from a specified channel, or all channels sequentially.

Your design strategy depends upon many things, including what you'll be trying to connect the sensors to, how often you'll need the data, etc.

You'd be better off terming your question in terms of what specifically you're trying to accomplish instead of some buried intermediate design choice you seem to have already made.

\$\endgroup\$
1
  • \$\begingroup\$ thank you, I have received a very good idea on how to do it. \$\endgroup\$ – Iñigo Marque Vidorreta Apr 15 '16 at 11:36

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.