SPI Flash: La mitad de los bits son cero

3

Tengo un STM32 con dos Flashes SPI muy similares, y un N25Q y un M25P .

Extrañamente, mientras mi controlador maneja el N25Q perfectamente bien, el M25P solo funciona "a medias". Lo que sucede es que cuando escribo una página de bytes y leo esa página, los cuatro bits MSB de cada byte son 0, y los cuatro bits LSB de cada byte son correctos.

¿Qué podría estar causando que la mitad de los bits sean 0?

    
pregunta Randomblue

3 respuestas

8

¿Borraste primero las páginas de memoria afectadas? Para la memoria flash, puede cambiar solo de 1 a 0 (la hoja de datos M25P de arriba indica esto explícitamente en la página 22, en el N25Q está en la página 12). Entonces, si el M25P se llenó con 0x0f antes, obtendrías exactamente ese resultado. Cuando usa el mismo comando de escritura (0x02) para ambos, debería estar bien. El uso del modo dual o cuádruple resultaría en 2 (o 4) bits incorrectos, pero no en medio byte. Dado que supongo que programa una página completa, creo que esto no puede ser atascado bits de dirección. Otras fuentes para el problema podrían ser: falta el capacitor de bloqueo para el IC de destello o el modo SPI incorrecto (lo que puede causar resultados extraños, ya que normalmente usted lee los datos exactamente en el momento en que está cambiando). El último se puede verificar con un analizador lógico o un alcance.

    
respondido por el hli
1

Una razón obvia es si intentaba usar funciones de "escritura rápida" de datos duales y en cuadratura diseñadas para el N25Q que no son compatibles con el M25P. Pero sospecho que ya lo sabes.

    
respondido por el Tony EE rocketscientist
1

¿Tiene un número diferente de bits ficticios para el M25P? Esto posiblemente explicaría lo que está viendo si se lee un byte a la vez.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas