

| DS1307 | DS3231 | DS1302 | |
| การนับเวลา | วินาที, นาที, ชั่วโมง, วันที่, เดือน, วันในสัปดาห์ ปีอธิกสุรทิน (นับได้ถึงปี 2100) | วินาที, นาที, ชั่วโมง, วันที่, เดือน, วันในสัปดาห์ ปีอธิกสุรทิน (นับได้ถึงปี 2100) | วินาที, นาที, ชั่วโมง, วันที่, เดือน, วันในสัปดาห์ ปีอธิกสุรทิน (นับได้ถึงปี 2100) |
| ความคลาดเคลื่อน | ไม่เกิน 23PPM (23 วินาที/1,000,000 วินาที) |
ไม่เกิน 2PPM (2 วินาที/1,000,000 วินาที) |
ไม่เกิน 20PPM (20 วินาที/1,000,000 วินาที) |
| การวัดอุณหภูมิ | - | มีในตัว | - |
| การเชื่อมต่อ | I2C | I2C | 3-wire interface |
| I2C Interface Speed | 100kHz | 100kHz (Standard Mode) 400kHz (Fast Mode) |
|
| แรงดันไฟเลี้ยง | 4.5 - 5.5V | 2.3 - 5.5V | 2.0 - 5.5V |
| การกินกระแส | 1.5mA (Active) 200uA (Standby) |
300uA (Active) 170uA (Standby) |
1.2mA (Active) 0.2uA (Standby) |
| Backup Battery | 3V | 3V | 3V |
| อุณหภูมิในการทำงาน | 0 - 70 ํC | 0 - 70 ํC | 0 - 70 ํC |
สำหรับการใช้งานนั้น อุปกรณ์แบบ I2C ทุกตัว จะต้องมีการเข้าถึง Address และทำการแปลง bit ข้อมูลต่าง ๆ (ตามรูปด้านล่าง) ซึ่งหากเราต้องนั่งเขียนทุกครั้งมันคงไม่โอเค นอกจากมันจะยาวซึ่งถามผู้เขียนมันยังโอเคนะ ยาวก็เขียนได้เสียเวลาหน่อยเดี๋ยวก็เสร็จ แต่มันต้องจำ Address ต่าง ๆ และ bit ไหนหมายถึงอะไร ตรงนี้ไม่โอเคมากที่จะต้องนั่งเปิด Datasheet ทุกครั้งไป เราจึงใช้สิ่งเล็ก ๆ ที่เรียกว่า Library มาช่วย สำหรับผู้เขียนเองนั้น Library ที่คิดว่าใช้ง่ายที่สุดและใช้อยู่ประจำคือ RTClib (ดาวน์โหลดได้จากที่นี่) ซึ่ง Library ตัวนี้จะใช้กับไอซี RTC แบบ I2C ได้ถึง 3 เบอร์ คือ DS1307, DS3231 และ PCF8523 ซึ่งเท่าที่ผู้เขียนพบเจอมา ส่วนใหญ่ที่ใช้งานกันทั่ว ๆ ไปก็จะวนอยู่แค่ 3 เบอร์นี้ คิดว่าคนที่มาอ่าน 90% ต้องนำไปใช้ได้แน่นอน
โดยคำสั่งในการเรียกเวลาต่างงๆขึ้นมานั้นจะมีดังต่อไปนี้| คำสั่ง | ค่าที่ได้ |
| hour() | ชั่วโมง (0-23) |
| minute() | นาที (0-59) |
| second() | วินาที (0-59) |
| day() | วันที่ของเดือน (1-31) |
| weekday() | วันที่ของสัปดาห์ (1-7) , 1 = วันอาทิตย์ |
| month() | เดือน (1-12) |
| year() | ปี , แสดงเต็ม 4 หลัก เช่น 2019 , 2020 |
| คำสั่งเพิ่มเติมหากต้องการใช้รูปแบบเวลา 12 ชั่วโมง | |
| hourFormat12() | แสดงชั่วโมงในรูปแบบเวลา 12 ชั่วโมง (1-12) |
| isAM() | คืนค่า true เมื่อเป็นเวลาก่อนเที่ยงวัน (AM) |
| isPM() | คืนค่า true เมื่อเป็นเวลาหลังเที่ยงวัน (PM) |
จากตัวอย่างจะเห็นแล้วนะครับว่าคำสั่งที่ใช้นั้นใกล้เคียงกับแบบ I2C มาก จะต่างกันแค่บางตัว การเติม s และไม่มี () ต่อท้ายเท่านั้น ซึ่งคำสั่งต่างๆที่ใช้มีดังนี้| คำสั่ง | ค่าที่ได้ |
| hours | ชั่วโมง (0-23) |
| minutes | นาที (0-59) |
| seconds | วินาที (0-59) |
| dayofweek | วันในสัปดาห์ (1-7) , 1 = วันอาทิตย์ |
| dayofmonth | วันที่ (1-31) |
| month | เดือน (1-12) |
| year | ปี (00-99) |
Fitrox Electronics