Isi kandungan:

Bas Pirate 3EEPROM Explorer Board: 5 Langkah
Bas Pirate 3EEPROM Explorer Board: 5 Langkah

Video: Bas Pirate 3EEPROM Explorer Board: 5 Langkah

Video: Bas Pirate 3EEPROM Explorer Board: 5 Langkah
Video: BusPirate Build and Program 2024, November
Anonim
Papan Penjelajah Bas Pirate 3EEPROM
Papan Penjelajah Bas Pirate 3EEPROM

Sekiranya anda mempunyai salah satu Hack Pirate Bus Day, apa yang anda lakukan dengannya? Ketahui mengenai EEPROM 1-wayar, I2C, dan SPI dengan papan penjelajah 3EEPROM (kami memanggilnya THR-EE-PROM). EEPROM adalah sejenis cip memori yang menyimpan data tanpa bekalan kuasa berterusan. Ia berguna untuk penyimpanan data tetap dalam litar logger kecil, atau menyimpan halaman tersuai di pelayan web mini. EEPROM terdapat dalam pelbagai saiz dan protokol. 3EEPROM mempunyai tiga cip EEPROM biasa: DS2431 (1-Wire), 24AA- (I2C), dan 25AA- (SPI). Ketiganya sebelumnya ditunjukkan pada Hack a Day, tetapi setiap demo menggunakan versi berbeza dari perkakasan dan firmware Bus Pirate, sukar bagi pemula untuk mengikuti menggunakan Bus Pirate v2go. Teruskan membaca untuk panduan langkah demi langkah yang terkini untuk menggunakan EEPROM DS2431, 24AA-, dan 25AA- dengan v2go Bas Pirate. Kami juga mempunyai log sesi penuh sebagai fail teks sehingga anda tidak akan kehilangan satu butiran. Kami boleh mempunyai PCB atau kit papan penjelajah 3EEPROM yang dihasilkan di Seeed Studio. PCB berharga lebih kurang $ 10, kit berharga lebih kurang $ 15, dihantar ke seluruh dunia. Kita perlu mengatur pembelian kumpulan 10 PCB atau 20 kit untuk memulakan. Sekiranya anda berminat dengan Bus Pirate, versi 3 akan datang. Saya tidak dapat memasukkan beberapa elemen pemformatan dan jadual HTML dalam Instructable, anda dapat melihat catatan asal di blog Prototaip Berbahaya.

Langkah 1: Gambaran Keseluruhan Perkakasan 3EEPROM

Gambaran Keseluruhan Perkakasan 3EEPROM
Gambaran Keseluruhan Perkakasan 3EEPROM
Gambaran Keseluruhan Perkakasan 3EEPROM
Gambaran Keseluruhan Perkakasan 3EEPROM
Gambaran Keseluruhan Perkakasan 3EEPROM
Gambaran Keseluruhan Perkakasan 3EEPROM

Matlamat prototaip ini adalah untuk belajar mengenai EEPROM dan tiga protokol bas biasa. Pertama, kita melihat PCB 3EEPROM, kemudian kita menunjukkan setiap EEPROM menggunakan alat antara muka bersiri universal Bus Pirate. Sekiranya anda tidak mempunyai Bus Pirate, anda masih boleh mengikutinya kerana urutan asas operasi antara muka tetap sama tidak kira bagaimana anda melaksanakannya. Skema ukuran penuh [PNG]. Kami membuat litar dan PCB menggunakan versi perisian percuma Cadsoft Eagle. Anda boleh memuat turun skema dan PCB dari arkib Bus Pirate SVN. PCB 3EEPROM memegang DS2431 1-Wire EEPROM (IC1), 24AA-I2C EEPROM (IC4), dan 25AA- SPI EEPROM (IC5). DS2431 (IC1) menarik kuasa secara parasit dari bus 1-Wire, ia tidak mempunyai pin bekalan kuasa luaran dan tidak memerlukan kapasitor pemisah. IC2 dan IC3 adalah tempat kosong untuk peranti 1-Wire tambahan, seperti DS2431 lain atau sensor suhu DS1822. C1 (0.01uF) adalah pilihan dan hanya diperlukan jika IC2 atau IC3 diisi dengan peranti 1-Wire yang dikuasakan. 1-Wire memerlukan resistor pull-up yang kuat, maksimum 2.2K ohm. Perintang tarik di atas kapal Pirate Bus adalah 10K, terlalu lemah untuk menghidupkan DS2431 dengan betul semasa menulis. Papan penjelajah 3EEPROM merangkumi perintang pull-up 1.8k ohm, 1/8 watt (R1) pada bas 1-Wire sehingga tidak diperlukan perintang penarik tambahan. 24AA- (IC4) dan 25AA- (IC5) masing-masing mendapatkan kapasitor 0.1uF untuk memutuskannya dari bekalan kuasa (C2, C3). Anda mungkin tidak memerlukan kapasitor dalam litar sederhana seperti itu, kami menghilangkannya dari papan prototaip dalam demonstrasi. Bas I2C yang digunakan oleh 24AA- juga memerlukan perintang penarik, tetapi perintang penarik 10K ohm on Pirin Bus Pirate sudah mencukupi. Semua komponen akan beroperasi dari 2.8volts hingga 5volts DC. Litar digerakkan melalui jumper pin VCC dan GND 3. Terdapat dua pin VCC, satu untuk kuasa, yang lain untuk pin input voltan perintang tarik Pirate Bus (Vpullup). PCBKami membuat litar dan PCB menggunakan versi percuma Cadsoft Eagle. Anda boleh memuat turun skema dan PCB dari arkib Bus Pirate SVN. Sekiranya anda mahukan kit PCB atau 3EEPROM yang disediakan secara profesional, kami mungkin dapat mengatur pembelian secara berkumpulan sekiranya 10 atau 20 orang berminat. Senarai bahagian R1 1800 ohm perintang (1/8 watt) C2, 3 0.1uF kapasitor / 10volts + JP1-4 0.1 "pin pin lelakiIC1 DS2431 1K 1-wire EEPROM TO-92IC4 ** 24AA014-I / P I2C EEPROM DIP8IC5 ** 25AA010A-I / P SPI EEPROM DIP8ICS4, soket DIP 5 8 pin untuk IC5, 6 ** IC4, IC5 boleh berukuran apa pun, kami menghubungkan ke cip kecil, kami menggunakan 128 bita dan 128 Kbytes. Saya tidak dapat memasukkan beberapa jadual pemformatan dan HTML dalam Instructable, anda dapat melihat catatan asal di blog Prototaip Berbahaya.

Langkah 2: 25AA- / 25LC- SPI EEPROM

25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM

Demonstrasi Semua demo EEPROM hampir sama. Kami akan menulis beberapa nombor pada cip tersebut, dan kemudian membacanya. Setiap peranti mempunyai syarat yang berlaku setelah anda ingin menulis lebih dari beberapa nilai, seperti ukuran halaman dan batasan batas. Baca lebih lanjut mengenai perkara ini dalam lembar data untuk peranti khusus anda. Sekiranya anda tidak dapat menunjukkan demonstrasi, muat turun log terminal lengkap supaya anda tidak terlepas satu perkara yang kami lakukan. Perintang tarik adalah masalah yang paling biasa, periksa voltan pin penarik menggunakan menu 'v' di terminal Bas Pirate. Kapal: 25AA, SPI EEPROM (1Kbyte). Bas: SPI. Perintang tarik hanya diperlukan untuk antara muka voltan campuran. Keperluan kuasa: 1.8 volt hingga 5.5 volt (AA), 2.5 volt hingga 5.5 volt (LC). Rujukan: lembar data, demonstrasi Hack a Day. Log sesi Bajak Laut Bus lengkap untuk demonstrasi ini. Saya tidak dapat memasukkan beberapa jadual pemformatan dan HTML dalam Instructable, anda dapat melihat yang asli di blog Prototaip Berbahaya. IC5 adalah siri 25AA I2C EEPROM dari Microchip, EEPROM ini terdapat dalam banyak ukuran. Bahagian AA beroperasi dari 1.8volts hingga 5.5volts, sementara bahagian 25LC mempunyai keperluan minimum 2.5volt. C3 (0.1uF) melepaskan SPI EEPROM dari bekalan kuasa. Pin tulis (WP) dan penahan penahan dapat dikendalikan oleh mikrokontroler, tetapi kami melumpuhkannya dengan menahan pin ini tinggi. Pin bas SPI, CS, DO, CLK, dan DI, dibawa ke tajuk JP4. Persediaan Sekiranya anda menggunakan Bus Pirate, sambungkannya ke 3EEPROM atau 25AA- IC seperti yang ditunjukkan dalam gambar carta di bawah. SPI biasanya tidak memerlukan perintang penarik. Interfacing Di terminal Bus Pirate tekan 'm' untuk menu mod dan pilih SPI. Konfigurasikan perpustakaan SPI untuk output pin biasa, gunakan lalai untuk semua tetapan mod SPI yang lain. Aktifkan bekalan kuasa (besar 'W') pada prompt mod SPI. Akhirnya, dapatkan laporan voltan untuk memastikan bekalan kuasa berfungsi ('v'). Kami akan menunjukkan cara untuk menghubungkan EEPROM secara langsung pada 3.3volts menggunakan perpustakaan SPI dalam mod pin biasa. Perintang penarik tidak diperlukan untuk demo ini. Sekiranya anda ingin menyambungkan EEPROM yang dikuasakan oleh 5volts, gunakan perpustakaan SPI dalam mod pin pengumpul terbuka (HiZ) dan aktifkan perintang penarik dengan pin Vpullup (Vpu) yang disambungkan ke bekalan kuasa EEPROM. Langkah 1, matikan tulis-lindungi 'SPI> [0b110] CS DIBENARKAN <<< cip pilih diaktifkanWRITE: 0x06 <<< lumpuhkan perintah tulis lindungiCS DISABLED <<25AA- dilindungi tulis semasa dihidupkan. Pilih cip yang lebih rendah (CS) ([), hantar perintah lumpuhkan tulis lindungi (0x06), dan kemudian naikkan CS (]) untuk membolehkan penulisan ke EEPROM. Perintah lumpuhkan tulis lindungi adalah 0b00000110 dalam bentuk binari, tetapi kita boleh memendekkannya menjadi 0b110 dan Lanun Bas masih faham. Langkah 2, tuliskan beberapa nilai 'SPI> [0b10 0 3 2 1] CS DILAKUKAN <<< cip pilih diaktifkanWRITE: 0x02 <<< tulis perintahWRITE: 0x00 <<< tuliskan alamat permulaanWRITE: 0x03 <<< 3 nilai untuk ditulis (3, 2, 1) MENULIS: 0x02WRITE: 0x01CS DISABLE <<Kini EEPROM boleh ditulis. Pertama, turunkan CS untuk mengaktifkan 25AA- ([). Seterusnya, hantarkan perintah tulis (0x02) dan lokasi untuk mula menulis (0). Kirim data untuk disimpan (3 2 1), kemudian naikkan CS (]) untuk menyimpan nilai. Catatan: kami menggunakan EEPROM 128byte kecil, cip yang lebih besar akan menggunakan alamat 16bit (2 bait). Perintah ini akan menjadi [0b10 0 '' '' '' '2 2 1] untuk EEPROM yang lebih besar daripada 256 bait, perhatikan 0. yang kedua. Periksa lembar data untuk memastikan EEPROM anda. Langkah 3, baca nilai kembali SPI> [0b11 0 r: 3] CS DIBENARKAN <<< cip pilih diaktifkanWRITE: 0x03 <<< read commandWRITE: 0x00 <<< read start addressBULK READ 0x03 BYTES: <<< baca 3 nilai0x03 0x02 0x01CS HILANGKAN <<Akhirnya, baca kembali data untuk mengesahkan bahawa penulisan berjaya. Pilih 25AA- ([), hantar arahan baca (0x03) dan alamat permulaan (0), dan kemudian baca tiga nilai (r: 3). Naikkan CS untuk menyelesaikan transaksi (]). Nilai sesuai, penulisan berjaya. Catatan: kami menggunakan EEPROM 128byte kecil, cip yang lebih besar akan menggunakan alamat 16 bit (2 bait). Perintah ini akan menjadi [0b11 0 '' '' '' '' r: 3] untuk EEPROM yang lebih besar daripada 256 bait, perhatikan 0. kedua. Periksa lembar data untuk memastikan EEPROM anda.

Langkah 3: 24AA- / 24LC I2C EEPROM

24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM

Cip: 24AA, I2C EEPROM (1Kbyte). Bas: I2C, perintang pull-up diperlukan. Keperluan kuasa: 1.8volts hingga 5.5volts (24AA), 2.5volts hingga 5.5volt (24LC). Rujukan: lembar data, demonstrasi Hack a Day. Selesaikan log sesi Pirate Bus untuk demonstrasi ini. Saya tidak dapat memasukkan beberapa jadual pemformatan dan HTML dalam Instructable, anda dapat melihat yang asli di blog Prototaip Berbahaya. IC4 adalah EEPROM siri 24AA dari Microchip, EEPROM ini terdapat dalam ton saiz. Bahagian AA berfungsi dari 1.8volts hingga 5.5volts, sementara bahagian 24LC mempunyai keperluan minimum 2.5volt. Kapasitor 0.1uF (C2) melepaskan IC4 dari bekalan kuasa. Pin pelindung tulis (WP) dapat dikendalikan dari mikrokontroler, tetapi untuk demonstrasi sederhana ini kami mematikannya dengan sambungan ke tanah. Pin bas I2C, SDA dan SCL, dibawa ke tajuk JP2. Alamat kebanyakan EEPROM 24AA adalah 1010AAAS, dengan empat bit terakhir ditentukan oleh pin alamat (A0, A1, A2) dan mod baca / tulis pilih bit (S). Semua bit alamat dibumikan dalam contoh ini, jadi alamat tulis EEPROM adalah 10100000 (lembaran data halaman 6). Persediaan Sekiranya anda menggunakan Bus Pirate, sambungkannya ke 3EEPROM atau 24AA- IC seperti yang ditunjukkan dalam gambar carta di bawah. I2C adalah bas dua arah yang memerlukan perintang penarik pada kedua pin. Anda boleh menggunakan perintang penarik Bus Pirate on-board dengan menyambungkan pin Vpullup (Vpu) ke bekalan kuasa 3.3volt dan mengaktifkannya di terminal. Nota Antaramuka: Tidak semua EEPROM I2C berfungsi sama. 24AA01 yang kecil, misalnya, mempunyai sistem pengalamatan dan perintah yang sama sekali berbeza. Pastikan untuk memeriksa lembaran data untuk cip anda. Tekan 'm' di terminal Bus Pirate dan pilih I2C dari menu mod. Aktifkan bekalan kuasa (besar 'W') dan perintang penarik ('p', pilihan 2) pada arahan I2C. Dapatkan laporan voltan ('v') untuk memastikan bekalan kuasa dihidupkan dan pin Vpullup disambungkan ke voltan. I2C> (0) <<(1) <<< gunakan makro carian alamatMencari ruang alamat 7bit I2C. Mencari peranti di: 0xA0 0xA1 <<Kami sudah mengetahui bahawa alamat I2C adalah 10100000, tetapi kami juga dapat menggunakan makro carian I2C Bus Pirate (1) untuk mencari 24AA-. Makro carian mendapati peranti berada di alamat tulis (0xA0) dan baca (0xA1) yang diharapkan. Langkah 1, tuliskan beberapa nilai I2C> [0b10100000 0 0 3 2 1] KEADAAN MULAI I2C <<< Keadaan permulaan I2CTULIS: 0xA0 GOT ACK: YA <<< 24AA- tulis alamatTULIS: 0x00 DAPATKAN AKTA: YA <<< tuliskan bait alamat 1WRITE: 0x00 GOT ACK: YA <<< tulis alamat byte 2WRITE: 0x03 GOT ACK: YA <<< 3 nilai untuk ditulis (3, 2, 1) WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <Mulakan penulisan dengan keadaan permulaan I2C ([), diikuti dengan alamat tulis 24AA (0xa0). Seterusnya, hantarkan alamat 16bit untuk ditulis di (0 0) dan data yang hendak ditulis (3 2 1). Akhiri transaksi I2C dengan syarat berhenti (]). Langkah 2, letakkan penunjuk baca I2C> [0b10100000 0 0] KEADAAN MULAI I2C <<< Keadaan permulaan I2CTULIS: 0xA0 GOT ACK: YA <<< 24AA- tulis alamatTULIS: 0x00 DAPATKAN AKTA: YA <<< tulis alamat bait 1TULIS: 0x00 GOT ACK: YA <<< tuliskan alamat byte 2I2C STOP CONDITION <<Dibutuhkan dua operasi untuk membaca dari 24AA-. Satu meletakkan penunjuk baca / tulis, yang lain mengembalikan nilai. Mulakan dengan keadaan permulaan I2C ([) dan alamat tulis (0xa0). Hantarkan alamat 16bit untuk dibaca (0 0), dan kemudian keadaan berhenti (]). Kami tidak menghantar data untuk menulis kali ini, kami hanya meletakkan penunjuk baca / tulis kembali ke awal data yang kami tulis di langkah 1. Langkah 3, baca beberapa nilai I2C> [0b10100001 r: 3] SYARAT MULAI I2C <<< Keadaan permulaan I2CTULIS: 0xA1 DAPATKAN ACK: YA <<< 24AA- alamat bacaBULK BACA 0x03 BYTES: <<< baca 3 nilai0x03 0x02 0x01I2C Hentikan KEADAAN <<Langkah 2 tetapkan penunjuk baca / tulis ke awal data yang ingin kita baca. Sekarang kita dapat membaca data menggunakan alamat baca 24AA. Mulakan dengan keadaan permulaan I2C ([) dan alamat baca 24AA (0xa1). Baca tiga nilai yang kami tulis di langkah 1 (r: 3), dan akhiri dengan keadaan berhenti (]). Sekiranya nilainya sesuai, maka tulisan anda berjaya.

Langkah 4: DS2431 1-Wire EEPROM

DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM

Cip: DS2431, 1-wayar EEPROM (1Kbyte). Bas: 1-Wire, <2.2Kohm pull-up resistor diperlukan. Keperluan kuasa: 2.8volts hingga 5.25volts. Rujukan: lembar data, demonstrasi Hack a Day. Log sesi Pirate Bus Lengkap untuk demonstrasi ini. Saya tidak dapat memasukkan beberapa jadual pemformatan dan HTML dalam Instructable, anda dapat melihat yang asli di blog Prototaip Berbahaya. DS2431 menarik kuasa dari perintang penarik dan tidak memerlukan kapasitor bekalan atau pemutusan luaran. 1-Wire memerlukan resistor pull-up yang kuat, maksimum 2.2Kohms. Perintang penarik Bus Pirate on-board adalah 10K, terlalu lemah untuk menghidupkan DS2431 dengan betul semasa menulis. Anda mesti menggunakan perintang luaran 2.2Kohm atau lebih kecil antara kuasa dan pin bus 1-Wire. Sekiranya anda menghadapi kesukaran menulis data, pastikan perintang penarik anda cukup besar. Papan penjelajah 3EEPROM merangkumi perintang penarik 1800 ohm (R1) pada bas 1-Wire sehingga tidak diperlukan perintang luaran. Persediaan Sekiranya anda menggunakan Bus Pirate, sambungkannya ke papan 3EEPROM atau DS2431 seperti yang ditunjukkan dalam gambar carta di bawah. DS2431 tidak memerlukan pin bekalan kuasa, ia digunakan pada papan 3EEPROM untuk menghidupkan perintang tarik besar untuk bas 1-Wire. Interfacing Tekan 'm' di terminal Bus Pirate dan pilih mod 1-Wire. Aktifkan bekalan kuasa on-board ('W' besar) dan periksa monitor voltan (v). Langkah 1, cari alamat peranti 1-WIRE> (0xf0) <<< 1-Wire search macro 1WIRE ROM COMMAND: SEARCH (0xF0) Found found devices at: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 ID unik * DS2431 1K EEPROM <<Setiap peranti 1-Wire mempunyai ID 8 bait yang unik. 1-Wire mempunyai prosedur carian yang mengesan ID semua peranti terpasang. Bas Pirate melaksanakan carian 1-Wire sebagai makro (240). Ketik '(240)' di terminal Bus Pirate untuk memulakan carian 1-Wire. Setiap alamat peranti dicetak, peranti yang dikenal pasti dikenal pasti. Sepuluh alamat peranti 1-Wire pertama disimpan sebagai makro, dalam contoh ini alamat DS2431 kami tersedia dengan menaip '(1)' di terminal. Langkah 2, tuliskan 8 bait ke pad calar 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< juga {perintah 1WIRE WRITE ROM COMMAND: MATCH (0x55) * ikuti dengan alamat 64bit 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B 'WRITE: 0x0F <<< DS2431 tuliskan pad pad arahan MENULIS: 0x00 <<< DS2431 menulis alamat byte 1 MENULIS: 0x00 <<< DS2431 menulis alamat byte: 0x08 <<Seterusnya kita akan menulis 8 bait ke lokasi sementara di DS2431 yang disebut calar pad. Mulakan transaksi dengan set semula 1-Wire bus dan perintah MATCH (0x55). Kedua-duanya boleh didapati sebagai makro '(0x55)'. Ini juga dapat dilakukan tanpa makro dengan mengetik '{0x55', {mengirimkan reset 1-Wire, 0x55 adalah perintah 1-Wire MATCH. Selepas perintah MATCH, hantarkan ID 8 byte peranti ke alamat. Kami menggunakan makro (1) yang diisi dengan ID DS2431 pada langkah 1. Anda juga dapat memasukkan ID 8 bait secara manual. Pada titik ini DS2431 seharusnya telah menerima alamatnya dan siap untuk perintah. 0x0f adalah perintah tulis awal, ia memberitahu DS2431 untuk mengharapkan data. Dua bait seterusnya memberitahu di mana untuk meletakkan data, kami akan menyimpannya pada awalnya (0 0). Akhirnya, kami menghantar 8 bait nilai untuk menyimpan, nombor 8 hingga 1. Anda mesti menulis 8 bait penuh ke DS2431. Selain itu, alamat tulis mestilah berada pada had 8 bait. Lihat lembaran data untuk gambaran keseluruhan lengkap mengenai had tulis. Langkah 3, sahkan pad calar dan dapatkan kod kebenaran 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< alamatkan peranti1WIRE WRITE ROM COMMAND: MATCH (0x55) * ikuti dengan alamat 64bit1WIRA ALAMAT MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< baca arahan pad calarBULK BACA 0x03 MENGIKUT: <<< kod kebenaran0x00 0x00 0x07BULK <08 kita mengemukakan 0 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK BACA 0x02 BYTES: <<< CRC untuk data0xC8 0x86BULK BACA 0x02 BYTES: <<Sahkan bahawa data diterima dengan betul, dan dapatkan kod kebenaran menulis. Mulakan sekali lagi dengan tetapan semula 1-Wire dan makro perintah MATCH (0x55), dan makro alamat peranti (1). Kali ini hantarkan arahan pad calar baca DS2431 (0xAA), dan kemudian baca sebanyak 15 bait. 3 bait pertama yang dibaca (r: 3) adalah kod kebenaran menulis, kami memerlukannya pada langkah seterusnya untuk menyalin calar ke EEPROM. 8 bait seterusnya (r: 8) harus sesuai dengan data yang kami hantar pada langkah 2. 2 bait terakhir (r: 2) adalah CRC16 untuk data. Dibaca selepas CRC mengembalikan semua 1s. Langkah 4, tuliskan calar pada EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< alamatkan peranti1WIRE WRITE ROM COMMAND: MATCH (0x55) * ikuti dengan alamat 64bit1WIRE ALAMAT MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< copy scratch pad commandWRITE: 0x00 <<< 3 kod kebenaran bait dari langkah 3WRITE: 0x00WRITE: 0x071-WIRE> Kami mempunyai semua yang kami perlukan untuk menyimpan data pad calar secara kekal di EEPROM. Alamat peranti, kemudian hantarkan arahan pad salinan DS2431 (0x55) diikuti dengan kod kebenaran tiga bait yang kami ambil pada langkah 3 (0x00 0x00 0x07). Sekiranya kod kebenaran adalah betul, data akan dipindahkan ke EEPROM. Langkah 5, sahkan alas calar tulis 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< alamatkan peranti1 WIRE WRITE ROM COMMAND: MATCH (0x55) * ikuti dengan alamat 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< baca arahan pad calarBULAN BACA 0x03 BYTES: 0x00 0x00 0x87 <<DS2431 menetapkan bahagian paling atas kod kebenaran menulis setelah perintah pad calar berjaya. Hantarkan arahan membaca pad awal lain (0xAA) untuk mendapatkan kod kebenaran yang dikemas kini, tetapi baca tiga bait pertama (r: 3). Nilai sebelumnya 0x07 telah berubah menjadi 0x87, perintah salinan berjaya diterima. Langkah 6, baca semula nilai-nilai 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< alamatkan peranti1WIRE WRITE ROM COMMAND: MATCH (0x55) * ikuti dengan alamat 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 baca arahanTULIS: 0x00 <<< 2 bait alamat bacaWRITE: 0x00BULK BACA 0x08 BYTES: <<< baca 8 bait yang kami tulis0x000000000000000000000000000000000000000000004 0x08 BYTES: <<Sahkan tulisan yang berfungsi dengan betul dengan mengambil nilai. Alamat DS2431, kemudian hantarkan perintah baca (0xf0) dan alamat untuk dibaca (0x00 0x00). Mungkin untuk membaca keseluruhan rentang memori dengan satu perintah. Kami membaca lapan bait yang kami tulis sebelumnya (r: 8), yang mengembalikan nilai yang diharapkan. Lapan bait melebihi nilai ini belum ditulis dan mengembalikan 0.

Langkah 5: Kesimpulannya

Kesimpulannya
Kesimpulannya

Prototaip ini mengajar tentang memori EEPROM, dan menunjukkan cara menggunakan Bus Pirate dengan tiga protokol biasa: 1-Wire, I2C, dan SPI. Papan penjelajah 3EEPROM memastikan sambungan yang betul ke setiap EEPROM, dan menyediakan resistor pull-up luaran untuk bas 1-Wire yang lebih menuntut dengan komponen berkuasa parasit. Kita boleh mempunyai PCB atau kit papan penjelajah 3EEPROM yang dihasilkan di Seeed Studio. PCB berharga lebih kurang $ 10, kit berharga lebih kurang $ 15, dihantar ke seluruh dunia. Kita perlu mengatur pembelian kumpulan 10 PCB atau 20 kit untuk memulakan.

Disyorkan: