Flash SST 39SF020A, SST 49LF040

Náhrady součástek všeho druhu, informace a dotazy k součástkám

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 20531
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

Flash SST 39SF020A, SST 49LF040

#1 Příspěvek od Celeron »

Všera jsem pobastlil redukci PLCC32 na DIL32. Mám to na programování Flash a procíků v programátoru Xeltec, kterej má jen patici DIL48.
Vydloub jsem ze starých prken biosový flash viz předmět a začal je zkoumat v programátoru. Obě Xeltec podporuje. Zkusil jsem čtení a OK, texty Avard bios a podobně. Výmaz celý flash do FFh šel taky. Našel jsem v PC dlouhej zdroják v ASM a naprogramoval ho do Flash. Taky OK. Pak jsem začal bádat, co to je výmaz blok a výmaz sektor. V Xeltecu se dá nastavit adresy odkud až kam číst, programovat , mazat a pod. Ale nějak mě není jasný, jak funguje výmaz blok a výmaz sektor. Z datašítu to nějak nechápu. 49LF040 píšou, že má 4 Kbyte sektory a 64 Kbyte bloky. Myslel jsem si, že bloky mají adresy: 0-FFFFh, 10000h-1FFFFh, 20000h- atd. A sektory 0-FFFh, 1000h-1FFFh, 2000k- atd. Výmaz blok jsem zadal 0-FFFFh a nic se nestalo. Výmaz sektor 0-FFFh mi šel, ale taky šlo vymazat třeba jen 0-5h. To je divný, myslel jsem si, že blok i sektor se maže vždy celý.
Nikdy jsem s Flash nic nedělal. Je tu prosím někdo, kdo si hrál s podobnejma Flash a mohl by mě trochu vysvětlit, co je špatně nebo co dělám blbě?
Díky
Jirka
Uživatelský avatar
rnbw
Příspěvky: 37426
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#2 Příspěvek od rnbw »

Neviem, co ten tvoj programator robi, ale maze sa vzdy cely blok alebo sektor, nikdy nie nejaky rozsah adries. Do prikazu mazania sa zadava len jedna adresa (lubovolna adresa v ramci bloku, ktory sa ma zmazat).
Uživatelský avatar
Celeron
Příspěvky: 20531
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#3 Příspěvek od Celeron »

Potvrdils, co jsem si myslel. Takže ten programátor musí nějak buferovat sektory. Asi si sektor načte, uloží do RAM, udělá v ní změnu, vymaže sektor ve Flash a pak ho zapíše z RAM. Na blok 64Kbyte možná nemá dost paměti a tak to po blocích nejde. Budu ještě dál bádat.
Díky
Jirka
Uživatelský avatar
Celeron
Příspěvky: 20531
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#4 Příspěvek od Celeron »

Takže při mazání sektoru pošleš povolovací mazací sekvenci pěti adres a dat podle manuálu a šestá adresa musí být v rámci mazanýho sektoru.
Když tedy chceš zapsat do sektoru změnu, musíš si sektor nejdříve načíst do 4Kbyte buferu v Ramce, tam udělat změnu, vymazat starý sektor a pak zapsat změněný sektor zase zpět. A při každý zápisový a mazací operaci kontrolovat Polling bite, zda už je zápis hotovej. Je to tak?

Ještě mě v manuálu mate, jestli při zápisu sektoru se pošle povolovací zápisová sekvence s počáteční adresou pouze jednou pro celý sektor a pak jen zvyšuješ adresu +1 a měníš data a dáváš /WE nebo /CE a nebo zda musíš posílat povolovací zapisovou sekvenci 4096 x pro každou adresu a dato v sektoru. Jestli jo, tak to žádnej rychlík nebude. Koukám, že to bude nejlepší ubastlit a vyzkoušet...
Jirka
Uživatelský avatar
rnbw
Příspěvky: 37426
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#5 Příspěvek od rnbw »

Mozes programovat len "nuly". To mozes robit bez zmazania. Ak chces ale niekde z nuly urobit jednotku, musis cely sektor precitat, zmazat a naprogramovat znovu.

Tieto flash sa zapisuju po bajtoch, takze pre kazdy bajt musis zopakovat cely prikaz. Bajty, kde ma byt 0xFF, sa neprogramuju.

Co sa tyka rychlosti su najlepsie 29EE010/011, resp. W29C020 - tam sa zapisuje po strankach/blokoch tusim 128 alebo 256 B - vymaze a preflashuje sa to cele za par sekund.

Na kontrolu ukoncenia operacie su dve metody: DATA polling a toggle bit.
Odpovědět

Zpět na „Součástky“