If possible, i would like some guidance and suggestions about a project i have in mind.
I would like my arduinos to keep track of the time passed since they where powered up and to record that time on an external eeprom every hour just like an elapsed hours counter. Accuracy is not crucial in my case. i just need to read that data in order to have an indication about how long boards have been used in various projects.
In my mind i think that i will use the eeprom to store an integer that will represent the amount of time in hours that a board has been powered on.
Would it be possible that you could suggest me of some smd eeprom and probably show me how to do the writing / reading ?
Been using these I2C EERAMs and they work great. It behaves like an SRAM, but when it detects a falling voltage on the Vcc, it automatically backs the data up into a "hidden storage array". It only requires an extra (at least 22uF) capacitor. You have to power-cycle the device 100K times to degrade the non-volatile memory. During normal operation, you can read/write into the SRAM as many times as you want
Well since i am going to perform alot of writing to it i would like to use an external storage chip so that i will not stress the onboard eeprom too much.
Not much really. the time keeping in hours will definetly not exceed the number 100.000 if i increment the hours meter once per hour.
I wouldnt mind it if i where to miss a few hours per month. For example if the board has been running for 720 hours (a whole month) i would mind reading 700 or 750. I would still be able to get the bigger picture.
Im not sure what you mean. I would like to increment the hour counter once per hour. So at the beginning the eeprom or whatever i use will have the number 0 stored and 2 working hours later i would like to read the number 2.
That actually sound very interesting. Though it would require a fair amount of space inside my project boxes.
Power up's and down's will probably be quite frequent but 100.000 cycles are quite alot. I wonder how ,any external components does that require ? I wonder how hard would it be to integrate it into one of my hand made boards...
Ive been thinking to add a section in my current project codes where i will probably use millis() to count time and every 3.600.000 milliseconds the code will increment the number on the external storage chip.
I guess that is one way of doing it but i get the feeling that it is not the most efficient one.
I forgot to mention that i build my own pcb's and adding a stand alone memmory chip to them is not a problem as long as it runs on 5V and needs a small number of external components.
As for the programming part, i have no idea how to read or write to such chips. I have never done anything similar.
Yes i watched the video on the official site. Very interesting indeed.
Any idea how to handle reading and writing ? Are there any code examples ?
I found none so far.
P.S. It is going to be hard for me to source these chips where i live...
What bytes to send, you can find in the datasheet of the EERAM (follow the link from hrznbgy). See page #15 "SRAM BYTE WRITE" (control byte, two address bytes and a data byte).
There is a 5V version of it. What troubles me is that it is not available on ebay or else. Only Big suppliers have it and the cost+shipping will probably be significant .
You have no idea how cheap this has become. In the past you often could not order anything as an individual from many of these companies.
Remember if you order a single device they still have to get a box, search and place the device and do a lot of paperwork for you. Some companies offer free shipping (e.g., Digikey) when you exceed a certain limit. They have huge catalog of useful electronic stuff. Check the conditions for your country and make it worth their while. Find some local friends to share if that is easier.