On Tuesday 27 September 2005 08:02 pm, Spehro Pefhany scribbled: > Hi, Neil:- > > I often triplicate critical data, but I like to separate it into different > pages, and avoid certain locations. You do have to allow for 3 write > cycles, which is quite a few msec worst case with Fowler-Nordheim tunneling > NV memory, not a problem at all if you use FRAM (but it's single-sourced > and more expensive). I also attempt to repair bad data. I had looked into FRAM recently when someone posted another thread asking for an ultra-fast EEPROM. Seems really nice. Yes, more expensive, but overall cost increase for the whole project is negligible. The single-source does bother me, but if it's fully compatible with regular serial EEPROMs, then I shouldn't be too worried. More importantly though is if they really work as advertised. IIRC the datasheet said something like "instant" writes, but in some other doc I had seen something about 72us write time, which is noticeable. I'm not so much interested in lowering the write cycle time as I would be in eliminating it, since eliminating it would let me remove all the existing code that queues the datasets/address to be written and farms it out to the EE write code as the EE device becomes free. Either way, I'm waiting on FRAM samples so I can try it out. > It depends a bit on what you are worried about as a cause of data > corruption, of course-- whether it's EEPROM failure or some external > influence. Everything -- EE failure, power failure, master working-data corruption, my own code bugs, EE getting eaten by a dog ... anything. :-) What I did was to triplicate the data, with each instance of any dataset written to different pages. On startup/readback, any matching pair is considered valid. I wasn't sure if EEPROMs could fail in a specific way -- such as all bits getting reset to 1's, etc, so I modified the data in each of the 3 groups -- currently, group 1 is raw, group 2 is bit-inverted, and group 3 has alternating bits inverted. Yes, 3 write cycles, but it's still better than what I had previously -- 4 write cycles to the internal EEPROM. And the external writes faster than the internal write. Cheers, -Neil. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist