Các bộ phận: 1k 1 dây EEPROM (DS2431)

Maxim DS2431 1k EEPROM là tiện ích 1 dây thêm lưu trữ vào công việc sử dụng mã PIN vi điều khiển duy nhất. Trước đây chúng tôi đã giao thoa một nhiệt kế 1 dây, tuy nhiên EEPROM này có phần khác nhau vì nó vẽ nguồn trực tiếp từ xe buýt 1 dây. Lấy biểu dữ liệu (PDF) cũng như tuân thủ trong khi chúng tôi đã kiểm tra cũng như soạn bộ nhớ 1 dây dễ dàng này.

DS2431 1-dây EEPROM (DIGIKEY # DS2431 + -Nd, $ 1,67)

Chúng tôi sử dụng giao diện nối tiếp Cướp biển Bus của chúng tôi để trình diễn DS2431 EEPROM, chúng tôi đã đề cập đến các kết nối thích hợp cũng như các lựa chọn cấu hình trong bài viết 1 dây trước đó của chúng tôi. DS2431 chỉ cần hai kết nối: mặt đất (chân 1) cũng như 1 dây / nguồn (pin 2). Pin 3 vẫn không kết nối. Giống như lần trước, chúng tôi sử dụng một điện trở kéo gấp 2K với xe buýt 1 dây.

Đầu tiên, chúng tôi sử dụng lệnh Duyệt ROM của Bus Pirate để xác định các thiết bị 1 dây được liên kết.

1-Dây> (240) <-Search ROM Command Macro Lệnh rom 1wire: Duyệt (0xf0) Tìm thấy tiện ích tại: Địa chỉ dây macro 1 1.0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b <-Address * DS2431 1K EEPROM <- Loại 2.0x2d 0xfe 0x8d 0x43 0x01 0x00 0x00 0x52 * DS2431 1k EEPROM 3.0x2d 0x2b 0xed 0xef 0x00 0x00 0x00 0x7c * DS2431 1k EEPROM Tìm thấy 0x03 thiết bị. 10 ID tiện ích đầu tiên được cung cấp bởi Macro, hãy xem (0). 1 dây>

Lệnh Duyệt ROM hiển thị rằng có 3 EEPROMS được liên kết với xe buýt 1 dây. Cướp biển xe buýt lưu trữ địa chỉ 1 dây 64 bit trong macro để chúng ta không phải gõ nó mỗi lần. Chúng tôi sẽ làm việc với thiết bị đầu tiên, được xác định bởi macro (1).

Viết vào DS2431 mất ba bước:

Ghi dữ liệu vào bộ đệm EEPROM ‘8byte’ của DS2431

Xác minh nội dung Scratch Pad cũng như nhận quyền truy cập khuếch đại sáng tác vào phím

Sao chép dữ liệu từ Pad Scratch sang EEPROM để lưu trữ lâu dài.

Lệnh 0x0f sáng tác với miếng đệm. Pad Scratch là bộ đệm 8byte chứa dữ liệu trước khi tiết kiệm vĩnh viễn trong EEPROM.

1-Dây> (85) (1) 0x0F 0x00 0x00 0 1 2 3 4 5 6 7 <-Command 1wire bus thiết lập lại ok 1Wire Compose ROM Command: Match (0x55) * Theo dõi với địa chỉ 64 bit Địa chỉ 1Wire Macro 1: 0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1Wire Viết: 0x0F <-Write vào Pad Scratch 1Wire Viết: 0x00 <-Begin Địa chỉ Byte 1 1wire Viết: 0x00 <-Begin Địa chỉ Byte 2 1Wire Viết: 0x00 <-Data 1Wire Viết: 0x01 1Wire Viết: 0x02 1wire Viết: 0x03 1Wire Viết: 0x04 1wire Viết: 0x05 1wire Viết: 0x06 1Wire Viết: 0x07 1 dây>

Macro ROM macro, (85), cô lập thiết bị đầu tiên, (1). 0x0F là lệnh sáng tác với Pad Scratch, được tuân thủ bởi địa chỉ bắt đầu, 0. Cuối cùng, chúng tôi sẽ gửi tám byte dữ liệu để lưu trong Pad Scratch. Tấm cào dài tám byte, cũng như tất cả tám byte sẽ được sao chép từ miếng đệm vào EEPROM cùng một lúc.

1-Dây> (85) (1) 0xAA R: 3 R: 8 R: 2 R: 2 <-Command 1wire bus thiết lập lại ok 1Wire Compose ROM Command: Match (0x55) * Theo dõi với địa chỉ 64 bit Địa chỉ 1Wire Macro 1: 0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1wire Viết: 0xAA <-Read pad cào 1Wire số lượng lớn đọc, 0x03 byte: <-access mã 0x00 0x00 0x07. 1Wire Số lượng lớn đọc, 0x08 byte: <- Xác minh dữ liệu của chúng tôi 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1Wire Số lượng lớn đọc, 0x02 byte: <- CRC nghịch đảo 0x44 0x67. 1wire Số lượng lớn đọc, 0x02 byte: <- tất cả 1s từ đây 0xFF 0xFF. 1 dây>

Để sao chép dữ liệu từ Pad Scratch sang EEPROM, trước tiên chúng ta nên lấy lại lần truy cập ba byte vào mã từ Pad Scratch với lệnh 0xAA. Ba byte đầu tiên là quyền truy cập vào mã (0x00 0x00 0x07), được tuân thủ bởi dữ liệu chứa trong Pad Scratch.

1-Dây> (85) (1) 0x55 0x00 0x00 0x07
1wire bus thiết lập lại ok
1Wire Compose ROM Command: Match (0x55) * Theo dõi với địa chỉ 64 bit
Địa chỉ 1Wire Macro 1: 0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1wire Viết: 0x55 <-copy vào lệnh eeprom 1Wire Viết: 0x00 <-Access mã (3 byte) 1wire Viết: 0x00 1Wire Viết: 0x07 1-dây> !!!! <-Read bit. 1Wire Đã kiểm tra bit: 0 1Wire Đã kiểm tra bit: 1 <-bits thay thế, được thực hiện 1Wire Đã kiểm tra bit: 0 1Wire Đã kiểm tra bit: 1 1 dây>

Lệnh 0x55 với quyền truy cập khuếch đại thích hợp vào mã sẽ sao chép miếng đệm vào dữ liệu EEPROM. Đọc bit (!!!!) xen kẽ giữa 0 cũng như 1 khi bản sao hoàn tất.

1-Dây> (85) (1) 0xF0 0x00 0x00 R: 8 R: 8
1wire bus thiết lập lại ok
1Wire Compose ROM Command: Match (0x55) * Theo dõi với địa chỉ 64 bit
Địa chỉ 1Wire Macro 1: 0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1Wire Viết: 0xF0 <-Read bộ nhớ 1Wire Viết: 0x00 <-brotart Địa chỉ (2 byte) 1wire Viết: 0x00 1Wire Số lượng lớn đọc, 0x08 byte: <-Đọc dữ liệu trở lại 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1wire Số lượng lớn đọc, 0x08 byte: <-Rare vượt quá dữ liệu của chúng tôi 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 1 dây>

Lệnh 0xf0 được tuân thủ bởi một địa chỉ bộ nhớ hai byte (0x00 0x00) bắt đầu quá trình kiểm tra dữ liệu. Tám byte đầu tiên (R: 8) là các giá trị chúng tôi sáng tác trước đó. Đọc không bao gồm miếng đệm cào cũng như không có giới hạn 8byte, vì vậy thậm chí còn đọc nhiều hơn sẽ tiếp tục đến cuối bộ nhớ.

Đừng FaIL để nhớ bắt kịp bất kỳ loại tin nhắn nào bạn có thể đã bỏ lỡ.

Leave a Reply

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

Related Post