Reading a flash memory through SPI

I’m trying to read the flash memory of a cheap IP-camera.
The chip is still on the mainboard of the camera as I dint want to desolder it and possibly break it.
So far I have wired up my Arduino Uno to the chip through a logic level converter (5V to 3.3V) using IC hooks. As far as I can tell, nothing else is running on the board when I power up the chip through it’s pins.

Here is my current code:

#include <SPI.h>

const int csPin = 10; // ChipSelect of mx25
byte received = 0;

void setup() {
  pinMode(csPin, OUTPUT);

  SPI.begin();
  SPI.beginTransaction(SPISettings(20000000, MSBFIRST, SPI_MODE0));
  delay(800);

  digitalWrite(csPin, LOW);
  delay(100);

  received = SPI.transfer(0x05);
  delay(100);

  digitalWrite(csPin, HIGH);
  SPI.endTransaction();
  SPI.end();

  Serial.begin(115200);
  Serial.print("received = ");
  Serial.println(received);
}

void loop() {
  
}

The datasheet for the flash memory is in the attachments.

The problem is that no matter what I do, it always receives 255.
The 0x05 command is supposed to be a command to read the status register of the flash chip and according to the datasheet, it can be sent at any time.

This is my first time trying to use the SPI protocol so if someone could tell me what i’m doing wrong or what I should do to make it work, it would be greatly appreciated.

MX25L6436F 3V 64Mb v1.2.pdf (1.03 MB)

As far as I can tell, nothing else is running on the board when I power up the chip through it's pins.

Almost impossible. If the chip gets power most probably all other components running on the same voltage level are also powered.

So far I have wired up my Arduino Uno to the chip through a logic level converter (5V to 3.3V) using IC hooks.

Post a complete wiring diagram! Also post a link to the datasheet/manual of your level converter!

You probably have to desolder the chip to read it successfully.