Hi,
I have a project where the PIC (16f628, 16f628a and other compatible) are suffering the same problem: they are modifying some of the eeprom contents without any aparent reason.
The PIC is connected to an external device and communicates with this device digitally, using bit bang, TTL levels, one port in and one port out. The software reads data from the eeprom at power up and later it may rewrite the eeprom to update data.
The problem is that most times, soon or later, the same 5 addresses of the eeprom become corrupt. There are about 10 addresses that are read at power up, but always the same first 5 addresses that are read will have their contents corrupt. The interesting thing is that these 5 addresses will never change their contents. They are read only. Other address on the eeprom are updated once every two months or more...
I've already implemented in software a power up delay of 2 seconds because I suspected the power could be oscillating at power up while the PIC could be reading the eeprom. After changing, the problem happens less often than before, but it still happens. I've also simulated the code in MP-LAB and in Isis and this issue never happens in the simulations.
Could anybody give any advice on this?
Thanks in advance.