I am attempting to talk to the W25N01GVxxIG flash memory IC. I am attempting to read the JEDEC ID from the device. I write 0x9F followed by a dummy byte followed by the memory IC transmitting it's JEDEC ID. (Page 25 of the datasheet) It is supposed to send back 0xEF 0xAA 0x21, but I get 0xDE 0x00 0x00. I notice on an oscilloscope that the memory chip sends 0xEF, but it sends it as the clock for the previous byte drives low, and the Arduino ignores the first bit. I have downclocked the SPI and the issues persist.
My code and an oscilloscope screenshot is attached. The screenshot shows SCK and MISO. What am I doing wrong?
mem_test.ino (852 Bytes)
wb_w25n01gv.h (1.63 KB)
wb_w25n01gv.cpp (888 Bytes)