I try to read data from a M93C86-W EEPROM. For some reason, the data is not read correctly. The dummy 0 at the beginning of the reading process causes some issues.
in our application we are using the M93C86-W EEPROM. It is driven by the 16Bit SPI mode of the TMS320F28069 Piccolo microcontroller by Texas Instruments.
As far as I can judge, the used instructions are executed correctly and the EEPROM works as the datasheet indicates. This is where the problems start. After writing data to a selected address, the data is not read correctly. According to the datasheet, a dummy 0 is output first, followed by the databits. The problem is, after the READ instruction, I send 16 bit dummy data to keep the clock running. The data to be read is 16 bit long, as well. But the first bit read is the dummy zero output by the EEPROM. As a result of this, the last databit is not read by the microcontroller (for it just reads 16 bit, but the EEPROM outputs 17 bit).
In the attached file you can see the signal flow on the SPI wires. I write 0xFAFA to the selected address (not showed). After the write disable command (0x1000) I send the READ command together with the aforementioned address (0x1A10). The data output by the EEPROM (to be seen on the MISO line) is 0x7D7D, wich is obviously not correct.
How do I solve this Problem? I tried different settings on the microcontroller but I can not read 17 bit with it (max. 16 bit). The result stays the same. I tried different timing settings on the EEPROM, as well, but it still outputs the wrong data. What kind of procedure would you recommend?
Greetings
Marcel
