#9_Mạch đồng hồ DS1307
DS1307 là 1 mạch đồng hồ, sử dụng nhiều trong các dự án thời gian thực, IOT, kiểm tra theo dõi hoạt động… Trong bài viết “STM32 và ngoại vi” này ta sẽ cùng tìm hiểu cách sử dụng nó.
———————————
Cùng xem bài viết bên dưới.
DS1307 – STM32 và ngoại vi
DS1307 là 1 dạng đồng hồ thời gian thực rất đầy đủ, chip này có 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, ngày (trong tuần), ngày, tháng, năm.
Để sử dụng được module thời gian thực DS1307, trước tiên cần đọc datasheet để xem giới thiệu và mô tả chức năng các chân đế kết nối phần cứng cho đúng.
Giữa vi điều khiển và module sử dụng giao tiếp I2C. Nếu muốn can thiệp sâu vào thư viện của DS1307 cần nắm rõ về datasheet của nó, các thanh ghi…
Chưa rõ giao tiếp I2C là gì đọc bài viết” #1_Chuẩn giao tiếp I2C | Giao tiếp điện tử cơ bản”
Thực hành trên STM32cubeIDE
Cấu hình chân
Kết nối phần cứng như bên dưới, do sử dụng giao tiếp I2C nên kết nối rất đơn giản.
Cuối cùng là 1 số lưu ý:
- Cả 4 dây kết nối cần kiểm tra tốt để chắc chắn truyền nhận dữ liệu không bị gián đoạn
- Pin đồng hồ sử dụng là pin CMOS không dây
Lập trình DS1307
Sử dụng hàm “DS1307_GetTime()” trong thư viện để đọc dữ liệu thời gian
Trong hàm main (void), ta thiết lập thời gian bắt đầu cho đồng hồ, sau đó đọc dữ liệu thời gian trong while (1) lưu vào struct time.
Và đây là kết quả debug:
Phần cứng và code
Phần cứng sử dụng STM32F411, module thời gian thực DS1307. Phần mềm sử dụng là stm32cubeIDE. File code ví dụ các bạn tải về bên dưới, phần cứng tại Shoppe.
Ta vừa tìm hiểu về ngoại vi DS1307 trong chuyên mục STM32 và ngoại vi. Mong rằng chuyên mục này sẽ giúp nhiều bạn tiếp cận hơn với dòng vi điều khiển STM32.
Lần tới ngoại vi được nhắc tới sẽ là “Cảm biến mưa“, để phát hiện mực nước, trời mưa, hay các môi trường có nước…
Các bài viết khác cùng chuyên mục trong “STM32 và ngoại vi“.
Các chuyên mục khác:
Bạn có thắc mắc gì trong bài viết không?
Đánh giá và để lại bình luận bên dưới nhá.