XLS93LC46P Interfacing Help

I already made a post on another website about this, so I’ll just copy/paste it here.

The XLS93LC46P (<- link to datasheet) is a 1024-bit serial EEPROM. I tried to use the datasheet before in an attempt to interface with it, but I was really confused at the time. I just re-read it and I think I finally figured it out. I just need verification.

The datasheet says that the chip is controlled by 7 (different) 9-bit commands, given in the table at the bottom of page 2-77 (page 2).

For example, if I wanted to write 231 to address 10, I would send “0b1/01/001010/0000000011100111” (slashes to separate parts of the data) yes? And then would I send all this in a single operation? And after I do send it, I should read DO to read when the write operation is complete. And if I did this on arduino, could I use:

shiftOut(data,clock,0x01);

shiftOut(data,clock,0x4A);
shiftOut(data,clock,0X00);
shiftOut(data,clock,0xE7);




Or might I have to bit-bang it?

I will add on to this by asking about how to perform a read instruction. How would I ignore the leading ‘1’ that is sent with each data string and how would I read the data as a word?

The "9-bit" commands start with a "Start Bit" which is a 1. This implies to me that leading 0's are ignored so I think you are correct in sending 16 bits for the command with the first 7 bits being 0's.

I don't think you have to check for BUSY unless you are doing a WriteAll or EraseAll.