Why people advised me against using I2C?

Hi there.

I'm designing a electrical box for my desktop. My purpose is to integrate a few basic systems for homecare usages. For example: desktop-illumination remote control (by Wi-Fi).

My idea for the electrical box architecture is next: one module ESP8266 works as master and receives info from the net (I would use Ethernet instead of this, but I haven't a RJ45 socket near...). When some info is received, it broadcasts it for the slaves (via I2C). Each slave translates the data and only do something if the command was destinated to it.

But when I talked with a few electronic experts, they advised me against using I2C protocol in order to communicate this modules. Why this advice? Do you also think is a better solution to use RS485, RS232, or similar? It is a small electrical box and there is no electrical noise on my bedroom... Not too much at all...

I decided to use I2C because all the microcontrollers I'm going to use are from Atmel, and they are directly compatible with this protocol. Using RS485, for example, requires to use aditional circuits...

Please, guide me to the correct Path :smiley:

Thank you in advance!

But when I talked with a few electronic experts, they advised me against using I2C protocol in order to communicate this modules

Why don't you ask them?

why more microcontrollers?

AWOL:
Why don't you ask them?

Hi AWOL. I've done. They said that is better to use always RS485 because is a stronger protocol. But they do not give me more reasons... They also said that distance is a inconvenient when using I2C, but my box is 25cm MAX haha

I only want a second opinion.

Juraj:
why more microcontrollers?

For splitting up the processing. I want a modular system, so I can plug and unplug new chips with no need to making changes on the rest of the system.

bivalvo:
For splitting up the processing. I want a modular system, so I can plug and unplug new chips with no need to making changes on the rest of the system.

In a box? Make a modular software (sketch).

Juraj:
In a box? Make a modular software (sketch).

The box can have a big number of tiny chips, I preffer not to saturate the processing of my ESP8266.

The processing of each chip isn't big enough for using big microcontrollers. I'm using very cheap Atmel chips, so that's not problem.

noiasca:
if it stays on one PCB - let's say within the mentioned 25cm - I see no reason why I2C should not work.

On the other hand I don't get the point why you want to use more than one CPU (the ESP). even the smallest ATMEL wants it's code - so IMHO you can put it all together in a working program for the ESP also and use I2C port expander to do the input/output ...

Well, maybe that's a disadvantage. It's going to jump twice (minimum). So maybe I2C it's not a good idea because of this.

I don't know how much I'm going to expand the code so I preffer to use different chips. I've all the materials, so that's not a problem. Also I want to desing a comm protocol and learn about all of this. You know, for the pleasure of coding...

when looking at projects where there have been hardware problems with I2C communication it has often been due to parasitic capacitance in long cables - reducing clock rate sometimes fixed the problem
have a lok at this artical

I2C and SPI are fine for short distances (a few cm) otherwise I would tend to use RS232, RS485 or even Canbus