新闻中心

EEPW首页>嵌入式系统>设计应用> DS1621在Linux下的IIC接口驱动设计

DS1621在Linux下的IIC接口驱动设计

作者: 时间:2013-02-25 来源:网络 收藏

驱动程序设计流程图

图4 驱动程序设计流程图

  3.1 设备驱动的主要函数

  对于字符设备,内核对这些操作进行了统一的抽象,把它们定义在结构体file-operation中。通常,字符设备提供给应用程序的是一个流控制接口,主要包括open、release、read、ioctl等。


  3.2 从器件,设备的初始化代码


  3.3 IIC总线的初始化

  对的IIC控制器进行配置时需要用到的寄存器有:IICCON、IICSTAT、IICDS、IICADD。

  IICCON:IIC总线控制寄存器;IICSTAT:IIC总线控制状态寄存器;HCDS:IIC总线接收/发送数据移位寄存器;IICADD:IIC总线地址寄存器。

  1)的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总线读数据

  对于的寄存器配置,当通过IIC读取从器件的数据时,需要切换数据收发的方向,先在主机发送数据模式下,向从器件DS1621发送从地址、DS1621内部寄存器的子地址和写信号位,然后在主机接收数据模式下,再次向从器件发送从地址和读信号位,并将子地址内的数据读回,其读数据操作如图5所示。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭