3.3Volt Arduino I²C network

Hi,
I am planing on doing a project where 41 Arduinos, with Atmega328 (selfmade layout), are conected over I²C.
Each of these will have code that does some servo stuff and I²C.
The project will grow over time and the code will get more complex but for now that will be it.

I need the power consumption of the atmega328's as low as posible, but don't want that the speed is too slow.

I mesured that the Power consumption of one atmega is
ca. 18mA@5V and ca. 8mA@3.3V
The clock speed was for bouth 16MHz in this case, because I don't have any 8MHz crystal laying around right now.

4118mA@5V=3,690mW
41
8mA@3.3V=1,082mW

Is there any problem by using 3.3Volt? and read sensors, I²C, Servos(they will be powered with 5-6V), Nunchuck or similar things?
2.
Is there a big diffrence between 8MHz and 16MHz?
3.
Do I need as much as 16MHz calculating speed?

The problem is that it will cost me around 100-130? to etch the 41 layouts (without the parts like atmega328, pins crystal etc.)
and there will be a little diffrence between the 3.3v and the 5v layout.
It would be nice to know if there is anything I have to know :slight_smile:

Thanks!!
Florian

Is there any problem by using 3.3Volt? and read sensors, I²C, Servos(they will be powered with 5-6V),

yes you will have to convert the voltage on the data line, this will be a bidirectional conversion. You can do this in several ways.
Put AN97055 in to google and look at the top hit.
Perhaps the cheapest is using two transistors connected back to back (emitter to collector and collector to emitter with bases connected together). Connect the base through a resistor to 3V3 then one end( collector & emitter) to the 3V3 I2C line and the other end to the 5V I2C line.

Is there a big diffrence between 8MHz and 16MHz?

Yes it is only half as fast.

Do I need as much as 16MHz calculating speed?

It's your application only you know what is acceptable.
Try it at 16MHz and time it, then put a delay of the same time at the end and see if it is acceptable.

Okay thanks :slight_smile:
The delay idea seems to be really good and I will try it out :slight_smile:

So I just need two NPN transistors and a resistor? thats it? nice ;D

Is there a specific resistor value that I need?

1K will do.
You will need a pull up resistor on both sides of the transistor to the respective rail.

I did a ruff drawing.

Do you mean something like that?

Yes that's looks ok. However, you need to do it on the clock as well. That is only a single direction conversion and so should only need one transistor but just repeating the same circuit will work as well.

Okay thank you very much :slight_smile:

Do you mean something like that?

I get an infuriating pop-up when I click on that link.
Gonras can you get rid of it?

GB

Did it but you may need to skale the window a little down :slight_smile: