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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 數(shù)字溫度傳感器DS1621在Linux下的IIC接口驅(qū)動設(shè)計

          數(shù)字溫度傳感器DS1621在Linux下的IIC接口驅(qū)動設(shè)計

          作者: 時間:2011-03-22 來源:網(wǎng)絡(luò) 收藏


          3.2 從器件,設(shè)備的初始化代碼

          3.3 總線的初始化

          對S3C2440的控制器進行配置時需要用到的寄存器有:CON、IICSTAT、IICDS、IICADD。
          IICCON:IIC總線控制寄存器;IICSTAT:IIC總線控制狀態(tài)寄存器;HCDS:IIC總線接收/發(fā)送數(shù)據(jù)移位寄存器;IICADD:IIC總線地址寄存器。
          1)S3C2440的GPE15為HCSDA,是串行數(shù)據(jù)線端口,GPE14為IICSCL,是串行時鐘線;
          2)將IICCON設(shè)置為:0xA7,表示傳輸過程中ACK應(yīng)答使能,IIC的工作時鐘為:HCCLK=fpclk/512,IlC總線中斷使能,數(shù)據(jù)傳輸?shù)臅r鐘為:Tx clock=IICCLK/(IICCON[3:O]+1),約為400 k/s;
          3)將IICSTAT置為:0x10,即使用從器件接收數(shù)據(jù)模式,數(shù)據(jù)輸出/接收使能。


          3.4 主器件從HC總線讀數(shù)據(jù)
          對于的寄存器配置,當(dāng)通過IIC讀取從器件的數(shù)據(jù)時,需要切換數(shù)據(jù)收發(fā)的方向,S3C2440先在主機發(fā)送數(shù)據(jù)模式下,向從器件DS1621發(fā)送從地址、DS1621內(nèi)部寄存器的子地址和寫信號位,然后在主機接收數(shù)據(jù)模式下,再次向從器件發(fā)送從地址和讀信號位,并將子地址內(nèi)的數(shù)據(jù)讀回,其讀數(shù)據(jù)操作如圖5所示。

          本文引用地址:http://www.ex-cimer.com/article/162269.htm


          其中S為發(fā)送開始標(biāo)志START,W為寫信號位,R為讀信號位,A為ACK應(yīng)答信號,RS為重復(fù)開始信號REPEATED START,NA為主機收回數(shù)據(jù)后發(fā)送的NACK信號,P為停止信號STOP。

          3.5 主器件向IIC總線寫數(shù)據(jù)

          3.6 S3C2440從DS1621獲得數(shù)據(jù),保存在內(nèi)核空間并傳送到用戶空間

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程


          傳感器相關(guān)文章:傳感器工作原理


          風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
          上拉電阻相關(guān)文章:上拉電阻原理
          溫濕度控制器相關(guān)文章:溫濕度控制器原理


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();