• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DS1621在Linux下的IIC接口驅(qū)動(dòng)設(shè)計(jì)

    DS1621在Linux下的IIC接口驅(qū)動(dòng)設(shè)計(jì)

    作者: 時(shí)間:2013-02-25 來(lái)源:網(wǎng)絡(luò) 收藏

    驅(qū)動(dòng)程序設(shè)計(jì)流程圖

    圖4 驅(qū)動(dòng)程序設(shè)計(jì)流程圖

      3.1 設(shè)備驅(qū)動(dòng)的主要函數(shù)

      對(duì)于字符設(shè)備,內(nèi)核對(duì)這些操作進(jìn)行了統(tǒng)一的抽象,把它們定義在結(jié)構(gòu)體file-operation中。通常,字符設(shè)備提供給應(yīng)用程序的是一個(gè)流控制接口,主要包括open、release、read、ioctl等。


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


      3.3 IIC總線的初始化

      對(duì)的IIC控制器進(jìn)行配置時(shí)需要用到的寄存器有:IICCON、IICSTAT、IICDS、IICADD。

      IICCON:IIC總線控制寄存器;IICSTAT:IIC總線控制狀態(tài)寄存器;HCDS:IIC總線接收/發(fā)送數(shù)據(jù)移位寄存器;IICADD:IIC總線地址寄存器。

      1)的GPE15為HCSDA,是串行數(shù)據(jù)線端口,GPE14為IICSCL,是串行時(shí)鐘線;

      2)將IICCON設(shè)置為:0xA7,表示傳輸過(guò)程中ACK應(yīng)答使能,IIC的工作時(shí)鐘為:HCCLK=fpclk/512,IlC總線中斷使能,數(shù)據(jù)傳輸?shù)臅r(shí)鐘為:Tx clock=IICCLK/(IICCON[3:O]+1),約為400 k/s;

      3)將IICSTAT置為:0x10,即使用從器件接收數(shù)據(jù)模式,數(shù)據(jù)輸出/接收使能。


      3.4 主器件從HC總線讀數(shù)據(jù)

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

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


    關(guān)鍵詞: DS1621 Linux IIC接口 S3C2440

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 安平县| 朔州市| 蒲江县| 固安县| 疏勒县| 鸡西市| 册亨县| 镇原县| 清流县| 万年县| 阳朔县| 新邵县| 平潭县| 池州市| 朔州市| 城步| 商城县| 平和县| 固阳县| 丹寨县| 宝坻区| 郯城县| 福泉市| 锦屏县| 龙里县| 绥江县| 马关县| 南雄市| 比如县| 栾川县| 建瓯市| 开原市| 嵩明县| 谷城县| 襄垣县| 临清市| 云龙县| 永丰县| 郧西县| 如东县| 芜湖市|