Estoy intentando leer la identificación del dispositivo de una memoria flash serie utilizando las conexiones SPI en un mbed. En la hoja de datos de la memoria flash serie W25Q80 hay esta figura.
El siguiente es el código que estoy usando para intentar leer la ID del dispositivo.
#include "mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);
Serial pc(p9, p10); // tx, rx
int main() {
// Setup the spi for 8 bit data, high steady state clock,
// second edge capture, with a 1MHz clock rate
spi.format(8,0);
spi.frequency(1000000);
// Select the device by seting chip select low
cs = 0;
wait(1.0);
pc.printf("response from sending 90h: %d\r\n", spi.write(0x90));
pc.printf("response from sending 00h: %d\r\n", spi.write(0x00));
pc.printf("response from sending 00h: %d\r\n", spi.write(0x00));
cs = 1;
}
Todo lo que leo son 0s. A veces se lee 128 o 255. Eso está mal, ¿verdad?