Pagina de pornire a lui Migera, reparația unității flash pe controlerul smi

A trebuit să întâlnesc de fapt și practic această problemă pe exemplul uneia dintre unitățile mele flash. Sa dovedit a fi Corsair Voyager GT 16Gb - cel din carcasa de cauciuc si cu insertii rosii. În funcțiune a fost mult timp - aproximativ șase luni, iar apoi cu activitate scăzută (în comparație cu alte unități flash, Koi am folosi împreună pentru a stoca diferite tipuri de date), dar a fost primul „a eșuat“ și îngropat în profilul lor (de altă parte, și mult mai vechi discuri flash funcționează la nivel mondial până acum). Acest Corsair a luat acest lucru nu numai datorită carcasei de cauciuc răcoroase și prețului rezonabil pentru acest volum, dar și, în primul rând, pentru viteza promisă a muncii sale.

O mică digresiune lirică. Ar trebui să se înțeleagă că componente ale diferiților producători iau parte la fabricarea oricărei unități flash. În general, există trei părți principale:

  1. Sistem electronic "inteligent" - controler și microcipuri (unul sau mai multe) din matricea de memorie flash. Produs de diverse companii și vândute în loturi de cel puțin 1000 de bucăți pentru cei care sunt gata să sculpte dispozitive diferite de la ei;
  2. Dezvoltarea, fabricarea unei plăci de circuite imprimate, precum și selecția și sigilarea componentelor din punctul anterior și alte "rassypuhi" însoțitoare - este deja angajată într-o altă companie. De fapt, este, în cazul nostru, o unitate flash. Acest așa-zis. OEM-producător;
  3. Colectate și deja gata punct de vedere tehnic pentru unitatea flash (sub formă de eșarfe cu chips-uri, conectori, etc.) trebuie să zashtampovannoe, de asemenea, în organism, a pus într-un pachet frumos, pentru a completa orice soprovodilovka etc. În cazul unei unități flash, vedem eticheta acestei companii. În plus, "electronica" unității flash are capacitatea de a personaliza pentru a "perpetua" numele (codul) producătorului său. Și, bineînțeles, ultimul care și-a pus mâna (producătorul corpului și ambalajul) își lasă aici numele.

Pentru a înțelege ce tip de hardware este de fapt asamblat pe o placă flash, nu este ușor să vskidku. Metodele software nu dau întotdeauna rezultate fiabile, singura care este exactă este dezasamblarea și aspectul. Aceasta este adesea o sarcină non-trivială. Cazurile sunt adesea făcute astfel încât prin simpla apăsare a acestora, este pur și simplu imposibil să le deblocați fără a se deteriora.

Și astfel vom examina mai îndeaproape ce reprezintă unitatea flash. Și dispozitivul este necomplicat, deoarece într-adevăr, dimensiunea nu este mare. Principalele componente sunt o memorie controler de matrice și flash, printre orice rassypuhi irelevantă poate fi încă observat stabilizator de tensiune (de la 5V la port USB 3B primește comanda, în funcție de modelul de controler și memoria) și un rezonator cu cuarț (deși acest lucru este mic). Controlerele, precum și chipsurile de memorie, sunt produse de producători complet diferit - colectorul este implicat în selectarea "perechii" (a se vedea punctul 2). În acest caz, vom vorbi despre compania Silicon Motion Inc și controllerul său avansat SMI-324, aplicat pe unitatea flash Corsair Voyager GT. Trebuie să spun că, după incident, portaltoiul de mai jos cercetare și redactare a acestui document meu, relația mea cu producția SMI a scăzut prin podea - nu spune, și controlere Alcor sunt mult mai fiabile și previzibil. Dar înapoi la subiect. Ce funcții funcționează flash-ul controlerului - cred că este clar. Ce este un controler cu o parte este la dispoziția utilizatorului final, echipat cu o abordare de inginerie pentru tehnica (nu este un secret faptul că „Neveste“ flash drive - este doar o „cutie neagră“ - și toate)? În imensitatea internetului, am reușit să găsim o astfel de schemă:


Nu este nimic neașteptat în legătură cu faptul că această schemă nu ne prezintă - totul este extrem de simplu și de înțeles. regulator electronic dedicat, pe lângă miezul (procesor, memorie, program și date) cuprinde o periferie adaptată să comunice cu portul USB pe de o parte și de chips-uri de matrice de memorie flash la altul. Tipul și cantitatea de cipuri de memorie acceptate și numărul acestora, precum și caracteristicile de viteză posibile sunt determinate de capacitățile controlerului. Într-un mod bun, dezvoltatorul (colectorul) unității flash ar trebui să ia în considerare în mod optim și să selecteze aceste componente pentru produsul său - din păcate, dar acest lucru nu este întotdeauna cazul.

Dezvoltatorul controlerului, desigur, a avut grijă de "flexibilitatea" dispozitivului său, oferind posibilitatea de a actualiza firmware-ul ("firmware"). Firmware-ul este stocat într-un spațiu special alocat pentru acest controler de memorie flash, deși nu este exclusă posibilitatea de a folosi acest lucru ca un mic (8-picior) de memorie mikroshemki separat și folosind o parte a corpului principal al memoriei flash. Pe lângă firmware, există o unitate de configurare care poate fi stocată și în diverse locuri (vezi mai sus). Firmware-ul, aparent, determină suportul diverselor cipuri de memorie, modurile lor de funcționare, probabil algoritmi generali pentru dispozitiv. Unitatea de configurare stochează informații despre o anumită modele de utilizare unitate flash în sine (tipul de stocare tipul de dispozitiv emulat și modul de funcționare a cip de memorie matrice, dimensiunea și numărul de partiții de date și tipul acestora, blocurile nalichiebad și localizarea acestora, precum și alți parametri ai operatorului, informații „estetică“ despre dispozitivului și producătorului acestuia).

Utilizarea unei unități flash la nivelul unei "gospodine" nu presupune, poate, chiar formatarea acesteia. Pentru utilizator, există, de exemplu, instrumente cum ar fi «HP USB de stocare pe disc Format Tool» care permite pentru a formata unitatea în orice sistem de operare disponibile, sistemul de fișiere (FAT, FAT32, exFAT, NTFS). Pentru utilizatorii „avansați“, de multe ori grupate pe unitatea flash CD-ROM-ul, există un utilitar pentru „defalcare“ Flash pentru câteva (de obicei două) secțiuni (la nivel controler flash, nu la nivel de sistem de operare), și este adesea posibil protejați unul dintre ei cu o parolă. În astfel de utilități, uneori există o funcție de formatare "la nivel scăzut" (cu verificarea "suprafeței discului" - celulele matricei de date).

Dar există utilități chiar mai mult "scăzut" - nivelul de serviciu de lucru cu controlerul unității flash. Cea mai completă colecție de utilități de acest tip și pentru controlere diferite conține site-ul flashboot.ru, care, aparent, le colectează, inclusiv din zonele memoriale ale forumurilor tematice chinezești (alte locuri ale locației lor nu sunt cunoscute de Google).

Documentația pentru majoritatea controlorilor nu este aproape găsită, dar puteți găsi informații despre cipurile de memorie.

Apoi, am abordat în sfârșit partea practică a descrierii. Eu, ca inginer, sunt întotdeauna interesați să "săpat" în setările oricărui dispozitiv, nu numai pentru a le optimiza, ci și pentru a înțelege principiul funcționării (în nuanțe). După ce am dat vreodată pe site-ul flashboot.ru, am descarcat cu ușurință utilitarele utilitare pentru toate unitățile flash și, dacă este posibil, "încercat" fiecare. Corsair Voyager GT nu a făcut excepție. Sa dovedit că firmware-ul care vine cu versiunea următoare a utilitarului (și actualizările flashboot.ru apar în mod regulat) a fost mai nou decât cel din unitatea flash - desigur, a fost făcută o actualizare de succes. Nu am observat nici un adevăr "vreme". Pentru a fi sincer, nu a fost doar o chestiune de a încerca să actualizați. Așa cum am spus, cartea flash Corsair Voyager ca întreg, și în special GT, a fost aleasă în principal din cauza vitezei ridicate promise - până la 20MB / s pentru scriere și până la 30MB / s pentru citire. În practică, totul sa dovedit a fi mult mai modest, deși a depășit performanțele altor unități flash. Totul nu contează, iar în timp, viteza a scăzut și a scăzut. Am experimentat formatul cu diferite utilitare și sisteme de fișiere și cu dimensiunea clusterului - rezultatul nu sa schimbat prea mult (viteza inițială a noii unități flash nu mai era acolo). Actualizat firmware - viteza a crescut ușor, dar nu pentru lung. De asemenea, utilitarul de utilități nu mi-a putut da răspunsul la această întrebare - în această privință am închis subiectul. Viteza lui Corsair a scăzut atât de mult încât a devenit comparabilă cu viteza oricărei alte unități flash de la mijlocul nivelului.

Un "bummer" a avut loc, ca de obicei, fără avertisment cu privire la necesitatea de a crea o copie de rezervă. Din păcate, nu pot da nici o recomandare cu privire la modul de a evita un astfel de lucru în viitor - pentru că nimic nu este în neregulă cu un drive flash, a fost exploatat alături de alții. Doar porniți data viitoare când sa descoperit că discul „nu poate fi citit“ și toate informațiile „vizibile“ despre producătorul și dispozitivul (linia de informații) luat un anumit „formular standard“ (pe informațiile controler). Capacitatea discului este zero. și asta e tot. Primul lucru care mi-a venit a fost să actualizez configurația zburată și de dragul firmware-ului, am salvat profilul pentru programul de service. Ce sa făcut - rezultatul este zero. Totul este același ca înainte. Apoi, sensibil zgârierea napi, amintindu teoria și studiile anterioare au fost doctored setările în acest domeniu, vreau să rețineți că în timp ce am fost încă de așteptat să „trage“ datele pierdute și toate casetele de selectare, făcând aluzie la lovitura lor de curățare. Dar nu a existat niciun rezultat pozitiv. Între timp, în timpul următorului ciclu de reconfigurare și firmware, utilitarul atârnă și o unitate flash. este pe moarte. Acum, chiar și atunci când a fost conectat, doar "dispozitivul necunoscut" a apărut în sistem - de fapt, identificatorii vid și pid au fost raportate a fi zero.

Apoi, o parte din tehnică. Prima încercare de succes a fost închiderea contactelor 29-30 pe cipul de memorie de pe partea rezonatorului (controlerul și cel de-al doilea cip pe partea din spate). Ca rezultat, un sistem cu identificatori, alții decât zero, a apărut în sistem. Și datorită faptului că, în timpul dansuri precedente de lemn pentru modul de serviciu al controlerului au fost deja - și ei imediat „captură“, care arată unitatea flash în formă de «SMI Factory driver». Pentru acest driver și modul există un "daw" separat în programul de service. A fost ușor, programul de service a început din nou să vadă unitatea flash. Potrivit informațiilor despre dispozitiv și a dump-ului firmware-ului actual, a devenit clar că memoria firmware-ului este complet resetată, pare să se umple una nouă etc. Dar nu, erorile au început să mă bântuie în orice încercare de a scrie ceva pe o unitate flash (firmware, config, șablon de testare). A încercat o mulțime, și diferite versiuni de instrumente de servicii (oferta este încă pe ultimul - I0414), și a încercat să împingă firmware-ul pentru un controler diferit, și skonfigurit la diferite cipuri de memorie - rezultatul este același - modificările nu sunt salvate și controller „fără ace“ și zerouri care se sustrag . Am incercat diferite computere si moduri USB (1.0 / 2.0). Un punct interesant a fost faptul că unul dintre computerele chiar proinstallenym conducător auto «SMI Factory driver» definit unitatea flash ca un dispozitiv de stocare (numele controlerului și dimensiunea zero) -, respectiv, în DAW programul a trebuit să trage, dar de fapt nu se schimba. Momentul decisiv a fost despre parola pentru introducerea modului Debug în programul de serviciu, ceea ce deschide și mai multe oportunități decât funcțiile sale obișnuite. Manipularea în fereastra Debug ar putea (aproape accidental - din moment ce nu este prima dată), pentru a se asigura că unitatea flash „modul de serviciu“ a fost dor de tine, și fără „ac“. Ei bine și mai departe în ea cu succes firmware-ul și o configurație a stabilit, de asemenea. Și apoi afacerea tehnologică - a laminat identificatorii corecți (plus alte setări pe care le-am luat pentru această unitate flash), formatat pentru fidelitate și înainte. Ura! Acesta funcționează.

Desigur, restaurarea datelor de vorbire nu este - deși pe de altă parte, nu este clar următoarele: Toate manipulările cu firmware-ul, configurarea și alte lucruri se întâmplă foarte repede - de data aceasta nu este clar într-adevăr întreaga matrice de memorie (scriere secvențială) - ci o serie de foarte curat! (toate zerouri). Pe de altă parte, în cazul în cipurile de memorie au posibilitatea de a șterge blocuri mari - capacitatea de a reseta rapid acolo. în caz contrar, nu presupune că există utilizarea o serie de blocuri din tabel, iar în cazul în care blocul este marcat neutilizat, se traduce doar zerouri și nu pot fi citite.

Mai multe detalii despre exemplul meu de unitate flash care nu este destul de determinat de ceea ce este într-adevăr (comparație pe baza rezultatelor autopsiei):

Partea din față a casetei și a plăcii:

Partea din spate a casetei și a plăcii:

O definiție diferită a tipului de memorie, probabil datorită faptului că primele cifre ale identificatorilor pe baza flash_324BC.dbf fișier acestea sunt aceleași, numele reflectă faptul că primul din lista (dar că într-adevăr este cusut în configurația - este necunoscut, deci nu este mai bine aici sin - pentru fiabilitate).

Acum ce este legat de utilitate. În primul rând, pe scurt, vom descrie algoritmul de interacțiune și structura ferestrelor. Și, cel mai important, parola "320" este utilizată pentru a accesa pagina "Setare". la pagina "Debug" - "1111".

Nu este inutil să instalați simultan driverul de mod de serviciu al controlerului, executând programul de instalare din folderul corespunzător sistemului de operare (de exemplu. \ UFD_MP \ FactoryDriver \ WinXP). Primul buton instalează driverul modului de serviciu al unității flash, al doilea îl înlătură, al treilea nu face nimic. O pereche de butoane din partea de jos activează sau dezactivează un cip, pentru că controllerul nostru (SMI 324BC) este inaplicabil.

Fereastra de bază a programului arată astfel:

Aici cel mai de bază la programul văzut unitatea flash pe unul dintre portul serial virtual în partea centrală a ferestrei, precum și mufa din partea de jos - are nevoie de butonul potyrkat «Scanare USB», nu uitați că, în cazul «SMI Factory șofer» serviciu șofer (atunci când contactele spiked cu un ac) a pus un daw "Factory Driver și HUB". Dacă încercări sunt inutile, în ciuda faptului că, în managerul de dispozitiv toate driverele modul sunt instalate și funcționează corect, apoi selectați din meniul «Config HUB» secțiune și consultați următoarele:

Aici trebuie să apăsați pe "Scanare USB (Automată)" înainte de apariția unui zero în panoul de porturi. Apoi faceți clic pe "Ok" și din fereastra de bază apăsați din nou "Scan USB". Cazul în care dispozitivul va fi văzut pe mai multe porturi simultan nu este exclus - în acest caz este posibil să încercați să utilizați prima dintre ele.

Dând dublu clic pe linia sau singur pe soclu, cu informații despre unitatea flash detectată, puteți apela fereastra cu informații detaliate despre această unitate flash:

Aici este recomandabil să folosiți butonul "Salvați". "Salvați informații diferite despre unitatea flash, cel mai important lucru este să salvați actualul firmware -" Save ISP ", dacă este, desigur, prezent și nu ucis deloc. Actuala versiune de firmware este afișată în câmpul "ISP Version".

Să ne întoarcem la fereastra de bază. Apăsarea butonului "Setare" și introducerea parolei "320" vă permite să efectuați setări prin preîncărcarea unor (sau salvate anterior) din orice fișier de setări. Pe baza datelor din care se va afișa o anumită configurație:

Ceilalți parametri ai ferestrei "Setare" nu sunt semnificativi în general, fie nu sunt aplicabili în special pentru acest controler și din acest motiv nu sunt descris aici.

Butonul "Debug" și introducerea parolei "1111" apelează fereastra corespunzătoare, în care puteți face multe lucruri interesante. Toate operațiunile, spre deosebire de fereastra "Setare", se fac imediat!

O persoană care are o idee de butoane microcontroler și atribuire alte microprocesoare din fereastra «Debug» nu ar trebui să cauzeze probleme semnificative, iar el va găsi aici o mulțime de lucruri interesante. Toți ceilalți nu trebuie să se îngrijească de scopul tuturor butoanelor. Permiteți-mi să spun că, în scopul de a restabili flash-ul de firmware care a fost ucis (oferă toate zerouri în ambele identificatori, și poate fi detectată doar în modul de serviciu, după închiderea de contact) - trebuie să faceți următoarele:

  • 1. Faceți clic pe butonul "Pretest" (cel de-al patrulea din al doilea grup al rândului aranjat vertical);
  • 1.1. Alegeți un șablon pentru pretest, situat în același dosar ca firmware-ul (în cazul nostru \ UFD_324BC \ SM324BCPTEST_4K_TWIN.BIN.);
  • 1.2. Așteptăm funcția comandată să funcționeze. LED-ul de pe unitatea flash cu acest proces trebuie să clipească în mod necesar (altfel, aparent flash drive-ul pentru un motiv pentru care noi "nu am înțeles" - trebuie să repetați funcționarea conexiunii, etc.);
  • 2. Faceți clic pe butonul "Ștergeți toate" (rândul cel mai de jos). Inițiat procesul, al cărui progres este prezentat nu numai prin LED intermitent pe unitatea flash, dar bara de progres spre dreapta butonului - operația durează câteva secunde (dacă totul sa întâmplat într-o clipă, înseamnă că ceva nu este corect, se repetă peste tot din nou);
  • 3. Închideți fereastra "Debug" și accesați "Setare" - efectuați configurația necesară (consultați explicațiile de mai sus), fără a uita să specificați tipul corect de controler și memorie. Fișierul firmware va fi selectat automat, deși poate fi setat manual. Folosirea opțiunii "Pretest" în majoritatea cazurilor este obligatorie (fără ca aceasta să nu funcționeze), iar în lista din dreapta este recomandat să alegeți "No Erase All". Se recomandă, de asemenea, să formatați unitatea flash în FAT32;
  • 4. Salvați configurația (mai bine în fișier) și faceți clic pe "Start". după finalizarea cu succes a unității flash "denaturează", iar driverul de serviciu trebuie dezinstalat (necesar).

E un fel de tot.
La cererea cititorilor, sunt posibile adăugiri.

Articole similare