flash NAND a zapis bez vymazani bloku
Libor Konečný
support na mikrovlny.cz
Neděle Duben 28 20:21:16 CEST 2019
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
Další informace o konferenci Hw-list