<div dir="ltr"><div></div><div>bez navaznosti na konkretni obvod: u NAND flash je s moznosti chyby nutno pocitat a pouzivat nejake EEC a idealne i wearleveling .</div><div>Typicky lze dle vyrobcu bloky 2048 zapsat max.nactyrikrat, pokud zapisujete navickrat je nutna obnova. TM.<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ne 28. 4. 2019 v 20:21 odesílatel Libor Konečný <<a href="mailto:support@mikrovlny.cz">support@mikrovlny.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Zdravim osazenstvo.<br>
Jelikoz jsem zde fachmani na pameti, prosim je o radu.<br>
Poprve pouzivam SPI NAND NOR flash 1Gbit TC58CVG0S3HxAI, zapisuji a ctu <br>
data pres buffery  2048 bajtu, takova mirna podivnost.<br>
Coz neni problem, problem je jak zapisovat sekvencne data, ktere mi <br>
chodi pres tcpip stack a maji velikost, par desitek bajtu.<br>
Napsal jsem driver za par hodin, overil funkcnost a vse se zdalo ok, <br>
zajasal jsem ze konecne vec, ktera sla rychle ;-)<br>
Ale jen do nejake doby, kdy se pak bajty zacaly menit, tedy  jako by do <br>
nejakeho nahodneho  bitu se zapsala 0.<br>
<br>
Zapis mam reseny tak, ze poprve vymazu blok , bajty jsou na 0xFF<br>
Pak do bufferu (2048) nastavim same 0xFF a nahradim je bajty k zapsani ( <br>
adresa zapisu je posunute o delku predchozich).<br>
<br>
Udelal jsem test, kdy do bufferu nastavim <br>
0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,.........<br>
A zacnu jej bez mazani zapisovat a porovnavat.<br>
Po cca  110-122  zapisech  se objevi chyba, tedy jakoby se dostal 0nit <br>
do jedineho bytu a data jsou tedy nespravne, ukoncuji zapis a vytisknu <br>
si debug.<br>
Co je zahada, ze vzdy na stejne adrese, ale pri podobnem mnozstvi cyklu. <br>
Zkousel jsem davat ruzne zpozdovaci smycky, MCU uz nedela vubec nic <br>
navic, zadne preruseni atd..<br>
Dneska jsem si komunikaci odchytnul na analyzatoru a taky nic, to co tam <br>
ma prijit tam prijde.<br>
Bad block taky neni na dane adrese.<br>
<br>
Nicmene stejny zapis  jsem resil u ST25 (spi pameti, ale nejsou NAND) a <br>
tam to fungovalo bez problemu.<br>
Stejnou logiku zapisu jsem take rovnez pouzival  u NAND flash HYNIX, <br>
takove ty tenke, ale paralelni a taky bez problemu.<br>
Mazat to pred zapisem je nesmysl, blok ma totiz 132kBytes.<br>
<br>
Ma otazka je tedy, zda se s tim nekdo setkal, a zda budu muset zapis <br>
vyresit tak ze budu cekat az se naplni buffer 2048 a pak jej zapsat + <br>
dodelat nejaky timeout.<br>
<br>
A nebo se to zkratka neoporucuje a budu muset resit driver, kdy zapisu <br>
do page maximalne jednou ?<br>
<br>
<br>
Dekuji<br>
LK<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>