We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have encountered an error on the Philips LPC932 Rev C chip. The error has been verified at 9.216 MHz (well below max rated speed) and occurs when multiple consecutive bytes are written to the E2 memory. Sometimes, not always, one or more of the bytes are erased and not reprogrammed. This looks like an error common to early versions of the Quick Pulse algorithm. The work around is: (using Keil example as a base)
void EEPROMwrite(unsigned int adr, unsigned char dat) { unsigned char Retrys = 10; do { EA=0; DEECON=(unsigned char)((adr>>8)&0x01); DEEDAT=dat; DEEADR=(unsigned char) adr; EA=1; while((DEECON&0x80)==0); // If WatchDog enabled ... pat it } while ((EEPROMread(adr) ^ dat) && --Retrys); }