Sepertinya tidak bisa menulis ke spi flash

9

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:

masukkan deskripsi gambar di sini 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:

masukkan deskripsi gambar di sini 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: masukkan deskripsi gambar di sini 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.

bingung
sumber
10
Dan ... saya menemukan jawabannya. Jika saya punya satu dolar untuk setiap kali saya menemukan sesuatu setelah akhirnya cukup putus asa untuk mengirim bantuan. Ternyata ada perintah lain 0x98 yang disebut Global Unlock, yang tidak disebutkan di bagian menulis diaktifkan atau pemrograman ... Pokoknya menambahkan itu di depan perintah WREN saya dan itu berhasil. maaf untuk gangguannya.
bingung
10
Tambahkan komentar Anda sebagai jawaban dan terima.
geometrikal
Setuju dengan @geometrikal bahwa Anda harus menjawab pertanyaan Anda sendiri. Saya tidak punya masalah dengan antarmuka PIC SPI; untuk alasan yang sama persis: dokumentasi.
Pengguna.1
2
Hai! Anda memposting pertanyaan yang bagus sekitar setahun yang lalu dan kemudian memposting jawaban yang baik di komentar. Tetapi pertanyaannya masih muncul di bagian atas daftar "Belum Dijawab"! Silakan salin komentar Anda ke dalam jawaban dan tandai "Diterima". Dengan cara ini akan dikelola dengan benar dan kami dapat
mengunggulkan
1
@confused, silakan kirim jawaban Anda dan tandai sebagai dijawab sehingga kami dapat menutup pertanyaan, Terima kasih
Voltage Spike

Jawaban:

3

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.

sedikit menggerutu
sumber
1
Anda harus menerima jawaban Anda, jika tidak pertanyaan ini akan tetap ditandai sebagai "tidak dijawab".
Étienne