Cấu tạo bên trong DS1307

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

Hình 2.13 Sơ đồ khối bên trong chip DS1307

Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao điện I2C, con trỏ địa chỉ và các thanh ghi (hay RAM). Do đa số các thành phần bên trong DS1307 là thành phần “cứng” nên chúng ta không có quá nhiều việc khi sử dụng DS1307. Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này. Vì thế cần hiểu rõ 2 vấn

35

đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thông qua giao diện I2C

Như đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8bit được đánh địa chỉ từ 0 đến 63 (từ 0x00h đến 0x3Fh). Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ”, còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạm như RAM nếu muốn. Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE),

Hình 2.14 Cấu tạo 7 thanh ghi đầu tiên

tháng (MONTH) và năm (YEAR). Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian khởi động cho RTC. Việc đọc giá từ 7 thanh ghi là quá trình đọc thời gian thực mà RTC tạo ra.

Vì 8 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, chúng ta sẽ khảo sát các thanh ghi này một cách chi tiết. Trước hết hãy quan sát tổ chức theo từng bit của các thanh ghi này tronghình sau:

Chú ý là tất cả các giá trị thời gian lưu trong các thanh ghi theo dạng BCD (Binary-Coded Decimal).

Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ của nó là 0x00. Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây. Do giá trị cao nhất của chữ số hàng chục là 5 nên chỉ cần 3 là đủ. Bit cao nhất (bit thứ 7) trong thanh ghi này là 1 bit điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động. Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từđầu.

Thanh ghi phút (MINUTES): có địa chỉ 0x01h, chứa giá trị phút của đồng hồ. Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit thứ 7 luôn luôn bằng 0.

Thanh ghi gi (HOURS): có thể nói đây là thanh ghi phức tạp nhất trong chip DS1307. Thanh ghi này có địa chỉ 0x02h. Trước hết 4 bit thấp của thanh ghi này được dùng cho chữ sốhàng đơn vị của giờ. Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ là: 12h và 24h giờ, vì vậy bit thứ 6 được dùng để xác lập hệ thống giờ. Nếu bit thứ 6 = 0 thì hệ thống 24h được chọn, khi đó 2 bit thứ 5 và thứ 4 dùng mã hóa chữ số hàng chục của giá trị giờ. Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 nên cần 2 bit để mã hóa. Nếu bit thứ 6 = 1 thì hệ thống 12h được chọn. Với trường hợp này chỉ có 1 bit thứ 4 dùng mã hóa chữ số hàng chục của giờ, bit thứ 5 chỉ buổi trong ngày (AM hoặc PM). Bit thứ 5 = 0 là AM và bit thứ 5 = 1 là PM. Bit thứ 7 luôn bằng 0.

37

Thanh ghi th (DAY – ngày trong tun): nằm ở địa chỉ 0x03h. Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần. Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa. Các bit còn lại luôn bằng 0.

Thanh ghi ngày (DATE – ngày trong tháng): nằm ở địa chỉ 0x04h. Thanh ghi DATE mang giá trị từ1 đến 31, chỉ có 5 bit đầu tiên là có nghĩa. Các bit còn lại luôn bằng 0.

Thanh ghi tháng (MONTH): nằm ở địa chỉ 0x05h. Thanh ghi MONTH mang giá trị từ1 đến 12, chỉcó 4 bit đầu tiên là có nghĩa. Các bit còn lại bằng 0.

Thanh ghi năm (YEAR): nằm ở địa chỉ 0x06h. Thanh ghi YEAR mang giá

trị từ0 đến 99. Chip DS1307 chỉdùng cho 100 năm, nên giá trịnăm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào.

Thanh ghi điều khin (CONTROL REGISTER): có địa chỉ là 0x07h, thanh

ghi CONTROL REGISTER được dùng để điều khiển tần số xung vuông ở ngỏ ra SQW/OUT. Giá trị các bít trong thanh ghi CONTROL REGISTER được biểu diển như sau:

Bit 7_Output Control (OUT):dùng để kiểm soát mức logic tại SQW/OUT.

Bit 4_Square-Wave Enable (SQWE): bit này được set lên bằng 1 để tạo dao động ởđầu ra.

Bits 1 and 0_ Rate Select (RS[1:0]): 2 bit này dùng điều khiển tần số dao động ở ngỏ ra SQW/OUT, với 4 tần sốđược chọn như sau:

38

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

Tải bản đầy đủ (PDF)

(88 trang)