<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計

          時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計

          作者: 時間:2013-12-07 來源:網(wǎng)絡 收藏

            實時數(shù)據(jù)寄存器是一個56位的存儲器,它以BCD碼方式存儲,包括年、月、日、星期、時、分、秒的數(shù)據(jù)。實時數(shù)據(jù)的讀/寫操作都通過發(fā)送或接收年(實時數(shù)據(jù)讀寫方式1)數(shù)據(jù)的第一位“LSB”開始執(zhí)行的。時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計

            3.3 E2PROM的讀/寫

            的E2PROM操作指令與實時時鐘的器件代碼是不一樣的。當CPU要對SD12200L中的E2PROM進行操作時,首先發(fā)出開始信號給SD2200L,然后CPU發(fā)出包括4位器件代碼10lO、3位頁選碼000、1位讀/寫指令的8位數(shù)據(jù)(即“從器件地址”)。一位讀/寫指令表明進行何種操作(讀操作為1,寫操作為O)。其格式如下:時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計

          3.3.1 對E2PROM的頁寫操作

            寫操作可分為:單字節(jié)寫操作和頁寫操作。單字節(jié)寫操作指每次只寫入一個字節(jié)的數(shù)據(jù);頁寫操作指一次可以寫入多個字節(jié)的數(shù)據(jù)。值得注意的是,SD2200L是一個系列,不同類型對應著不同數(shù)量的E2PROM。例如在頁寫操作下,單個寫周期內E2PROM可以被寫入64字節(jié)的數(shù)據(jù)。在某監(jiān)測儀器應用中,需要保存故障值和故障發(fā)生時間,故采用頁寫方式。頁寫E2PROM程序流程圖如圖4所示。

            3.3. 2 對E2PROM連續(xù)讀操作

            讀操作有3種方式:立即地址讀操作、隨機地址讀操作和連續(xù)讀操作。ATmegal6為完成從內置串行E2PROM中讀取數(shù)據(jù),必須將幾種TWI模式組合起來。由于內置E2PPROM的存儲容量 大小不同,因此在進行讀操作時,其操作方式有所不同。在查詢故障值和故障時間時,需要讀出保存在E2PRoM的數(shù)據(jù),故采用連續(xù)讀操作。與頁寫操作類似,SD2200ELP最多連續(xù)讀64字節(jié)的數(shù)據(jù)。連續(xù)讀操作程序流程圖如圖5所示。時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計


          讀/寫E2PROM需用到的5個公用函數(shù):時鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計

            4 總結

            SD2200ELP可以方便地結合的TWI總線實現(xiàn)日期顯示功能。并且因其內置32 KBE2PROM,可以保存時間和相應數(shù)據(jù);具有電路簡單、占用資源少、程序簡潔、調試方便、功耗低等特點。經(jīng)過實際的現(xiàn)場運行證實了該設計方法是可靠、有效的。對本文的設計方案和程序稍加修改后,可以用在各種需要此功能的數(shù)字控制和監(jiān)控檢測系統(tǒng)中


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();