Bagian: 32KB Memori SPI SRAM (23K256)

Microchip baru 23K256 adalah chip memori SRAM 32 kilobyte yang dihubungkan secara seri, yang ditawarkan dalam 8 pin dip serta paket 8 pin. SRAM, seperti EEPROM, adalah media penyimpanan data. Data disimpan dalam SRAM hilang tanpa daya konstan, namun benar-benar cepat serta tidak ada batasan jumlah siklus menyusun. Eerpom menyimpan data bahkan tanpa daya, namun itu lamban serta biasanya terbatas pada sekitar satu juta siklus menulis.

32k SRAM Chip biasanya memiliki 15 baris alamat serta 8 baris data, seperti IS61LV256AL yang kami gunakan di papan kemajuan CPLD kami. 23K256 hanya membutuhkan empat garis sinyal, namun mengorbankan kecepatan antarmuka memori paralel. Ini adalah metode yang sangat baik untuk menambahkan memori tambahan ke mikrokontroler hitungan pin rendah tanpa merutekan 23 jejak sinyal. Kami akan menunjukkan kepada Anda bagaimana cara menghubungkan chip ini di bawah ini.

Microchip 23K256, 32K SPI SRAM (MOUSER Search, sectopart Search, $ 1,48). DataHeet (PDF).

Bajak laut bus.
23K256 (PIN #)

CS.
/ Cs (1)

SUP KEDELAI JEPANG
Jadi (2)

MUSI
Si (5)

Jam
Sck (6)

Gnd.
/ Tahan (7)

Gnd.
Vss (4)

+ 3volts.
Vcc (8)

Kami menghubungkan 23K256 ke alat antarmuka Serial Universal Bus Pirate kami seperti yang ditunjukkan pada tabel. Sangat penting untuk memberi daya pada chip hanya memanfaatkan pasokan 3.3Volt bus bajak laut, 23K256 tidak dinilai untuk 5Volts.

Bus bajak laut adalah metode sederhana untuk menemukan tentang sebuah chip tanpa menyusun segala jenis kode, namun prinsipal yang sama persis berlaku untuk memanfaatkan 23K256 dengan segala jenis mikrokontroler. Presentasi ini memanfaatkan versi terbaru dari firmware bajak laut bus (26-FEB-2009), yang dapat Anda unduh dari Google Code SVN kami.

Hiz> m <-choose mode 1. Hiz. ... 5. SPI. ... Mode> 5 <-Spi Mode Set mode ... <-30kHz, semua pengaturan default SPI siap SPI> W <-Capital 'W' memungkinkan catu daya Perlengkapan tegangan pada SPI>

Pertama, kami menempatkan bajak laut bus ke mode SPI pada 30kHz serta memilih pengaturan default untuk semua opsi. Kami mengaktifkan catu daya Bus Pirate 3.3Volt dengan pendanaan ‘W’.

Konfigurasi Daftar

bit 7,6 = byte (00) halaman (10) urutan (01) mode
bit 0 = tahan dinonaktifkan (1)

Data disimpan di dalam 23K256 di 1024 halaman yang masing-masing termasuk 32bytes. Kisaran membaca serta komposisi diatur oleh bit 7 serta 6 dari register konfigurasi. Penyimpanan dapat diakses oleh byte (00), oleh 32byte halaman (10), atau berurutan dengan seluruh 32K (01). Kami akan bekerja dalam mode urutan, yang memberi kami akses ke untuk check out serta menyusun semua jenis panjang data, di mana saja di 32K ruang penyimpanan.

PIN HOLD digunakan untuk menjeda transfer ketika chip lain pada persyaratan bus yang sama persis untuk diakses. bit 0 dari konfigurasi register mengontrol pin tahan. Saat diatur ke 1, PIN HOLD dinonaktifkan. Kami terhubung bertahan untuk darat untuk operasi tipikal, namun kinerjanya dapat sepenuhnya dinonaktifkan dengan mengatur bit 0.

Daftar konfigurasi diubah dengan mengirim perintah Konfigurasi Komposur (0B00000001) serta pengaturan baru.

SPI> [0b1 0b01000001] <-update config register CS diaktifkan Tulis: 0x01 <-Write Config Command Tulis: 0x41 <-Value untuk menulis CS Dinonaktifkan SPI>

Kami memulai kesepakatan SPI dengan mengaktifkan chip 23K256 memilih garis ([). Kami mengirim perintah Konfigurasi Komposur (0b1, 0x01, atau 1), dipenuhi oleh pengaturan baru untuk Daftar Konfigurasi (0B01000001, 0x41). Kami menetapkan bit 6 untuk akses gain berurutan ke mode, serta mengatur bit 0 untuk menonaktifkan fungsi pin tahan. bit 5-1 tidak memiliki fungsi, namun datasheet menyatakan untuk selalu menulis 0. Kesepakatan menyimpulkan dengan menonaktifkan chip memilih sinyal (]).

SPI> [0b101 r]
CS diaktifkan
Tulis: 0x05 <-READ config register Baca: 0x41 <-Value Baca CS Dinonaktifkan SPI>

Selanjutnya, kami menggunakan perintah register konfigurasi yang diperiksa (0B00000101, 0B101, 0x05, atau 5) untuk mengonfirmasi bahwa pengaturan ditulis dengan benar. Perintah ini mengembalikan satu byte (R) yang harus sesuai dengan nilai yang kami komposisi dalam operasi sebelumnya (0x41, atau 0b01000001).

Akses data

Sekarang kami dapat check out serta menyusun data ke chip. Komposisi dimulai dengan perintah komposisi data (0b10, 0x02, atau 2), dipenuhi oleh dua byte yang mengidentifikasi di mana harus menyusun data. Nilai-nilai untuk menyimpan dikirim setelah alamat. Tergantung pada akses ke mode ke mode, satu byte, halaman, atau seluruh memori dapat diisi dalam satu operasi.

SPI> [0b10 0 0 1 2 3 4 5 6 7 8 9 10]
CS diaktifkan
Tulis: 0x02 <-data Compose Command Tulis: 0x00 <-address byte 1 Tulis: 0x00 <-address byte 2 Tulis: 0x01 <-Start data untuk menulis Tulis: 0x02. Tulis: 0x03. Tulis: 0x04. Tulis: 0x05. Tulis: 0x06. Tulis: 0x07. Tulis: 0x08. Tulis: 0x09. Tulis: 0x0A. CS Dinonaktifkan SPI>

Kami mulai dengan Compose Data Command (0b10) serta mengatur tempat komposen ke awal chip (0 0). Kami mengirim keseluruhan sepuluh nilai untuk menyimpan, angka 1 hingga 10.

Setelah menyusun data, kami dapat memeriksa kembali dengan perintah data yang diperiksa (0b00000011, 0b11, 0x03, atau 3).

SPI> [0b11 0 0 R: 10]
CS.DIAKTIFKAN
Tulis: 0x03 <-Baca perintah data Tulis: 0x00 <-Start Alamat byte 1 Tulis: 0x00 <-Start alamat byte 2 Massal check in out 0x0A byte: <-Menerima 10 byte 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a CS Dinonaktifkan SPI>

Kami mengirim perintah data yang diperiksa (0b11), dipenuhi oleh alamat untuk mulai membaca (0 0). Kami kemudian memeriksa kembali 10 byte (R: 10). 10 byte adalah angka 1 hingga 10, nilai yang sama persis kami menyusun langkah sebelumnya.

Suka posting ini? Periksa pesan bagian yang mungkin Anda lewatkan. Ingin meminta post posting? Silakan tinggalkan tips Anda di komentar.