Could someone please explain the reason why the 93C66 EEPROM outputs a dummy 0 during a read operation?
From datasheet:
5.1 Read Data from Memory The Read Data from Memory (READ) instruction outputs data on Serial Data Output (Q). When the instruction is received, the op-code and address are decoded, and the data from the memory is transferred to an output shift register. A dummy 0 bit is output first, followed by the 8-bit byte or 16-bit word, with the most significant bit first. Output data changes are triggered by the rising edge of Serial Clock (C). The M93Cx6 automatically increments the internal address register and clocks out the next byte (or word) as long as the Chip Select Input (S) is held High. In this case, the dummy 0 bit is not output between bytes (or words) and a continuous stream of data can be read.
If the input/output is byte oriented, and first bit of a read is a dummy bit 0, all data after that is then shifted (delayed) by one bit to make space for this dummy bit.
For example if the data stored in the EEPROM is:
byte1:[000000001] byte2:[000000001]
it is read from the EEPROM as:
byte1:[000000000] byte2:[100000000] byte3:[100000000]
I would like to store some data to EEPROM but this shift is the issue, what is the use of this devil thing called dummy 0?
EDIT:
I just want to leave comment on my solution. Because I was able to change IC in my case I went on using 25LC640A-I/P DIL, it behaves like I wanted, so if anyone needs hint here it is.