Issuu on Google+

ἧǧ¨Ã°Ò¹àÇÅÒ¹ÒÌÔ¡Ò¨ÃÔ§ (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


rtc_board