ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ (Real-time Clock board) l 1
ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃì ¤Ø³ÊÁºÑµÔ·Ò§à·¤¹Ô¤ l ใชไอซี DS1307 เชือมต ่ อแบบบัส I2C l มีแบตเตอรี่สํารองเพื่อรักษาขอมูลเวลา l ใหขอมูลเวลาครบถวนรวมถึงวันเดือนปจนถึงป ค.ศ. 2099
ǧ¨ÃáÅСÒ÷íÒ§Ò¹ +5V R1/2
R1/1
R1/3
+5V 6
SCL
5
SDA GND
SQW
8
7 +VB
SCL
IC1 DS1307
SDA
R1/1-R1/3 4.7k x4
1 C1 15pF
3 4
BATT1 3V
2 XTAL1 32.768kHz
C2 15pF
หัวใจสําคัญคือ IC1 เบอร DS1307 เปนไอซีสรางฐานเวลานาฬิกาจริง โดยใชฐานเวลาจากคริสตอล 32.768kHz การติดตอเพือควบคุ ่ มและคาเวลานันต ้ องกระทําผานระบบบัส I2C ดังนันการใช ้ งานวงจรนีจึ้ งตองมี ไมโครคอนโทรลเลอรหรือไมโครโปรเซสเซอรเขามาจัดการ ขอมูลเวลาทีอ่ านไดจาก DS1307 มีตังแต ้ เศษสวนของ วินาที, วินาที, นาที, ชัวโมง, ่ วัน, วันที,่ เดือน และป ผูใช งานสามารถกําหนดไดโดยการเขียนขอมูลลงในตัวไอซี และขอมูลเวลาจะไมสูญหายเนืองจากมี ่ การตอแบตเตอรี่ 3V เพือรั ่ กษาขอมูลไว ในยามทีไม ่ ไดจายไฟเลียงให ้ แกวงจร ไฟเลียงของวงจรนี ้ ้คือ +5V กินกระแสไฟฟาประมาณ 10mA
¡ÒÃàª×èÍÁµè͡ѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃì +5V
ตอกับขาพอรตของไมโครคอนโทรลเลอร ความถี่ของสัญญาณขึน้ กับ การเขียนโปรแกรมควบคุม DS1307
2 l
ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ (Real-time Clock board)
DS1307 ไอซีสรางฐานเวลาจริงหรือรีลไทมคล็อก (RTC) l เปนไอซีรีลไทมคล็อกใหขอมูลตังแต ้ วินาทีจนถึงป รวมถึงการปรับวันในปอธิกสุรทินดวย สามารถใหขอมูล
เวลาไดอยางเทียงตรงถึ ่ งปคริสตศักราช 2100 l มีหนวยความจํานอนโวลาไทลแรม 56 ไบตอยูภายใน สามารถใชเก็บขอมูลทั่วไปได l มีวงจรตรวจจับไฟเลี้ยงตํ่าหรือหายไปอยางอัตโนมัติ และรักษาขอมูลเวลาไวไดแมไมมีไฟเลี้ยงไอซี รายละเอียดขาตอใชงานของ DS1307 X1
1
X2
2
VBAT
3
GND 4
DS1307
8
Vcc
7 6
SQW OUT SCL
5
SDA
VCC, GND (ขา 8, 4) ตอกับไฟเลียง ้ +5V VBAT (ขา 3) ใชตอกับแบตเตอรี่ 3V SDA, SCL (ขา 5 และ 6) เปนขาสําหรับเชือมต ่ อระบบบัส I2C SQW OUT (ขา 7) มีสัญญาณรูปสี่เหลียมส ่ งออกมา โดยสามารถเลือกความถี่ได 1Hz, 4.096kHz, 8.192kHz และ 32kHz ในการใชงานตองตอตัวตานทาน 1k พูลอัปที่ขานี้ดวย X1, X2 (ขา 1 และ 2) ใชตอกับคริสตอล 32.768kHz ไอซี DS1307 จัดการเชือมต ่ อในแบบบัส I2C โดยทํางานเปนอุปกรณสเลฟเสมอ สวนประกอบหลัก ทีสํ่ าคัญคือ วงจรออสซิลเลเตอรถือเปนหัวใจหลักของไอซี เนืองจากเป ่ นจุดเริมต ่ นของการสรางขอมูลเวลาจริง มีการเก็บคาของเวลาไวในหนวยความจํานอนโวลาไทลแรม ซึงมี ่ ขนาดรวม 64 ไบต แตจัดสรรใหใชเก็บขอมูล เวลา 8 ไบต และเปนหนวยความจําสําหรับเก็บขอมูลทัวไปสํ ่ าหรับผูใช งานอีก 56 ไบต วงจรควบคุมพลังงาน ไฟฟาจะคอยตรวจสอบสภาวะของไฟเลี้ยงไอซี หากไฟเลียงตํ ้ ่ากวา 1.25 x VBAT ก็จะควบคุมให DS1307 หยุดการทํางาน ทําใหไมสามารถติดตอกับ DS1307 ได ดังนั้นในการใชงานตองระมัดระวังอยาใหไฟเลียง ้ ตํ่ากวา 1.25 x VBAT หรือประมาณ 3.75V ถาหากไฟเลียงมี ้ คาตํ่ากวา VBAT ไอซี DS1307 จะเขาสูโหมด สํารองขอมูลกระแสตํ่าทันที แตวงจรสรางฐานเวลายังคงทํางานเพือให ่ คาของเวลาเดินไปอยางไมผิดพลาด เมือมี ่ ไฟเลียงปรากฏขึ ้ นอี ้ กครัง้ DS1307 ก็จะสามารถใหคาของเวลาทีเป ่ นจริงแกผูใช งานไดตอไป ดานวงจร สื่อสารอนุกรมภายใน DS1307 ไดรับการกําหนดใหทํางานตามรูปแบบของบัส I2C
ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ (Real-time Clock board) l 3
$00
$07
วินาที นาที ชั่วโมง วัน วันที่ เดือน ป รีจิสเตอรควบคุม
$08
แรม 56 ไบต
บิต 7
บิต 6
บิต 5
บิต 4
บิต 3
บิต 0
คาของขอมูล
ขอมูลวินาที (หลักสิบ)
ขอมูลวินาที (หลักหนวย)
00-59
x
ขอมูลนาที (หลักสิบ)
ขอมูลนาที (หลักหนวย)
00-59 01-12 00-23 1-7
x
12 ชั่วโมง 24 ชั่วโมง
ชั่วโมง (หลักสิบ) AM/PM
ขอมูลชั่วโมง (หลักสิบ)
x
x
x
x
x
x
x
x
OUT
(ก)
บิต 1
CH
ขอมูลชั่วโมง (หลักหนวย) x
ขอมูลวันที่ (หลักสิบ) x
x
x
ขอมูลวันในสัปดาห
01-28/29 01-30 01-31
ขอมูลวันที่ (หลักหนวย)
ขอมูลเดือน (หลักสิบ)
01-12 00-99
ขอมูลเดือน (หลักหนวย)
ขอมูลป (หลักสิบ) $3F
บิต 2
ขอมูลป (หลักหนวย) SQWE
x
x
RS1
RS0
(ข)
(ก) การจัดสรรหนวยความจําแรมภายใน DS1307 (ข) รายละเอียดของรีจิสเตอรเก็บคาเวลาและรีจิสเตอรควบคุมของ DS1307 การจัดสรรหนวยความจําใน DS1307 การจัดสรรพื้นที่ของหนวยความจําภายใน DS1307ประกอบดวย พืนที ้ ่ 7 ไบตแรกตั้งแตแอดเดรส $00-$06 เปนพืนที ้ ของรี ่ จิสเตอรคาเวลาใชในเก็บขอมูลเกียวกั ่ บเวลา ทีแอดเดรส ่ $07 เปนพืนที ้ ของรี ่ จิสเตอร ควบคุมการทํางานของ DS130 รีจิสเตอรควบคุม มีแอดเดรสอยูที ่ $07 มีรายละเอียดของแตละบิตดังนี้ OUT (Output control) : ใชควบคุมระดับลอจิกทีขา ่ SQW OUT ในกรณีทีดิ่ สเอเบิลการกําเนิดสัญญาณ สีเหลี ่ ยม ่ โดยถาบิตนีเป ้ น “1” ทีขา ่ SQW OUT ก็จะเปน “1” ถาบิตนีเป ้ น “0” ทีขา ่ SQW OUT ก็จะเปน “0” SQWE (Square Wave Enable) : ใชในการเอ็นเอเบิลวงจรกําเนิดสัญญาณสีเหลี ่ ยมที ่ ่ขา SQW OUT ถาตองการใหมีสัญญาณสี่เหลี่ยมออกใหกําหนดบิตนี้เปน “1” RS1, RS0 (Rate Select) : ใชในการเลือกความถี่ของสัญญาณสีเหลี ่ ยมที ่ ่ออกจากขา SQW/OUT ดังมีรายละเอียดตอไปนี้ RS1 RS0 คาความถีของสั ่ ญญาณสีเหลี ่ ยม ่ 0 0 1Hz 0 1 4.096kHz 1 0 8.192kHz 1 1 32.768kHz
4 l
ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ (Real-time Clock board)
โหมดการทํางานของ DS1307 มี 2 โหมดคือ โหมดเขียนขอมูล และ โหมดอานขอมูล ตามปกติจะใชงานเฉพาะโหมดอานขอมูล เทานัน้ เนืองจากไมโครคอนโทรลเลอร ่ จะติดตอกับ DS1307 เพืออ ่ านขอมูลของเวลาไปใชงาน โหมดการเขียน ขอมูลจะถูกใชงานก็ตอเมือต ่ องการตังค ้ าเวลาใหมและตองการเขียนขอมูลลงในหนวยความจําใชงานทั่วไป อยางไรก็ตามเมือเริ ่ มต ่ นติดตอกับ DS1307 จําเปนอยางยิงที ่ จะต ่ องเขาสูโหมดการเขี ยนขอมูลกอนเพือกํ ่ าหนด แอดเดรสทีต่ องการอานขอมูล จากนันจึ ้ งเปลียนโหมดการทํ ่ างานมาเปนโหมดการอานขอมูลตอไป โหมดการเขียนขอมูล เริมต ่ นเมือไมโครคอนโทรลเลอร ่ ทําการกําหนดสภาวะเริมต ่ น (START :S) จากนันส ้ งขอมูลกําหนด แอดเดรส 1101000 ตามดวยขอมูลเลือกการเขียน นั่นคือคา 0 จากนั้นจะรอการตอบรับจาก DS1307 ขั้น ตอนตอมาคือ สงขอมูลเพือเลื ่ อกแอดเดรสที่ตองการเขียน จากนั้นรอการตอบรับจาก DS1307 เมื่อมีการ ตอบรับมาเรียบรอย ก็เริมทยอยเขี ่ ยนขอมูลลงไปครั้งละแอดเดรส หลังจากเขียนขอมูลในแตละแอดเดรส จะตองหยุดรอการตอบรับจาก DS1307 ทุกครั้ง จึงจะสามารถเขียนขอมูลตอไปได เมื่อเขียนเรียบรอยแลว ใหสงสภาวะหยุด (STOP : P) เปนอันสิ้นสุดกระบวนการเขียนขอมูล สภาวะ เริ่มตน
S
ขอมูลกําหนด R/W แอดเดรส
1101000
0 A
แอดเดรส ของแรม
xxxxxxxx
ขอมูล
A
xxxxxxxx
สภาวะ หยุด
ขอมูล
A
xxxxxxxx
A
P
ขอมูลที่เขียนไปยัง DS1307 พรอมสัญญาณตอบรับ
โหมดการอานขอมูล เริมต ่ นการทํางานเหมือนกับโหมดการเขียนขอมูลคือ ไมโครคอนโทรลเลอรกําหนดสภาวะเริมต ่ นแลว สงขอมูลแอดเดรส ตามดวยขอมูลเลือกการอาน จากนันรอการตอบรั ้ บจาก DS1307 เมือตอบรั ่ บเรียบรอย DS1307 จะทยอยสงขอมูลออกมาใหไมโครคอนโทรลเลอรคราวละ 1 แอดเดรสหรือ 1 ไบต โดยแอดเดรสที่ เลือกอานขอมูลจะตองกําหนดมากอนลวงหนาดวยโหมดการเขียนขอมูล วิธีการงายๆ คือ เขาสูโหมดการเขี ยน ขอมูลกอน เมือถึ ่ งจังหวะทีต่ องเขียนขอมูล ใหสรางสภาวะเริมต ่ นและสงขอมูลแอดเดรสใหมอีกครัง้ ตามดวย เลือกโหมดการอานขอมูล ขอมูลทีออกมาจาก ่ DS1307 ก็จะเปนขอมูลจากแอดเดรสทีกํ่ าหนดไวกอนหนานี้ สภาวะสิ้นสุดการอาน สภาวะ เริ่มตน
S
ขอมูลกําหนด R/W แอดเดรส
1101000
1 A
ขอมูล
xxxxxxxx
ขอมูล
A
xxxxxxxx
สภาวะ หยุด
ขอ มูล
A
xxxxxxxx
ขอมูลที่ออกจาก DS1307 พรอมสัญญาณตอบรับ
A
P