0
Tải bản đầy đủ (.pdf) (106 trang)

Tổng quan về DS1307

Một phần của tài liệu THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ (Trang 33 -38 )

II. ĐỒNG HỒ THỜI GIAN THỰC

1. Tổng quan về DS1307

1.1. Sơđồ chân DS1307

DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tính bằng giây, phút, giờ…DS1307 là một sản phẩm của Dallas Semiconductor (một cơng ty thuộc Maxim Integrated Products). Chip này cĩ 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm. Ngồi ra DS1307 cịn cĩ 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống cĩ thể dùng như RAM. DS1307 được đọc và ghi thơng qua giao diện nối tiếp I2C nên cấu tạo bên ngồi rất đơn giản. DS1307 xuất hiện ở 2 gĩi SOIC và DIP cĩ 8 chân như trong hình sau.

Hai gĩi cu to ca chip DS1307

Các chân của DS1307 được mơ tả như sau:

- X1X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip

- VBAT: cực dương của một nguồn pin 3V nuơi chip - GND: chân mass chung cho cả pin 3V và Vcc

- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển. Chú ý: nếu Vcc khơng được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng khơng ghi và đọc được).

- SQW/OUT: Đây là chân tạo ngõ ra xung vuơng của DS1307 cĩ 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz... các chế độ này đuợc quy định bởi các bit của thanh ghi Control Register (địa chỉ 0x07).

- SCL và SDA là đường giữ xung nhịp và đường dữ liệu của giao diện I2C mà chúng ta sẽ tìm hiểu sau.

1.2. Cu to bên trong 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 đề 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), 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.

T chc b nh trong DS1307

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.

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 điu 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 số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:

Một phần của tài liệu THIẾT KẾ LỊCH VẠN NIÊN ĐIỆN TỬ (Trang 33 -38 )

×