flash NAND a zapis bez vymazani bloku

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Duben 28 20:34:56 CEST 2019


Zacal bych studiem datasheetu pameti, casto skutecne neni povoleno 
prepisovat data na vicekrat do jednoho bloku. Asi se to programuje 
komplet a vicenasobne zapisy do MLC bunek nebudou OK.
Taky pozor na to, ze se data casto poskozujou i ctenim a doporucuje se 
bloky po nejakem poctu ctecich operaci smazat a prepsat.


Dne 28.04.2019 v 20:21 Libor Konečný napsal(a):
> Zdravim osazenstvo.
> Jelikoz jsem zde fachmani na pameti, prosim je o radu.
> Poprve pouzivam SPI NAND NOR flash 1Gbit TC58CVG0S3HxAI, zapisuji a 
> ctu data pres buffery  2048 bajtu, takova mirna podivnost.
> Coz neni problem, problem je jak zapisovat sekvencne data, ktere mi 
> chodi pres tcpip stack a maji velikost, par desitek bajtu.
> Napsal jsem driver za par hodin, overil funkcnost a vse se zdalo ok, 
> zajasal jsem ze konecne vec, ktera sla rychle ;-)
> Ale jen do nejake doby, kdy se pak bajty zacaly menit, tedy  jako by 
> do nejakeho nahodneho  bitu se zapsala 0.
>
> Zapis mam reseny tak, ze poprve vymazu blok , bajty jsou na 0xFF
> Pak do bufferu (2048) nastavim same 0xFF a nahradim je bajty k zapsani 
> ( adresa zapisu je posunute o delku predchozich).
>
> Udelal jsem test, kdy do bufferu nastavim 
> 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,.........
> A zacnu jej bez mazani zapisovat a porovnavat.
> Po cca  110-122  zapisech  se objevi chyba, tedy jakoby se dostal 0nit 
> do jedineho bytu a data jsou tedy nespravne, ukoncuji zapis a vytisknu 
> si debug.
> Co je zahada, ze vzdy na stejne adrese, ale pri podobnem mnozstvi 
> cyklu. Zkousel jsem davat ruzne zpozdovaci smycky, MCU uz nedela vubec 
> nic navic, zadne preruseni atd..
> Dneska jsem si komunikaci odchytnul na analyzatoru a taky nic, to co 
> tam ma prijit tam prijde.
> Bad block taky neni na dane adrese.
>
> Nicmene stejny zapis  jsem resil u ST25 (spi pameti, ale nejsou NAND) 
> a tam to fungovalo bez problemu.
> Stejnou logiku zapisu jsem take rovnez pouzival  u NAND flash HYNIX, 
> takove ty tenke, ale paralelni a taky bez problemu.
> Mazat to pred zapisem je nesmysl, blok ma totiz 132kBytes.
>
> Ma otazka je tedy, zda se s tim nekdo setkal, a zda budu muset zapis 
> vyresit tak ze budu cekat az se naplni buffer 2048 a pak jej zapsat + 
> dodelat nejaky timeout.
>
> A nebo se to zkratka neoporucuje a budu muset resit driver, kdy zapisu 
> do page maximalne jednou ?
>
>
> Dekuji
> LK
>
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list