新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DS1621在Linux下的IIC接口驅(qū)動設計

DS1621在Linux下的IIC接口驅(qū)動設計

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

驅(qū)動程序設計流程圖

圖4 驅(qū)動程序設計流程圖

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

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


  3.2 從器件,設備的初始化代碼


  3.3 IIC總線的初始化

  對的IIC控制器進行配置時需要用到的寄存器有:IICCON、IICSTAT、IICDS、IICADD。

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

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

  2)將IICCON設置為:0xA7,表示傳輸過程中ACK應答使能,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ù)

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

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


評論


相關推薦

技術專區(qū)

關閉