alan smith wrote: > Bob, > > Can you elaborate on your method of refreshing? Or a link to what Microchip recommends? This may be one of my problems I have been fighting with a client. > > Alan, sorry I didn't answer sooner, I've been busy. I have done this many times, and it works perfectly, on PIC16F88/87, PIC16F877A, a few newer PIC18's. I write the data 5 times, instead of just once. I don't bother to jump all over the array, I simply write 5 times in a row with the same data. When I read, I read 5 bytes instead of just once. I then check all 5 to see if they are the same. A. If all 5 are the same, I use the value and do nothing. B. If all 5 are NOT the same, I locate at least 3 that ARE the same, and use that as the "value", but I then rewrite ALL 5 anyway. C. If worse than best 3 of 5, the data must be considered defective....but I have never had that experience, EVER. The advantage over Microchip's total rewrite scheme is that this method (1) only refreshes the cells that NEED to be refreshed, and (2) doesn't needlessly reduce overall cell life. Think about it...why overstress cells that are working fine? Aside to the List: This brings up a point that Olin and others are trying to make... sometimes Microchip gives some bad advice, like the open outputs to GND. Well here is another one. --Bob A > --- On Mon, 10/5/09, Bob Axtell wrote: > > >> From: Bob Axtell >> Subject: Re: [PIC] 16F88 EE Corruption? >> To: "Microcontroller discussion list - Public." >> Date: Monday, October 5, 2009, 7:57 AM >> Sean Breheny wrote: >> >>> Bob, >>> >>> Do you have more information about this? My reading of >>> >> the Mchip docs >> >>> suggests that the problem is not reads but writes to >>> >> one cell >> >>> affecting other cells in the array, so that writing >>> >> address 0 and then >> >>> writing address 1 10,000 times, if I try to then read >>> >> address 0, I may >> >>> get garbled data - so I need to make sure the refresh >>> >> address 0 after >> >>> every N writes to any cell in the array. In other >>> >> words, if I simply >> >>> write data once, I should then be able to read it >>> >> indefinitely with no >> >>> further refreshes. >>> >>> Sean >>> >>> >>> >> I thought this was settled years ago; the PICforum and the >> PIClist >> should all have archives on it. >> Trust me, if you did nothing but read EEPROM data >> repeatedly, in a few >> days, the data will be >> corrupted, regardless of where it is in the array. And yes, >> there is >> interaction with other data >> in close proximity. The read process, like the write >> process, slowly >> erodes the data, as does >> other lesser-occurring effects, such as radiation, cosmic >> rays, heat, etc. >> >> In years past, PICs were made with thicker interconnections >> and better >> isolation for the EEPROM >> arrays, and errors in EEPROM data was almost unheard of. >> But as the >> devices have become smaller >> and the protection less, the "dark side" of smaller die >> sizes begins to >> show up. >> >> Refresh it en masse as Microchip recommends, or use my >> "best of" >> algorithm and refresh it as needed. >> My algorithm just increases cell life. >> >> --Bob >> -- >> http://www.piclist.com PIC/SX FAQ & list archive >> View/change your membership options at >> http://mailman.mit.edu/mailman/listinfo/piclist >> >> > > > > > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist