Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Arduino 24c256 Eeprom time to read whole chip

Status
Not open for further replies.

dr pepper

Well-Known Member
Most Helpful Member
Any ideas how long it would take to read the whole 64k in this chip.
Read not write.
I havent got hold of one yet, just working out whether I can just read every location or I need to make some kind of smart search.
 
Which 24c256? Some clock at 400khz and some at 1mhz. I see there are many different write times.
I looked at the CAT24C256.
It takes a little time to set up read at 0. But after that it should hand you a byte every 9 clocks. Assuming your CPU can do the speed.
32kx8 If you can clock at 1mhz then it is 9uS/byte. 0.3 seconds. How bad is my math?

Now that I think about it. Set the address to 7fff and the next read will send data for 0.
 
I dont think the 'duino can address at over 400kc (the i2c peripheral might but I dont think the proc would keep up), the processor would be the limiting factor.
Sequential addressing would speed things up quite a bit.
I think I'll put together a storage regime, putting the data is numerical order, that'll speed it up a lot.
The other option would be parallel access eeprom, but that not very 'elegant'.
 
If anyone is interested I wrote some code & found out how long it takes to read 16k at 400kc, about 10 seconds.
 
So, to answer your original question - about 20 seconds for the whole 32k.

Why did you only read half of it?

Mike.
 
If anyone is interested I wrote some code & found out how long it takes to read 16k at 400kc, about 10 seconds.
That seems real slow.
At 400khz and 9 clocks/byte ...... lets say 10 clocks so I can do the math in my head. You should get a byte at 40khz.
If you read one byte at a time (send the address every time) it will be 1/3 or 1/4 as fast. Maybe 10k bytes/sec.

Next: many compilers are quite slow. They might not do sequential reads. (Arduino is not a compiler .... even more slow)
 
Looking at it that way your right.
I'm using a library, maybe theres a delay in there somewhere.
Does the job for me though I only need to access one byte at a time so I'm not going to worry about it.

Poms, good point, the chip I have at the moment is a 128 not a 256 I blew that one up on 12v.
 
Looks like your slow for some reason
Screenshot from 2018-02-09 02-34-46.png
 
So a '128 would take 1/2 that time at about 600ms, that would have been Ok for this project.
Maybe I ought to look for a better library eh.
 
There sure not all the same.
The arduino can do the 400khz you have like 10 ways to read one of these you need the newer I2Ceprom library.
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top