Bagian: 1K 1-kawat EEPROM (DS2431)

EEPROM MAXIM DS2431 1K adalah gadget 1-kawat yang menambahkan penyimpanan ke pekerjaan yang memanfaatkan pin mikrokontroler tunggal. Kami sebelumnya menghubungkan termometer 1-kawat, namun EEPROM ini agak berbeda karena menarik daya langsung dari bus 1-kawat. Dapatkan lembar data (PDF) serta mematuhi bersama sementara kami check out serta menyusun memori 1-kawat yang mudah ini.

DS2431 1-Wire 1K EEPROM (DIGIKEY # DS2431 + -ND, $ 1,67)

Kami menggunakan antarmuka Serial Universal Bus Pirate kami untuk menunjukkan EEPROM DS2431, kami membahas koneksi yang sesuai serta pilihan konfigurasi di pos 1-kawat kami sebelumnya. DS2431 membutuhkan hanya dua koneksi: ground (pin 1) serta 1-wire / power (pin 2). Pin 3 tetap tidak terhubung. Seperti terakhir kali, kami menggunakan resistor pull-up 2k dengan bus 1-wire.

Pertama, kami menggunakan perintah Bus Pirate Browse ROM untuk menentukan perangkat 1-wire terkait.

1-kawat> (240) <-Search ROM perintah makro 1Wire ROM Command: Browse (0xf0) Menemukan gadget di: Alamat Makro 1-Kawat 1.0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b <-Address * DS2431 1K EEPROM <- Jenis 2.0x2d 0xfe 0x8d 0x43 0x01 0x00 0x00 0x52 * DS2431 1K EEPROM 3.0x2D 0x2b 0xed 0xef 0x00 0x00 0x00 0x7c * DS2431 1K EEPROM Menemukan perangkat 0x03. 10 ID Gadget pertama ditawarkan oleh makro, lihat (0). 1-kawat>

Perintah ARMSE ROM memaparkan bahwa ada 3 EEPROM terkait dengan bus 1-Wire. Bajak Laut Bus menyimpan alamat 1-kawat 64bit di Macro sehingga kami tidak perlu mengetiknya setiap saat. Kami akan bekerja dengan perangkat pertama, ditentukan oleh Makro (1).

Menulis ke DS2431 membutuhkan tiga langkah:

Tulis data ke Buffer EEPROM 8byte ‘Scratch Pad’ DS2431

Verifikasi isi panel awal serta dapatkan akses gain ke kunci

Salin data dari pad gores ke EEPROM untuk penyimpanan jangka panjang.

Command 0x0f dikomposisikan ke pad gores. Scratch Pad adalah buffer 8byte yang menampung data sebelum menyimpannya secara permanen di EEPROM.

1-kawat> (85) (1) 0x0f 0x00 0x00 0 1 2 3 4 5 6 7 <-Command RESET BUS 1WIRE OK 1wire Compose ROM Command: Match (0x55) * ikuti dengan alamat 64bit 1Wire Alamat Makro 1: 0x2D 0x54 0xd2 0xEF 0x00 0x00 0x00 0x2b 1wire Tulis: 0x0f <-Write ke Scratch Pad 1Wire Tulis: 0x00 <-Begin Alamat byte 1 1wire Tulis: 0x00 <-Begin Alamat byte 2 1wire Tulis: 0x00 <-data 1Wire Tulis: 0x01 1Wire Tulis: 0x02 1WIRE Tulis: 0x03 1Wire Tulis: 0x04 1WIRE Tulis: 0x05 1Wire Tulis: 0x06 1Wire Tulis: 0x07 1-kawat>

Makro pertandingan ROM, (85), mengisolasi perangkat pertama, (1). 0x0F adalah perintah untuk menulis ke pad gores, dipenuhi oleh alamat awal, 0 0. Akhirnya, kami mengirim delapan byte data untuk disimpan di alur gores. Pad awal panjangnya delapan byte, serta semua delapan byte akan disalin dari pad gores ke EEPROM sekaligus.

1-kawat> (85) (1) 0xAA R: 3 R: 8 R: 2 R: 2 <-Command RESET BUS 1WIRE OK 1wire Compose ROM Command: Match (0x55) * ikuti dengan alamat 64bit 1Wire Alamat Makro 1: 0x2D 0x54 0xd2 0xEF 0x00 0x00 0x00 0x2b 1Wire Tulis: 0xAA <-Baca Scratch Pad 1Wire Massal Baca, 0x03 Bytes: <-Access Code 0x00 0x00 0x07. 1Wire Massal Baca, 0x08 byte: <- verifikasi data kami 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1Wire Massal Baca, 0x02 Bytes: <- Inverse CRC 0x44 0x67. 1Wire Massal Baca, 0x02 byte: <- semua 1s dari sini 0xff 0xff. 1-kawat>

Untuk menyalin data dari boot awal ke EEPROM, kami harus terlebih dahulu mengambil akses tiga byte ke kode dari panel awal dengan perintah 0xAA. Tiga byte pertama adalah akses keuntungan ke kode (0x00 0x00 0x07), dipenuhi oleh data yang terkandung dalam pad gores.

1-kawat> (85) (1) 0x55 0x00 0x00 0x07
RESET BUS 1WIRE OK
1wire Compose ROM Command: Match (0x55) * ikuti dengan alamat 64bit
1Wire Alamat Makro 1: 0x2D 0x54 0xd2 0xEF 0x00 0x00 0x00 0x2b
1wire Tulis: 0x55 <-copy ke perintah EEPROM 1Wire Tulis: 0x00 <-Access Code (3 bytes) 1Wire Tulis: 0x00 1Wire Tulis: 0x07 1-Wire> !!!! <-Baca bits. 1wire check in bit: 0 1wire check in bit: 1 <-bit alternatif, selesai 1wire check in bit: 0 1wire check out bit: 1 1-kawat>

Perintah 0x55 dengan akses gain yang sesuai ke kode akan menyalin pad gores ke data EEPROM. Bit berbunyi (!!!!) bergantian antara 0 serta 1 saat salinan selesai.

1-kawat> (85) (1) 0xf0 0x00 0x00 R: 8 R: 8
RESET BUS 1WIRE OK
1wire Compose ROM Command: Match (0x55) * ikuti dengan alamat 64bit
1Wire Alamat Makro 1: 0x2D 0x54 0xd2 0xEF 0x00 0x00 0x00 0x2b
1Wire Tulis: 0xf0 <-Buka memori 1Wire Tulis: 0x00 <-Mulailah (2 byte) 1Wire Tulis: 0x00 1Wire Massal Baca, 0x08 byte: <-Baca Data Kembali 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1Wire massal baca, 0x08 byte: <-Belari di luar data kami 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 1-kawat>

Command 0xF0 dipenuhi dengan alamat memori dua byte (0x00 0x00) memulai proses check out data. Delapan byte pertama (R: 8) adalah nilai-nilai yang kami komposisi sebelumnya. Bacaan tidak termasuk pad gores serta tidak memiliki batas 8byte, sehingga bahkan lebih banyak baca terus ke ujung memori.

Jangan FA.Il untuk mengingat untuk mengejar ketinggalan semua jenis pesan bagian yang mungkin Anda lewatkan.

Leave a Reply

Your email address will not be published. Required fields are marked *