I am trying to read the eeprom of a certain device in order to modify it slightly (e.g. device name etc.) and then write this updated information to it again. The reason for this is that the manufacturer thought it was a brilliant idea to not allow this information to be changed using AT commands and instead store it on an external eeprom.
Before I purchase an I2C programmer for something like 20-30 euros, I thought I would check if it is possible to simply use the Arduino as an interface between computer and eeprom.
The specific chip is the 24C08C.
I have found several forum posts on the subject but not really exactly what I am looking for. Unfortunately I don't really know where to start so any help would be greatly appreciated. Most of the post simply talked about writing individual values to the chip, whereas I want to first read the entire thing, find the place to make minor changes, and write it back again. And since I don't really have any chip lying around for experimentation, it would be nice if I could be sure that it would work, before I overwrite everything and then have a useless device My plan is to use existing software (if possible) to do this.
I hope someone out there can give me a few tips Thanks in advance!
A chip like that has 1K (1024) bytes of memory.
So if you had a microcontroller with more than that you could read it all out, change it, and write it back.
'328P has 2K of memory, so a program without a lot of variables could have a large array:
byte dataArray[1024];
defined to hold it all.
Are you sure the company has not intentionally locked the chip down so this information could not be changed? Depending on what you are working on, this is not an uncommon practice to prevent unauthorized access to possibly semi-sensitive/important information.
mirith:
Depending on what you are working on, this is not an uncommon practice to prevent unauthorized access to possibly semi-sensitive/important information.
Usually including the information necessary to be able to actually use the device effectively.
Thanks for all the replies. I was hoping to use it more as an interface between the chip and computer, but if that's not possible, I guess I will be trying to read to the arduino and write from it as well. If not I might end up just buying a programmer...
There is no encryption or write protection (or so I've read). Someone basically did the same thing and mentioned that the specific device did not have any of these features enabled.
PPLJ:
Thanks for all the replies. I was hoping to use it more as an interface between the chip and computer, but if that's not possible, I guess I will be trying to read to the Arduino and write from it as well. If not I might end up just buying a programmer.
Sorry if you have been somewhat misled here - and I was just having a wag at the copy protection matter.
What you desire is perfectly practical - in fact, it is precisely what the bootloader in the Arduino already does, it receives data over the serial link and burns it into the Flash (essentially EEPROM) memory of the MCU or reads it back again. There is absolutely no need to store the code in the Arduino itself, you clearly want it on the host computer in order to decode and edit it. Now you cannot use the bootloader as such for your purpose, but the routines in the source code for dealing with the "hex" files would be quite useful.
The Arduino is indeed a perfect platform for this (and inexpensive). There is some work involved - if you cannot find someone who has already done it, or most of it at least for similar I2C EEPROMs. You clearly would however, need a device to experiment on, I would suggest purchasing one as a start.