Yah saya sudah terjebak pada ini untuk sementara waktu, mungkin 2-3 minggu pada saat ini. Saya tidak yakin apa yang saya lakukan salah. Saya mencoba menulis ke bagian flash spi ini , dan sekarang saya hanya menjalankan rutinitas untuk menghapus, menulis, dan membaca untuk mencoba mengisolasinya tetapi sejauh ini tidak berhasil. Tentu saja saya telah memecahkan banyak bug di sepanjang jalan ...
Pokoknya saya punya garis WP saya diikat tinggi di papan tulis, dan saya telah memperlambat jam ke 200khz, kemudian saya menjalankan rutin menghapus saya dan terlihat seperti ini:
Pertama saya memeriksa ID hanya untuk debug, itu adalah perintah 9F, kemudian saya mengatur WREN dengan perintah 06, C7 adalah seluruh chip-erase, dan kemudian saya memeriksa bit status dengan 05 dan jelas. Waktu penghapusan chip hal ini hanya 35 ms.
Sekarang saya memuat ulang kode saya dan mencoba menulis:
Pertama saya mengatur WREN dengan 06, periksa status untuk melihat bahwa WREN diatur dengan 05, yaitu, kemudian kirim perintah program halaman 02 ke alamat 0x000000. Anda dapat melihat saya menulis deadcafe sebagai beberapa bit pertama. Juga tidak digambarkan di sini adalah setelah penulisan selesai (satu halaman atau 256 byte), saya mengirim perintah 0x04 untuk menonaktifkan WREN. Saya telah mengamati itu dan saya mengatur empat byte terakhir dari buffer halaman saya menjadi 0xAA, 0x55, 0xAA, 0x55 dan saya melihatnya tepat sebelum CS menjadi tinggi.
Sekarang hentikan kode muat ulang dan coba jalankan siklus baca: Kirim 0x03 sebagai perintah baca dan 0x000000 sebagai alamat, dan ... semua 0xFF kembali dari perangkat.
Saya dapat melihat perangkat merespons ID baca saya dan mengatur perintah WREN sehingga saya tahu itu mendengar saya, dan dapat merespons. Saya tidak tahu apa yang saya lakukan salah pada saat ini. Saya kira saya akan kembali membaca lembar data, dan mencoba beberapa hal tetapi jika ada yang punya wawasan saya akan menghargai bantuannya. Ini akan menjadi akhir pekan yang membuat frustrasi saat mengerjakan hal ini.
Jawaban:
Saya hanya benci bahwa ini masih di bagian atas daftar 'tidak dijawab', jadi saya akan menjawab.
Seperti yang dinyatakan dalam komentar oleh 'confused', ada perintah yang disebut 'Global Unlock' yang harus dijalankan sebelum menulis ke bagian flash.
sumber