Arduino SPI Clock Timing Issues

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)

The Arduino website did not upload the image. It is attached to this post.

I know this was over a year ago, but I had the exact same problem and solved it with a pull-up on MISO.