Mode Data Write (chế độ ghi dữ liệu)

Một phần của tài liệu Thiết kế lịch vạn niên điện tử (Trang 42 - 44)

Mode Data Write (chế độ truyền dữ liệu từ master đến slave) được dùng khi xác lập giá trị ban đầu cho các thanh ghi thời gian hoặc dùng để canh chỉnh thời gian cho chip DS1307. Cấu trúc truyền dữ liệu trong mode Data Write được mô tả như hình sau:

Hình 2.31 Chếđộ data write

Trước hết hãy nói về địa chỉ SLA (Slave Address) của chip DS1307 trong mạng I2C, trên mạng I2C mỗi thiết bị sẽ có một địa chỉ riêng gọi là SLA. SLA được tính theo lý thuyết chuẩn I2C sẽ có giá trị tối đa là 128 (do có 128 thiết bị trong 1

43

được set cốđịnh là 1101000b (68h).Do SLA của DS1307 cốđịnh nên trong 1 mạng I2C sẽ không thể tồn tại cùng lúc 2 chip này.

Quan sát hình trên ta thấy, đầu tiên master (AT89S52) sẽ gửi điều kiện START đến Slave (DS1307), tiếp theo sau master sẽ là 7 bit địa chỉ SLA của slave (cố định là: 1101000b). Do chế độ này là Data Write nên bit W = 0 và sẽ được gửi kèm sau SLA.Bit ACK (A) được slave trả về cho master sau mỗi quá trình giao tiếp.

Tiếp theo sau địa chỉ SLA sẽ là 1 byte chứa địa chỉ của thanh ghi cần truy cập (Word Address). Cần phân biệt địa chỉ của thanh ghi cần truy cập và địa chỉ SLA. Như đã đề cập trên, địa chỉ của thanh ghi cần truy cập sẽ được lưu trong thanh ghi địa chỉ (hay con trỏđịa chỉ), vì vậy byte dữ liệu đầu tiên sẽ được chứa trong thanh ghi địa chỉ của DS1307.

Sau byte địa chỉ thanh ghi là một dãy các byte dữ liệu được ghi vào bộ nhớ của DS1307. Byte dữ liệu đầu tiên sẽ được ghi vào thanh ghi có địa chỉ được chỉ định bởi Word Address, sau khi ghi xong 1 byte thì Word Address tựđộng tăng nên các byte tiếp theo sẽ được ghi liên tiếp vào DS1307 ở các thanh ghi kế sau. Số lượng bytes dữ liệu cần ghi do master quyết định và không được vượt quá dung lương bộ nhớ của DS1307.Quá trình ghi kết thúc khi master phát ra điều kiện STOP.

Chú ý: Sau khi ghi thành công 1 byte thì DS1307 sẽ trả lời lại bằng một bit ACK. Nếu như byte được ghi vào là byte cuối cùng thì DS1307 sẽ trả lời lại bằng 1 bit Not_ACK (NACK).

Nếu sau khi gửi byte Word Address, master không gửi các byte dữ liệu mà gửi liền điều kiện STOP thì không có thanh ghi nào được ghi. Trường hợp này được dùng đểset địa chỉWord Address để phục vụ cho quá trình đọc.

Một phần của tài liệu Thiết kế lịch vạn niên điện tử (Trang 42 - 44)