您的位置 首页 知识

I2C总线学习—查缺补漏—S3C2440的I2C控制器

学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440,所以就把这一部分补

学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC操控器,究竟终究都是为了学习S3C2440,所以就把这一部分补上。 S3C2440的I2C接口有四种作业形式:主机发送器、主机接纳器、从机发送器、从机接纳机。其内部结构如下图所示。

从上图能够看出,S3C2440供给4个寄存器来完结一切的IIC操作。SDA线上的数据从IICDS寄存器经过移位寄存器宣布,或经过移位寄存器传入IICDS寄存器;IICADD寄存器中保存S3C2440作为从机时的地址;IICCON、IICSTAT两个寄存器用来操控或标识各种状况,比方挑选作业作业形式,宣布S信号、P信号,决议是否宣布ACK信号,检测是否接纳到ACK信号。下面具体接纳各寄存器的用法。

IICCON寄存器IIC-Bus control register

注意事项:
  1. IIC中止发生在以下三种状况:当宣布地址信息或接纳到一个从机地址并吻合时,当总线总裁失利时,当发送/接纳完一个字节的数据(包含呼应位)时。当宣布地址信息或接纳到一个从机地址并吻合时发生中止,在中止处理函数中要预备发送或许接纳数据,即读取或设备IICDS寄存器,或许宣布P信号。当总线总裁失利时发生中止,在中止处理函数中决议时分延时后再次竞赛总线等。当发送/接纳完一个字节的数据(包含呼应位)时发生中止,在中止处理函数中要预备下非必须发送或许接纳数据,即读取或设备IICDS寄存器,或许宣布P信号。
  2. 根据SDA、SCL线上时刻特性的考虑,要发送数据时,先将数据写入IICDS寄存器,然后再铲除中止。铲除中止,即向IICCON[4]写入0,也便是将SCL线拉高,此刻发生一个上升沿,将移位寄存器中的数据发送到SDA线。至于先将数据写入IICDS寄存器,然后再铲除中止,可能是数据安稳需求一个时刻吧。在铲除中止前要数据坚持问的那个。
  3. 假如IICCON[5]==0,IICCON[4]将不能正常作业。所以,即便不运用IIC中止,也要将IICCON[5]设为1。

IICSTAT寄存器

IICADD寄存器

用到IICADD寄存器的位[7:1],表明从机地址。IICADD寄存器在串行输出使能位IICSTAT[4]为0时,才能够写入;在任何时分都能够读出。IICSTAT[4]为0时,制止接纳/发送功用,即此刻SCL线被拉低。

IICDS寄存器

用到IICDS寄存器的位[7:0],其间保存的是要发送或现已接纳到的数据。IICDS寄存器在串行输出使能位IICSTAT[4]为1时才能够写入;在任何时分都能够读出。I%&&&&&%STAT[4]为1时,使能接纳/发送功用,也便是释放了SCL线。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/262478.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部