數字溫度傳感器DS1621在Linux下的IIC接口驅動設計

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

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


3.4 主器件從HC總線讀數據
對于DS1621的寄存器配置,當通過IIC讀取從器件DS1621的數據時,需要切換數據收發的方向,S3C2440先在主機發送數據模式下,向從器件DS1621發送從地址、DS1621內部寄存器的子地址和寫信號位,然后在主機接收數據模式下,再次向從器件發送從地址和讀信號位,并將子地址內的數據讀回,其讀數據操作如圖5所示。本文引用地址:http://www.104case.com/article/162269.htm
其中S為發送開始標志START,W為寫信號位,R為讀信號位,A為ACK應答信號,RS為重復開始信號REPEATED START,NA為主機收回數據后發送的NACK信號,P為停止信號STOP。
3.5 主器件向IIC總線寫數據
3.6 S3C2440從DS1621獲得溫度數據,保存在內核空間并傳送到用戶空間
linux相關文章:linux教程
傳感器相關文章:傳感器工作原理
風速傳感器相關文章:風速傳感器原理 上拉電阻相關文章:上拉電阻原理 溫濕度控制器相關文章:溫濕度控制器原理
評論