General I2C advice


Closed Thread
Results 1 to 9 of 9

Hybrid View

  1. #1
    Join Date
    Feb 2010
    Location
    USA, New England
    Posts
    164


    Did you find this post helpful? Yes | No

    Default

    Hello Malcom,

    Consider using F-RAM.

    It's very fast writing (compared to EEPROM) but otherwise works about the same way. I believe they claim unlimited writes (or nearly so). I've used the SPI versions with good success.

    Best Regards,
    Paul

  2. #2
    Join Date
    Dec 2007
    Location
    Paris
    Posts
    101


    Did you find this post helpful? Yes | No

    Default

    Looks sweet, I 'll evaluate those F-RAM from Ramtron too, thanks for the info.

  3. #3
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Guys, thanks for the advice and suggestions. Farnel seem to stock FM24C512 and I guess at £12 it's not bad when you consider the read/writes are claimed to be in excess of 10 billion !!

    I'll also look at dropping the sample rate down, but when the room is cold and a heater should fail, the temperature in the reptile enclosures can drop quite a bit in a several minutes. IF the sample rate was a lot less, any graph from the resulting data would be a bit basic

  4. #4
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,613


    Did you find this post helpful? Yes | No

    Default

    Hi Malcolm,
    The 24x512 has 512kbit worth of storage space, that's 65535 bytes.
    Counting the number of bytes in your "packet":

    29 09 2010 19:45 234 236 240 242

    I get 14 bytes (because the last four values CAN be higher than 255, right?).
    So 65535/14/60/24 = 3.25 days. So, in short, you won't be able to fit your seven days worth of data doing it that way.

    Storing the date and time at startup only (and when it wraps around) will basically save you 6 bytes per record. If you know you are recording once per minute there's really no need to save save the time - every time. That's still not enough to get 7 days into a 24x512 though.

    Well, just something to think about.

    /Henrik.

  5. #5
    Join Date
    Dec 2007
    Location
    Paris
    Posts
    101


    Did you find this post helpful? Yes | No

    Default

    If you record time + date with your sample, it is not necessary to take equally spaced samples. you could sample at a slow rate, but when there's some big variations measured, increase the sample rate.

    Or as HenrikOlsson said save memory by storing only the fist time/date tag, but then you have to keep the same sample rate. This is the solution I'm implementing currently in my USB temperature logging jumpdrive.

    Here is the table I generated, considering an header of 40 bytes in EEPROM, followed by individual 12bits temperature samples (I use a TMP100 sensor which output celsius values at 11bits + sign).


  6. #6
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Guys, once again, thanks for the heads up with regards to the amount of data I could store. I guess the only options I have is to reduce the sample rate down, or, if 512 will store 3 and a half days, then 1024 would hold around a weeks worth....

    I have one of these home weather station



    http://www.foshk.com/Weather_Professional/WH1080.htm

    Not sure what memory it has, but it sends temperature, wind speed, wind direction, rain fall, air pressure and humidity readings at least every 5 min and can store two weeks worth before roll over !

    Does increasing the size of the memory have other problems when used with PICs?

    If used on the same pins that the RTC (DS1307) is connected to what would be the ideal address to use, and do I use the IC2WRITE / IC2READ to send / retrieve data ?

  7. #7
    Join Date
    Dec 2007
    Location
    Paris
    Posts
    101


    Did you find this post helpful? Yes | No

    Default

    RTC and EEPROM can share the same I2C bus, and they have their own address (check the datasheet). A0/A1/A2 allows you to put more EEPROM on the same bus, but it won't conflict with the RTC (MSB part of the address is hard-coded in the device, and LSB part can be set up by user depending of the device).

    You could also use an SD-card as your storage medium. It is a bit more complicated to use, especially if you want a FAT system (check on this forum there's some examples).

    I would go with I2C EEPROM, but storing data in binary rather than ASCII.

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts