Salvataggio della memoria RAM durante la scrittura in flash NAND di dimensioni pagina 2K


10

Sto scrivendo un driver per il Samsung K9WAG08U1D NAND flashchip. Le specifiche del chip di memoria indicano che ha una dimensione di pagina di 2048 byte (2kB). Sto usando un TI MSP430F2619che ha 4096 byte (4kB) di RAM. Questo significa che ho bisogno di allocare un buffer di memoria 2k solo per scrivere su Flash. La mia applicazione è un convertitore di protocollo e quindi richiede un buffer aggiuntivo per gestire la trasmissione avanti e indietro. Per favore, suggeriscimi un approccio migliore per ridurre i requisiti di RAM dovuti alla dimensione della pagina flash.

Risposte:


7

Non è necessario compilare il registro della pagina tutto in una volta.

Si inizia a scrivere una pagina (ovvero l'operazione "Programma pagina") scrivendo il comando di input dati seriali ( 0x80), l'indirizzo della colonna e l'indirizzo della riga. Quindi si trasferiscono i dati nel registro pagine (fino a 2112 byte). Questo trasferimento può essere suddiviso in blocchi, con qualsiasi ritardo tra i blocchi di cui hai bisogno.

Dopo aver riempito il registro delle pagine, si avvia il trasferimento dal registro delle pagine all'array con il comando di conferma del programma di pagine ( 0x10).


si noti che i flash NAND sono generalmente limitati a 4 scritture parziali per pagina

1
@Jacen Non mi riferisco a una scrittura parziale per pagina. Ciò viene fatto da un comando / indirizzo / dati / sequenza comandi separati per parte. Mi riferisco a interrompere il trasferimento al registro delle pagine, che può essere un "blocco" per byte se necessario.
Patrick,

Fondamentalmente la mia logica del driver corrente era in attesa di riempire l'intero buffer 2K nella RAM e quindi scrivere su Flash. Ma ora posso avere anche un buffer RAM di almeno 1 byte.

Oh sì, hai ragione Patrick, ho dimenticato questa opzione.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.