Nie mogę pisać do spi flasha

9

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:

wprowadź opis zdjęcia tutaj 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ć:

wprowadź opis zdjęcia tutaj 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: wprowadź opis zdjęcia tutaj 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.

zmieszany
źródło
10
I ... rozgryzłem to. Gdybym miał dolara za każdym razem, wymyśliłem coś po tym, jak w końcu byłem na tyle zdesperowany, by gdzieś wysłać pomoc. Okazuje się, że istnieje inne polecenie 0x98 o nazwie Global Unlock, o którym nie wspomniano w sekcjach dotyczących włączania zapisu lub programowania ... W każdym razie dodanie tego przed moim poleceniem WREN i zadziałało. przepraszam, że przeszkadzam.
zdezorientowany
10
Dodaj swój komentarz jako odpowiedź i zaakceptuj go.
geometrikal
Zgadzając się z @geometrikal, że powinieneś odpowiedzieć na własne pytanie. Miałem tylko problemy z interfejsem PIC SPI; z tych samych powodów: dokumentacja.
Użytkownik. 1
2
Cześć! Opublikowałeś dobre pytanie około roku temu, a następnie umieściłeś dobrą odpowiedź w komentarzach. Ale pytanie wciąż pojawia się na górze listy „Bez odpowiedzi”! Skopiuj komentarze do odpowiedzi i oznacz je jako „Zaakceptowane”. W ten sposób będzie zarządzany poprawnie i będziemy mogli głosować za odpowiedzią :)
bitsmack
1
@konfused proszę opublikować swoją odpowiedź i oznaczyć ją jako odpowiedź, abyśmy mogli zamknąć pytanie, dziękuję
napięcia

Odpowiedzi:

3

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.

nieznacznie wygięty
źródło
1
Powinieneś zaakceptować swoją odpowiedź, w przeciwnym razie pytanie to będzie nadal oznaczone jako „bez odpowiedzi”.
Étienne