No funciona (Arduino nano ESP32) + (W25QXXX (libreria SPIMemory.h))

Hola, a ver si me pueden ayudar.
Estoy intentando conectar una memoria externa W25Q128 mediante la libreria SPIMemory.h a un arduino nano ESP32, estoy usando los pines:

Memoria Arduino
CS -------------------- D10
CLK ------------------ SCK (D13)
DO ------------------- CIPO(D12)
DI -------------------- COPI(D11)
GND ---------------- GND
3V3 ----------------- 3V3

La alimentación la coge del arduino nano esp32 3.3V, El arduino esta conectado por USB y el codigo que estoy usando es el ejemplo que tiene la libreria:

#include <SPIMemory.h>

char printBuffer[128];


SPIFlash flash;

void setup() {

  Serial.begin(115200);

  delay(50);  //Time to terminal get connected
  Serial.print(F("Initialising"));

  flash.begin();

  Serial.println();
  Serial.println();
}

void loop() {
  delay(500);

  Serial.println();
  Serial.println(F("  Function 1 : Get JEDEC ID    "));
  Serial.println();

  uint8_t b1, b2, b3;
  uint32_t JEDEC = flash.getJEDECID();
  //uint16_t ManID = flash.getManID();
  b1 = (JEDEC >> 16);
  b2 = (JEDEC >> 8);
  b3 = (JEDEC >> 0);

  sprintf(printBuffer, "Manufacturer ID: %02xh\nMemory Type: %02xh\nCapacity: %02xh", b1, b2, b3);
  Serial.println(printBuffer);

  sprintf(printBuffer, "JEDEC ID: %04xh", JEDEC);
  Serial.println(printBuffer);
  Serial.println();
  Serial.println();
}

Cuando lo pruebo solo recibe 0000h he probado tambien SPIFlash flash(21); pero tampoco funciona.

Gracias

Coloca por favor toda la respuesta que sale por monitor serie.

Hola gracias por responder.
Esto es lo que obtengo en el puerto
rs232

Esta es la conexión que tengo realizada.

Gracias

Hi,
Adjunto foto del esp32 pinout.Los pines deben ser nombrados como D0 = 47 ,DI = 38 y SCK = 48

Hola, así tengo colocado los cables, pero no puedo definir esos pines en la libreria, entiendo que esos son los pines del SPI que tiene por defecto por lo tanto la libreria los coge por defecto, yo he puesto el CS al pin 21 y he colocado SPIFlash flash(21);.

Sigue sin funcionar

Hi,
Haz tratado de poner los pines como te lo explicaba los pines. Creo que no debes de usar los Dxx sino los GPIO48 debes de ponerlos como 48,38,47. Se me olvido preguntarte si corriste los ejemplos que trae la libreria.

Hola, lo que no he entendido es donde debo poner los pines 48,38,47 en el código. Porque la libreria no deja definir ningun pin.
Lo único que he podido definir es el pin CS que lo he puesto como decís GPIO21.
He probado los programas que traen y no funcionan.

Yo tengo un Sparkfund thing ESP32 y tengo esta misma memoria funcionando con esta libreria, pero al pasarlo al arduino nano ESP32 no funciona.

He probado con un osciloscopio en cada uno de los pines del arduino nano ESP32 y no hay ninguna señal en ningun pin. Tampoco cuando cambio la version de la libreriaa otras anteriores.

Me da la sensación que no esta generando las señales.

Hi,
Aqui yo creo que como el arduino nano esp32 fue introducido recientemente en el mercado la libreria todavia no ha sido modificada para el NANO esp32.

Hola pues no lo se.

Hoy he realizado unas pruebas y e he dado cuenta que si se genera el pulso en SCK y MOSI pero solo en la llamada flash.begin(); he activado el diagnostico de la libreria y el resultado de la llamada flash.begin(); es = 0 lo que significa:

The function returns TRUE if successfully executed and FALSE if otherwise.

a partir de ahi ya no genera mas señales en la llamada de lectura, escritura, etc. Parece que como no se inicializa no funciona la librería.

seria posible y relativamente fácil actualizar la librería?
En la libreria pone que esta reparada para arquitectura ESP32.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.