I have a product based on an AtMega 162 that has a number of configuration tables held in the internal EEPROM. Specifically this is a stepper motor controller for a fruit machine (one-armed bandit) which can spin up to 8 reels.
As the reels spin, the MCU has to keep reading from EEPROM to determine the number of milliseconds until the next change of stepper motor phase.
A single byte of the EEPROM is getting corrupted occasionally over a power cycle. Curiously, this byte is the byte that determines the standard period between phase changes for normally spinning reels. That means it is a single byte of EEPROM that is being read up to 8 times during a 16 millisecond period.
I know that the most likely cause of this is a software error and that we softies are all too keen to want to blame the hardware, but I have checked the code very carefully and cannot see any practical circumstances in which I could write to the EEPROM at all under these conditions.
Does this potential corruption ring any bells out there?
Thanks in advance,