Cóż, utknąłem na tym przez jakiś czas, może 2-3 tygodnie w tym momencie. Po prostu nie jestem pewien, co robię źle. Próbuję pisać do tej części spi flash , a teraz po prostu uruchamiam procedury usuwania, pisania i czytania, aby spróbować ją odizolować, ale jak dotąd nie mam szczęścia. Oczywiście po drodze rozwiązałem kilka błędów ...
W każdym razie mam wysoką linię WP na płycie i spowolniłem zegar do 200 kHz, a następnie uruchamiam procedurę kasowania i wygląda to tak:
Najpierw sprawdzam identyfikator tylko w celu debugowania, to jest polecenie 9F, potem ustawiam WREN za pomocą polecenia 06, C7 to kasowanie całego układu, a następnie sprawdzam bit statusu za pomocą 05 i jest czysty. Czas wymazywania tego elementu wynosi tylko 35 ms.
Teraz ponownie ładuję kod i próbuję napisać:
Najpierw ustawiam WREN na 06, sprawdzam status, aby zobaczyć, że WREN jest ustawiony na 05, to znaczy, a następnie wysyłam polecenie programu strony 02 na adres 0x000000. Widać, że piszę deadcafe jako kilka pierwszych bitów. Również tutaj nie pokazano tego po zakończeniu zapisu (jedna strona lub 256 bajtów), wysyłam polecenie 0x04, aby wyłączyć WREN. Zauważyłem to i ustawiłem ostatnie cztery bajty mojego bufora strony na 0xAA, 0x55, 0xAA, 0x55 i widziałem je tuż przed osiągnięciem wysokiego poziomu CS.
Teraz przestań ponownie ładować kod i spróbuj uruchomić cykl odczytu: Wyślij 0x03 jako polecenie odczytu i 0x000000 jako adres i ... wszystkie 0xFF z powrotem z urządzenia.
Widzę, że urządzenie reaguje na mój odczytany identyfikator i ustawiam komendy WREN, dzięki czemu wiem, że mnie słyszy i może odpowiedzieć. W tej chwili nie wiem, co robię źle. Chyba wrócę do czytania arkusza danych i wypróbowania niektórych rzeczy, ale jeśli ktoś ma wgląd w to, doceniłbym pomoc. Nadchodzi kolejny, frustrujący weekend, pracując nad tym.
Odpowiedzi:
Nienawidzę tego, że wciąż znajduje się na szczycie listy „bez odpowiedzi”, więc zamierzam odpowiedzieć.
Jak stwierdzono w komentarzach słowa „zdezorientowany”, istnieje polecenie o nazwie „Global Unlock”, które należy wykonać przed napisaniem do części flash.
źródło