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

Một phần của tài liệu ĐỒ án môn học THIẾT kế CHẾ tạo LỊCH vạn NIÊN điều KHIỂN từ XA (Trang 27 - 29)

II. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI

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

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:

Hinh 1.9. 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 mạng I2C). Chip DS1307 là một Slave nên cũng có một địa chỉ SLA, giá trị này đượ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 (AT8951) 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 ĐỒ án môn học THIẾT kế CHẾ tạo LỊCH vạn NIÊN điều KHIỂN từ XA (Trang 27 - 29)