You are on page 1of 15

Chun giao tip I2C v chip thi gian thc DS1307 I, Ni qua v chun giao tip I2c Giao

thc u tin truyn thng ni tip c pht trin bi Philips Semiconductor v c gi l bus I2C. V ngun gc n c thit k l iu khin lin thng IC (Inter-Intergrated Circuit) nn n c t tn l I2C. Tt c cc chip c tch hp v tng thch vi I2C u c thm mt giao din tch hp trn Chip truyn thng trc tip vi cc thit b tng thch I2C khc. Vic truyn d liu ni tip theo hai hng 8 bit c thc thi theo 3 ch sau: Chun (Standard) 100 Kbits/sec Nhanh (Fast)400 Kbits/sec Tc cao (High speed)3.4 Mbits/sec ng bus thc hin truyn thng ni tip I2C gm hai ng l ng truyn d liu ni tip SDA v ng truyn nhp xung ng h ni tip SCL. V c ch hot ng l ng b nn n cn c mt nhp xung tn hiu ng b. Cc thit b h tr I2C u c mt a ch nh ngha trc, trong mt s bit a ch l thp c th cu hnh. n v hoc thit b khi to qu trnh truyn thng l n v Ch v cng l n v to xung nhp ng b, iu khin cho php kt thc qu trnh truyn. Nu n v Ch mun truyn thng vi n v khc n s gi km thng tin a ch ca n v m n mun truyn trong d liu truyn. n v T u c gn v nh a ch thng qua n v Ch c th thit lp truyn thng v trao i d liu. Bus d liu c thit k cho php thc hin nhiu n v Ch v T trn cng Bus. Qu trnh truyn thng I2C c bt u bng tn hiu start to ra bi n v Ch. Sau n v Ch s truyn i d liu 7 bit cha a ch ca n v T m n mun truyn thng, theo th t l cc bit c trng s ln nht MSB s c truyn trc. Bit th tm tip theo s cha thng tin xc nh n v T s thc hin vai tr nhn (0) hay gi (1) d liu. Tip theo s l mt bit ACK xc nhn bi n v nhn nhn c 1 byte trc hay khng. n v truyn (gi) s truyn i 1 byte d liu bt u bi MSB. Ti im cui ca byte truyn, n v nhn s to ra mt bit xc nhn ACK mi. Khun mu 9 bit ny (gm 8 bit d liu v 1 bit xc nhn) s c lp li nu cn truyn tip byte na. Khi n v Ch trao i xong d liu cn n s quan st bit xc nhn ACK cui cng ri sau s to ra mt tn hiu dng STOP kt thc qu trnh truyn thng. I2C l mt giao din truyn thng c bit thch hp cho cc ng dng truyn thng gia cc n v trn cng mt bo mch vi khong cch ngn v tc thp. V d nh truyn thng gia CPU vi cc khi chc nng trn cng mt bo mch nh EEPROM, cm bin, ng h to thi gian thc Hu ht cc thit b h tr I2C hot ng tc 400Kbps, mt s cho php hot ng tc cao vi Mbps. I2C kh n gin thc thi kt ni nhiu n v v n h tr c ch xc nh a ch. II, S lc v chip thi gian thc Ds1307 DS1307 l chip ng h thi gian thc (RTC : Real-time clock), khi nim thi gian thc y c dng vi ngha thi gian tuyt i m con ngi ang s dng, tnh bng giy, pht, gi DS1307 l mt sn phm ca Dallas Semiconductor (mt cng ty thuc Maxim Integrated Products). Chip ny c 7 thanh ghi 8-bit cha thi gian l: giy, pht, gi, th (trong tun), ngy, thng, nm. Ngoi ra DS1307 cn c 1 thanh ghi iu khin ng ra ph v 56 thanh ghi trng c th dng nh RAM. DS1307 xut hin 2 gi SOIC v DIP c 8 chn

Cc chn ca DS1307 c m t nh sau: X1 v X2: l 2 ng kt ni vi 1 thch anh 32.768KHz lm ngun to dao ng cho chip. VBAT: cc dng ca mt ngun pin 3V nui chip. GND: chn mass chung cho c pin 3V v Vcc. Vcc: ngun cho giao din I2C, thng l 5V v dng chung vi vi iu khin. Ch l nu Vcc khng c cp ngun nhng VBAT c cp th DS1307 vn ang hot ng (nhng khng ghi v c c). SQW/OUT: mt ng ph to xung vung (Square Wave / Output Driver), tn s ca xung c to c th c lp trnh. Nh vy chn ny hu nh khng lin quan n chc nng ca DS1307 l ng h thi gian thc, chng ta s b trng chn ny khi ni mch. SCL v SDA l 2 ng giao xung nhp v d liu ca giao din I2C. C th kt ni DS1307 bng mt mch in n gin nh sau:

Cu to bn trong DS1307 bao gm mt s thnh phn nh mch ngun, mch dao ng, mch iu khin logic, mch giao din I2C, con tr a ch v cc thanh ghi (hay RAM). S dng DS1307 ch yu l ghi v c cc thanh ghi ca chip ny. V th c 2 vn c bn l cu trc cc thanh ghi v cch truy xut cc thanh ghi ny thng qua giao din I2C. Nh trnh by, b nh DS1307 c tt c 64 thanh ghi 8-bit c nh a ch t 0 n 63 (t 00H n 3FH theo h HexaDecimal). Tuy nhin, thc cht ch c 8 thanh ghi u l dng cho chc nng ng h (RTC) cn li 56 thanh ghi b trng c th c dng cha bin tm nh RAM nu mun. By thanh ghi u tin cha thng tin v thi gian ca ng h bao gm: giy (SECONDS), pht (MINUETS), gi (HOURS), th (DAY), ngy (DATE), thng (MONTH) v nm (YEAR). Vic ghi gi tr vo 7 thanh ghi ny tng ng vi vic ci t thi gian khi ng cho RTC. Vic c gi tr t 7 thanh ghi l c thi gian thc m chip to ra. V d, lc khi ng chng trnh, chng ta ghi vo thanh ghi giy gi tr 42, sau 12s chng ta c thanh ghi ny, chng ta thu c gi tr 54. Thanh ghi th 8 (CONTROL) l thanh ghi iu khin xung ng ra SQW/OUT (chn 6). Tuy nhin, do chng ta khng dng chn SQW/OUT nn c th b qua thanh ghi th 8. T chc b nh ca DS1307 c trnh by trong hnh 3. V 7 thanh ghi u tin l quan trng nht trong hot ng ca DS1307, chng ta s kho st cc thanh ghi ny mt cch chi tit. Trc ht hy quan st t chc theo tng bit ca cc thanh ghi ny nh trong hnh

T chc cc thanh ghi thi gian Thanh ghi giy (SECONDS): thanh ghi ny l thanh ghi u tin trong b nh ca DS1307, a ch ca n l 000. Bn bit thp ca thanh ghi ny cha m BCD 4-bit ca ch s hng n v ca gi tr giy. Do gi tr cao nht ca ch s hng chc l 5 (khng c giy 60) nn ch cn 3 bit (cc bit SECONDS 6:4) l c th m ha c (s 5 =101, 3 bit). Bit cao nht, bit 7, trong thanh ghi ny l 1 iu khin c tn CH (Clock halt treo ng h), nu bit ny c set bng 1 b dao ng trong chip b v hiu ha, ng h khng hot ng. V vy, nht thit phi reset bit ny xung 0 ngay t u. Thanh ghi pht (MINUTES): c a ch 01H, cha gi tr pht ca ng h. Tng t thanh ghi SECONDS, ch c 7 bit ca thanh ghi ny c dng lu m BCD ca pht, bit 7 lun lun bng 0. Thanh ghi gi (HOURS): c th ni y l thanh ghi phc tp nht trong DS1307. Thanh ghi ny c a ch 02H. Trc ht 4-bits thp ca thanh ghi ny c dng cho ch s hng n v ca gi. Do DS1307 h tr 2 loi h thng hin th gi (gi l mode) l 12h (1h n 12h) v 24h (1h n 24h) gi, bit6 (hnh 4) xc lp h thng gi. Nu bit6=0 th h thng 24h c chn, khi 2 bit cao 5 v 4 dng m ha ch s hng chc ca gi tr gi. Do gi tr ln nht ca ch s hng chc trong trng hp ny l 2 (=10, nh phn) nn 2 bit 5 v 4 l m ha. Nu bit6=1 th h thng 12h c chn, vi trng hp ny ch c bit 4 dng m ha ch s hng chc ca gi, bit 5 (mu orange trong hnh 4) ch bui trong ngy, AM hoc PM. Bit5 =0 l AM v bit5=1 l PM. Bit 7 lun bng 0. Thanh ghi th (DAY ngy trong tun): nm a ch 03H. Thanh ghi DAY ch mang gi tr t 1 n 7 tng ng t Ch nht n th 7 trong 1 tun. V th, ch c 3 bit thp trong thanh ghi ny c ngha. Cc thanh ghi cn li c cu trc tng t, DATE cha ngy trong thng

(1 n 31), MONTH cha thng (1 n 12) vYEAR cha nm (00 n 99). Ch , DS1307 ch dng cho 100 nm, nn gi tr nm ch c 2 ch s, phn u ca nm do ngi dng t thm vo (v d 20xx). Ngoi cc thanh ghi trong b nh, DS1307 cn c mt thanh ghi khc nm ring gi l con tr a ch hay thanh ghi a ch (Address Register). Gi tr ca thanh ghi ny l a ch ca thanh ghi trong b nh m ngi dng mun truy cp.

IV, THUT TON GIAO TIP I2C VI VI IU KHIN 89S52 iu kin START and STOP START v STOP l nhng iu kin bt buc phi c khi mt thit b ch mun thit lp giao tip vi mt thit b no trong mng I2C. START l iu kin khi u, bo hiu bt u ca giao tip, cn STOP bo hiu kt thc mt giao tip. Hnh 11 m t iu kin START v iu kin STOP khi giao tip I2C gia DS1307 vi Vi iu Khin.

Ban u khi cha thc hin qu trnh giao tip, c hai ng SDA v SCL u mc cao (SDA = SCL = HIGH). Lc ny bus I2C c coi l ri (bus free), sn sng cho mt giao tip. Hai iu kin START v STOP l khng th thiu trong vic giao tip gia cc thit b I2C, tt nhin l trong giao tip ny cng khng ngoi l. iu kin START: mt s chuyn i trng thi t cao xung thp trn ng SDA trong khi ng SCL ang mc cao (cao = 1; thp = 0) bo hiu mt iu kin START iu kin STOP: Mt s chuyn i trng thi t mc thp ln cao trn ng SDA trong khi ng SCL ang mc cao. C hai iu kin START v STOPu c to ra bi thit b ch. Sau tn hiu START, bus I2C coi nh ang trong trng thi lm vic (busy). Bus I2C s ri, sn sng cho mt giao tip mi sau tn hiu STOP t pha thit b ch. Sau khi c mt iu kin START, trong qua trnh giao tip, khi c mt tn hiu START c lp li thay v mt tn hiu STOP th bus I2C vn tip tc trong trng thi bn. Tn hiu START v lp li START u c chc nng ging nhau l khi to mt giao tip. Ch hot ng

Ch hot ng ca I2C DS1307 c th hot ng 2 ch sau: ch slave nhn (ch DS1307 ghi ): chui d liu v chui xung clock s c nhn thng qua SDA v SCL. Sau mi byte c nhn th 1 bit ACKnowledge s c truyn. Cc iu kin START v STOP s c nhn dng khi bt u v kt thc 1 truyn 1 chui, nhn dng a ch c thc hin bi phn cng sau khi chp nhn a ch ca slave v bit mt chiu. Ch slave pht ( ch DS1307 c ): byte u tin slave nhn c tng t nh ch slave ghi. Tuy nhin trong ch ny th bit chiu li ch chiu chuyn ngc li. Chui d liu c phat i trn SDA bi DS1307 trong khi chui xung clock vo chn SCL lm vic vi DS1307, ta thc hin cc bc nh sau: START I2C Ghi: 0DxH (y l a ch ca DS1307 do nh sn xut quy nh trong giao tip I2C) vi: x=0: Ghi d liu vo DS1307 x=1: c d liu vo DS1307 Ghi tham s x ny vo, c ngha l vic tip theo l chng tag hi hay c d liu t con DS1307 ty vo gi tr x=0 (ghi d liu) hay x=1 (c d liu). Ghi vo a ch thanh ghi cn ghi hoc cn c (bng thanh ghi ca DS1307 ny c gi thiu hnh 3 & hnh 4). Ghi hoc c d liu. STOP I2C Mt v d minh ha cho vic c ghi Thanh ghi c a ch 01H cha Data v pht, mun set pht vo DS1307 chng ta lm theo quy trnh: STARTGhi: 0D0HGhi tip: 01HGhi tip: Ghi tip hoc STOP nu ch mun ci t thi gian cho pht.

Nu mun Ghi vo a ch 01H ri k tip Ghi vo a ch 04H chng hn th chng ta phi START li t uGhi vo 0D0H ( xc nh s Ghi vo DS1307 _ hng giao tip l Ghi vo) Ghi tip 04HGhi d liu ca thanh ghi cn ci tSTOP I2C. Tng t, nu chng ta mun c th trc ht chng ta phi ghi vo a ch cn c: tc l vn tip tc tin hnh 3 th tc STARTGhi 0D0HGhi vo a ch (a ch ca thanh ghi m ta mun c d liu). Sau , mi START li ri ghi li 0D1H (lc ny mi thng bo l ta s c t DS1307), tip theo c c bnh thng (thanh ghi c c s l thanh ghi c a ch ta mi va ghi vo), tip tc c th a ch cn c s t ng tng ln cho n khi STOP I2C. V, S KHI TNG QUT CA MCH NG H

Da vo s khi ca giao tip trn, iu c bn l chng ta phi vit mt phn mm khi to DS1307, thc ra l chng trnh giao tip I2C, c gi tr trong Ram ca con DS1307 lu tm thi vo trong Ram ca 89S52. Sau , vit thm mt phn mm c ni dung trong Ram ny a ra hin th bng phng php qut. n gin, vic c d liu t DS1307 lu vo trong Ram ca 89S52 v hin th gi_pht_giy, c chia ra lm 2 chng trnh con nh, nu c phm nhn th s nhy n chng trnh con x l phm nhn ring. VI,THIT K PHN MM

Nh trnh by trong phn thut ton gaio tip v s khi tng qut, th chng trnh MAIN ca chng ta s gm 3 mc chnh c m t c th trong lu ca chng trnh MAIN hnh

Gii thch lu chnh ny: Bt u, chng trnh s gi chng trnh con c d liu t con DS1307 vi chun giao tip I2C bng phng php c trnh by c th mc 4 (thut ton giao tip), sau , s gi chng trnh con qut Led 7 on hin th 6 s: 2 s hin th gi tr ca Gi, 2 s hin th gi tr ca Pht, 2 s hin th gi tr ca Giy. Nu phm MODE (chn ch ci t) khng c nhn th vng lp ca chng trnh ny s chy v tn. Nu phm MODE c nhn, n s nhy ti chng trnh con ci t gi hay pht cn ty thuc vo s ln nhn phm MODE. Sau y ta i vo chi tit ca tng khi nh: C D LIU T DS1307 LU VO TRONG RAM CA 89S52 Xem lu chng trnh nh hnh di. y, cc chng trnh con nh hn, chng hn nh: CTC SEND_START, SEND_STOP, SEND_BYTE, v.v. c cp n trong mc 4 (thut ton giao tip c cp trn).

VII, HIN TH BNG PHNG PHP QUT LED 7 ON

VIII, CI T THI GIAN Trong lu gii thut trn hnh trn

, cho chng ta thy, vng lp ca chng trnh s chy v tn cho n khi c phm MODE c n xung. Khi , n nhy n CTC gii quyt vic ci t thi gian. Lu gii thut ca CTC x l ci t phm c th hin hnh

Lu CTC ci t gi CTC ci t pht cng c nguyn tc tng t nh ci t gi nn khng c ni ra y. Nhn vo lu chng ta thy, ThanhGhi=02H, l a ch ca thanh ghi Gi trong con DS1307, nh vy, mc ch ca vic nh ngha nh ThanhGhi l xc nh a ch thay i gi tr trong nh RAM ca con DS1307. CTC ci t gi s lp v tn v CTC hin thi gi s ch cho hin th 2 Led 7 on, ch hin th gi trong khi ci t, tt c cc n Led cn li u tt ht. Trong khi CTC ci t ang chy v tn, nu c phm INC hoc DEC c nhn th n s nhy n CTC tng hoc gim ty vo phm c nhn. CTC tng gi c ch ra hinh 22 bn di y, nguyn tc ca CTC gim gi cng nh vy.

Lu CTC tng gi Nu nhn phm tng qu 23, th chng trnh s t thi gian li gi tr l 00h.

phn trc mnh gii thiu cc bn v chun giao tip I2C v IC DS1307.Phn ny mnh xin gii thiu v mch giao tip v 1 chung trnh asm giao tip DS1307 trang 8051projects.info Lu code ch mang tnh tham kho cc bn hiu r hn cch giao tip vi DS1307.

You might also like