flash NAND a zapis bez vymazani bloku

Libor Konečný support na mikrovlny.cz
Středa Květen 1 18:46:16 CEST 2019


Pokud vymazu blok a zapisu celou page na 0x7800 pak se zapise v poradku 
a nic neprepise.
Pokud vymazu blok a zapisu page na 0xF800, tak se zapise cela page na 0x7800
Takze problem je v zapisu a vypoctu stranky..
Diky za nakopnuti, ted se jen dopocitat.

LK



Dne 1.5.2019 v 16:37 Slavo Tomascik napsal(a):
> Momentalne mi nic nenapada, ale 0x7800 je nahodou 2048*15. Nieje 
> niekde +-1 problem? Na ktorych adresach nastane prepis, ked sa 
> zapisuje od adresy 0x7800? Skus zapis nad 0xF7FF. Myslim, ze tam dojde 
> k rovnakej chybe. V tom pripade by som to videl na chybu vo 
> vyratavani/zapise adresy page.
> Spare data nie je potrebne myslim zapisovat. V ramci page load ked tam 
> bude 0xFF, tak by to malo byt OK.
>
> Slavo T.
>
>
> On Wed, May 1, 2019 at 4:02 PM Libor Konečný <support na mikrovlny.cz 
> <mailto:support na mikrovlny.cz>> wrote:
>
>     Ano ECC je zapnuty, zapisuji do bufferu 2048+64 bajtu.
>     Tedy  cca zapis do bufferu pameti :  for 0 to 2112 SPIwrite[buf++];
>
>     Ale v buf jsou vzdy same 0xff a uzivatelskych 512 dat a zapise se
>     execute  cely buffer.
>
>     Adresa si myslim je pocitana spravne tedy DIV 2048  a zapsani do
>     16 bitu pri prikazu Execute.
>     (zkousel jsem najit nejaky drivery a tam to maji taky tak).
>
>     Nic uz me nenapada, data se zapisuji  spravne do adresy 0x77FF a
>     pak  to zapisuje spravne az od 0x8000 .
>     Nad 7800 se to  prepisuje.
>     nepomaha posunout zapis adresy  o cely blok, opakuje se to, je tam
>     evidentni zavislost, ale netusim jaka ;-)
>
>     Ty spare data se musi nejake zapisovat (4x16bajtu)  pri zapisu po
>     512 bajtech dat , nestaci tam mit taky 0xFF?
>
>     LK
>
>
>
>     Dne 1.5.2019 v 12:38 Slavo Tomascik napsal(a):
>>     A ECC controller je teda teraz zapnuty? Tazko hadat, preco k tomu
>>     dojde pri cca 31kB. Zle generovana adresa stranky? Niekde
>>     zabudnute pripocitanie spare oblasti? Prepisanie buffra pred
>>     ukoncenim programovania stranky?
>>     NOR a NAND pamete sa nedaju porovnavat. NAND _su_ komplikovane.
>>     Je to dan za vysoke kapacity. No ked sa ide dosledne podla
>>     dataheetu...
>>     Skoro kazdy vyrobca MCU ma kniznice pre pracu s NAND. Treba
>>     hladat tam.
>>
>>     Slavo T.
>>
>>     On Tue, Apr 30, 2019 at 8:41 PM Libor Konečný
>>     <support na mikrovlny.cz <mailto:support na mikrovlny.cz>> wrote:
>>
>>         Tak  zapis po 512 bajtech pomohl, ale trapim se dale....
>>         Kdyz zapisu cca 31kbytes, tak zapis dalsi page totalne jakoby
>>         prepsala i castene page pred ni.
>>         Se mi nechce verit, ze by to bylo tak komplikovane.U NOR
>>         paralelni flash  mi to nedelalo.
>>         SPI sbernici mam napsanou vlastni a vyuzivam 4 bitove cteni
>>         na jeden clock, ale ani po jednom bitu neni zmena k lepsimu.
>>         SPI radic z procesoru s presnym casovanim nepouzivam.
>>         Je mozny problem v casovani ?
>>         U paralelni NOR tam to casovani musi byt presne, ale u NAND
>>         SPI taky ?
>>
>>         Existuje nejaky levny USB programator, ktery bych koupil pro
>>         test?
>>         Existuje  SDK s podobnou SPI NAND pameti?
>>         Zkusim jeste jineho vyrobce.
>>
>>         Dekuji
>>         LK
>>
>>
>>         Dne 28.4.2019 v 22:11 Slavo Tomascik napsal(a):
>>>         Aha, tak to je jasne. ECC je podmienka. Bud pouzivat
>>>         integrovany controller, alebo si napisat vlastny. To je NAND
>>>         pamet. Zapisom sa menia hodnoty susednych buniek, citanim sa
>>>         menia bunky, bunky nedrzia hodnotu...
>>>         Bez ECC ani byte.
>>>
>>>         Slavo T.
>>>
>>>         On Sun, Apr 28, 2019 at 9:34 PM Libor Konečný
>>>         <support na mikrovlny.cz <mailto:support na mikrovlny.cz>> wrote:
>>>
>>>             Ano je to tento obvod.
>>>             Dekuji vsem za hodnotne podnety.
>>>
>>>             Tu kapitolu jsem cetl, ECC mam vypnuty =0, ale nebylo mi
>>>             jasne, ze je podminkou minimalni blok strikne 512.
>>>
>>>             Jaky je vyznam pri ECC=1 a spare area ? Je lepsi  mit
>>>             ECC 1 nebo 0?
>>>             Ja budu potebovat jen 2048 bajtu na stranku, opetovny
>>>             zapis bude tak jednou do roka, nez se pamet zaplni.
>>>             Cteni bude hodne caste.
>>>
>>>             Upravim tedy zapis do pameti na min 512, data totiz maji
>>>             ruznou delku, tak to bude komplikovanejsi.
>>>             A otestuji jeste vydrz na pocet ctecich cyklu.
>>>
>>>             LK
>>>
>>>
>>>
>>>             Dne 28.4.2019 v 21:14 Slavo Tomascik napsal(a):
>>>>             Zdravim,
>>>>
>>>>             ak je to tento obvod,
>>>>             https://www.mouser.sk/datasheet/2/877/Toshiba%20Memory%20America%20Inc_10242017_TC58CVG0S3HxAI-1218038.pdf
>>>>             tak je v datasheete priamo kapitola
>>>>             6.4. Several Programming Cycles on the Same Page
>>>>             (Partial Page Program)
>>>>             nie je to celkom jasne napisane, ale mam za to, ze
>>>>             treba zapisovat 512B, aby fungoval ECC controller.
>>>>
>>>>             Slavo T.
>>>>
>>>>
>>>>             On Sun, Apr 28, 2019 at 8:21 PM Libor Konečný
>>>>             <support na mikrovlny.cz <mailto:support na mikrovlny.cz>> wrote:
>>>>
>>>>                 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
>>>>                 <http://www.HW.cz>
>>>>                 Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>>                 http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
>>>>             Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>>             http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>             _______________________________________________
>>>             HW-list mailing list  -  sponsored by www.HW.cz
>>>             <http://www.HW.cz>
>>>             Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>             http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>>
>>>         _______________________________________________
>>>         HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
>>>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>         _______________________________________________
>>         HW-list mailing list  -  sponsored by www.HW.cz
>>         <http://www.HW.cz>
>>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>     _______________________________________________
>>     HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
>>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>     http://list.hw.cz/mailman/listinfo/hw-list
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20190501/39d625aa/attachment.html>


Další informace o konferenci Hw-list