時(shí)鐘芯片SD2200ELP與AVR單片機(jī)TWI接口控制的設(shè)計(jì)
實(shí)時(shí)數(shù)據(jù)寄存器是一個(gè)56位的存儲(chǔ)器,它以BCD碼方式存儲(chǔ),包括年、月、日、星期、時(shí)、分、秒的數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)的讀/寫(xiě)操作都通過(guò)發(fā)送或接收年(實(shí)時(shí)數(shù)據(jù)讀寫(xiě)方式1)數(shù)據(jù)的第一位“LSB”開(kāi)始執(zhí)行的。
3.3 E2PROM的讀/寫(xiě)
SD2200ELP的E2PROM操作指令與實(shí)時(shí)時(shí)鐘的器件代碼是不一樣的。當(dāng)CPU要對(duì)SD12200L中的E2PROM進(jìn)行操作時(shí),首先發(fā)出開(kāi)始信號(hào)給SD2200L,然后CPU發(fā)出包括4位器件代碼10lO、3位頁(yè)選碼000、1位讀/寫(xiě)指令的8位數(shù)據(jù)(即“從器件地址”)。一位讀/寫(xiě)指令表明進(jìn)行何種操作(讀操作為1,寫(xiě)操作為O)。其格式如下:
3.3.1 對(duì)E2PROM的頁(yè)寫(xiě)操作
寫(xiě)操作可分為:?jiǎn)巫止?jié)寫(xiě)操作和頁(yè)寫(xiě)操作。單字節(jié)寫(xiě)操作指每次只寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù);頁(yè)寫(xiě)操作指一次可以寫(xiě)入多個(gè)字節(jié)的數(shù)據(jù)。值得注意的是,SD2200L是一個(gè)系列,不同類(lèi)型對(duì)應(yīng)著不同數(shù)量的E2PROM。例如在頁(yè)寫(xiě)操作下,SD2200ELP單個(gè)寫(xiě)周期內(nèi)E2PROM可以被寫(xiě)入64字節(jié)的數(shù)據(jù)。在某監(jiān)測(cè)儀器應(yīng)用中,需要保存故障值和故障發(fā)生時(shí)間,故采用頁(yè)寫(xiě)方式。頁(yè)寫(xiě)E2PROM程序流程圖如圖4所示。
3.3. 2 對(duì)E2PROM連續(xù)讀操作
讀操作有3種方式:立即地址讀操作、隨機(jī)地址讀操作和連續(xù)讀操作。ATmegal6為完成從SD2200ELP內(nèi)置串行E2PROM中讀取數(shù)據(jù),必須將幾種TWI模式組合起來(lái)。由于內(nèi)置E2PPROM的存儲(chǔ)容量 大小不同,因此在進(jìn)行讀操作時(shí),其操作方式有所不同。在查詢(xún)故障值和故障時(shí)間時(shí),需要讀出保存在E2PRoM的數(shù)據(jù),故采用連續(xù)讀操作。與頁(yè)寫(xiě)操作類(lèi)似,SD2200ELP最多連續(xù)讀64字節(jié)的數(shù)據(jù)。連續(xù)讀操作程序流程圖如圖5所示。
讀/寫(xiě)E2PROM需用到的5個(gè)公用函數(shù):
4 總結(jié)
SD2200ELP可以方便地結(jié)合AVR單片機(jī)的TWI總線實(shí)現(xiàn)日期顯示功能。并且因其內(nèi)置32 KBE2PROM,可以保存時(shí)間和相應(yīng)數(shù)據(jù);具有電路簡(jiǎn)單、占用資源少、程序簡(jiǎn)潔、調(diào)試方便、功耗低等特點(diǎn)。經(jīng)過(guò)實(shí)際的現(xiàn)場(chǎng)運(yùn)行證實(shí)了該設(shè)計(jì)方法是可靠、有效的。對(duì)本文的設(shè)計(jì)方案和程序稍加修改后,可以用在各種需要此功能的數(shù)字控制和監(jiān)控檢測(cè)系統(tǒng)中
評(píng)論