OK, Let’s say I’m going to write ASCII “A” to address 01h then try to read address 00h to 40h and send the data back to my terminal. If I use the polling method I get the “A” at 01h back AND all the other addresses have corrupt garbage in them. If I then write “B” to 02h the garbage changes again, sometimes corrupting 01h too. If I don’t use polling and just wait a few seconds after each write to be absolutely positive the chip has enough write time, let’s say I write “A” to 01h, wait then write “B” to 02h, wait again then “C” to 03h then wait a few more seconds and read back 00h to 40h I’ll get “C” back or the last character written for 00h through 40h even though I didn’t write all of them. It’s almost like the chip does it own page write filling the eeprom with the last character without using WE. I then tried another chip with the same results. I wrote “A” to 01h on a fresh chip and it filled the eeprom with garbage.
As for the other part of your question I handshake by passing Ack. Back to the terminal when the PIC is done and the UART is ready for the next byte.
I noticed that the data sheet has a AC driving level diagram indicating Vhi as 3.0v. I’m driving them up to Vcc @ 5V but can’t imagine this would be a problem. I also can’t help but wonder when I see the phrase: ‘this parameter is characterized and is not 100% tested” throughout the data sheet.
By the way thanks for trying to help out Mike. I really appreciate it.
Dan