Why my M25P16 SPI Flash is not responding to Read ID command
I not sure if this problem was solved, I had exactly the same problem as you two days ago and nothing on the internet I found helped, it seems everyone had a unique problem expect yours... 

After 2 days of debugging I found the solution, its very simple.. the chip 3.3V tolerant (power supply and input signals.. they NOT 5V tolerant!), if your input signals is NOT 3.3v i.e (Input CLOCK, CS, MOSI, MISO) the flash chip will not respond. 

All I did was use a level translation using a 74HC4050, it is always a good test to make sure communication is 100% by sending a device id request to the chip, then proceeding to working with memory writes and reads.  

Funny, after two days of exceeding the input signals with a 5V input the chip still works, maybe internally some sort of (undocumented) protection clamp was active.    

I hope this helps.