Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Connecting more than 2^3 devices of AT24C02 EEPROM - how to??

Status
Not open for further replies.

sayonee

Newbie level 6
Joined
Nov 22, 2011
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,390
The AT24C02 - EEPROM has hard wire addressing of 3 bit length. This facilitates interfacing of a maximum of eight (2^3) 24C02 devices to a system thereby, incorporating a maximum 16Kbits memory.

What if I want in the project to connect more than 8 devices ....how can i accomplish this ??

Do I need some extra hardware or anything for that matter..please let me know if anybody has links,docs, source codes etc ....thanks
 

1. One option is if you are not using inbuilt I2C of the controller, then you can use general port pins as SDA & SCL and use 4 port pins. 2 for SCL and 2 for SDA. then you can control more than 8 as in each configuration you can connect 8 each.
2. if you are looking for memory aspect, go for higer memory upto 64k in 24c64 eeproms.

hope this answers your question.
 

    sayonee

    Points: 0
    quite logical and explained well thanks
You can also use the compilers' built-in libraries to implement I2C protocol on GPIO pins as ckshivaram said. Compilers like MikroC has built-in libraries for I2C, SPI, UART... etc.
Another solution is to multiplex the address lines, but this will require extra hardware.
 

In my view you should explore different memory family and interface like SPI flash or some thing like that ....as when you are reading EPROM from I2C with multiplex structure or seprate EPROM on different bus will lead have lot of time....

May be helpful to you....

Good Luck
 

Yes Mr CKSHIVARAMAN this seems to be quite a logical one .....thanks will keep looking thanks again

---------- Post added at 08:54 ---------- Previous post was at 08:49 ----------

Hello Mr seadolphine2000 ..i think this reply of yours also is possible and seems to be acceptable ..but what if one is using an IDE like Keil ...it doesn't have inbuilt libraries/routines ..infact I am almost done with the coding - interfacing of EEPROM - AT24C04 using I2C ...without using any ready made libraries ...And here the Read is Successful but WRITE fails!!! :(
 

Hello!

Another solution is to multiplex the address lines, but this will require extra hardware.

I don't think this would be a good solution. The reason is that you would end up with a system
involving several I2C bus with each a certain number of devices and a multiplexer device.
It would be complex, it would take a lot of space, and it would be expensive because you would
need a lot of different devices.
Beside this, the advantage of I2C is that you can drive several systems with a pair of wires.
Now if you ad a bus multiplexer, you will loose this advantage.

I agree with milind.a.kulkarni that the SPI flash solution might be a good solution.
SPI flash exists in very large sizes (I use 16 MBytes [1] chips in 8-pin CASON package).
If you use an I2C EEPROM, you will be stuck to a few kilobytes for the same size.

Another advantage is the speed. SPI flash is a lot faster than EEPROM.

Disadvantage: you can have more write cycles with an EEPROM (about 1 million cycles vs
10k~ 100k cycles), so it depends on your constraints, I cannot say that you can actually
use flash without knowing more. But as you have a lot of room, you can setup a block
reassignment scheme so that you will not always write to the same blocks...

[1] Note that I said Bytes, not bits.

Dora.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top