Cómo escribir más de una página a la vez en Winbond W25Q32JV

0

Estoy utilizando Eclipse IDE para el desarrollo de firmware. Estoy utilizando el módulo Quectel MC60 con Winbond W25Q32JV (4 MB de memoria). El problema es que puedo leer / escribir una sola página.

Estoy enfrentando un problema con la escritura de varias páginas a la vez. Tengo que escribir varias páginas a la vez, ya que había borrado el sector (consta de 16 páginas). Antes de escribir una página, tenía que borrar 1 sector.

Algoritmo general para escribir:

main()
{
// read from memory address adr

// erase sector (16 pages)

// write at address adr
}

Quiero utilizar páginas de memoria para un rendimiento óptimo. Cualquier ayuda será apreciada.

Gracias por su pronta respuesta.
Mi pseudocódigo es así:

char buff[256];

sector_erase(0);   // erase first 16 pages

memset(buff,7,sizeof(buff));

for(int addr=0;addr<16;addr++)
    {
    write_enable();
    page_program();
    spi_write(addr,buff);    // write page one by one and hence increment the address 
    while(status_register);   // polling status register
    }
    
pregunta Chandan Kumar

1 respuesta

2

Leyendo la hoja de datos , está claro que no puedes escribir más de una página en una sola operación. Para escribir cada página, deberá realizar la secuencia completa de < write-enable & gt ;, < page-program > (o < quad-input-page-program >), y luego sondee el registro de estado para completar. Probablemente solo quieras poner esta secuencia en un bucle.

No veo una forma más rápida de hacer esto.

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas