驱动: i2c驱动 >>>>

时间:2023-02-20 17:39:09

1. IIC协议:

<<um_s3c2440a_rev10.pdf>>  p481 Figure 20-3. IIC-Bus Interface Data Format
<<AT24C08_DataSheet.pdf>>  Figure 1-12 Bus Timing and Device operations

iic总线里的角色:
    主机(Master):初始化发送、产生时钟信号和终止发送的器件
    从机(Slave):被主机寻址的器件

I2C的原则是:
    在SCL=1(高电平)时,SDA千万别忽悠!!! 否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".
    在SCL=0(低电平)时,SDA随便忽悠!!!(可别忽悠过火到SCL跳高)
    一条总线只有一个主机, 其他都是从机.
    
一次iic交互的例子:
    写AT24C08:
    start信号  +  addr + data[N] + stop信号    
    {
        1.   master发送start信号:     [scl高+sda下降沿]
        
        2.1. master发送addr: 7位设备地址 + R/W; 发完立刻把电平拉高,等待slave的ack;
                [sda在scl低电平的时候准备数据, 在scl上升沿时发送数据] * 8次
                MSB---先发最高位数据sda.
        2.2. slave收到master的start信号后,就开始监测master的数据了. 收到addr完毕并且发现addr就是自己的时候,马上拉低sda以表明传输有效(这就是所谓ack).
        
        3.1 主机收到ack后接着发送数据data, 这里是写1个字节,那就和发送addr用同样的方法连续发送8个bit就是了.
        同样,发完立刻把电平拉高,等待slave的ack;
        3.2 slave收到8位data完毕,马上拉低sda以表明传输有效(ack).
        
        4.   master收到ack,马上发送stop信号以关闭通信.
        
        说明:
        iic协议允许一次连接中传输多个字节,具体最多允许多少个字节看器件(AT24C08允许8个字节连续传输), 但是必须以8bit为单位, 接收方要给一个ack才会继续后面的传输.
        明确start和stop是由master发起的.
        
    }

一次iic交互的例子:
    读AT24C08:
    start信号  +  addr + data1 + start信号 + addr + data2[N] + stop信号    
    {
        你没看错, 有两次start, 一次stop.
        两次的addr地址都是同一个slave的, 区别在于它们的第8bit, 第一次是W(因为要写地址),第二次是R(读数据)
        data1指定数据存储在AT24C08中的哪个地址.
        data2[]是要写入的数据.
    }

2. iic驱动
<<韦东山Linux视频第2期_从零写驱动\第32课第1.1节_3.4.2内核下的I2C驱动之框架介绍_P.WMV>>

next: >>>>

驱动: i2c驱动 >>>>的更多相关文章

  1. MSP430G2553 Launchpad 硬件I2C驱动

    一.USCI I2C 驱动介绍 对于MSP430G2553,硬件I2C由外设USCI(Universal Serial Communication Interface)提供.USCI又分为USCI_A ...

  2. 4412 i2c驱动

    1.Linux主机驱动和外设驱动分离思想 外设驱动→API→主机驱动→板机逻辑--具体的i2c设备(camera,ts,eeprom等等) 2.主机驱动 根据控制器硬件手册,操作具体的寄存器,产生波形 ...

  3. Smart210学习记录-----Linux i2c驱动

    一:Linux i2c子系统简介: 1.Linux 的 I2C 体系结构分为 3 个组成部分: (1) I2C 核心. I2C 核心提供了 I2C 总线驱动和设备驱动的注册.注销方法,I2C 通信方法 ...

  4. linux下i2c驱动笔记 转

    1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连 ...

  5. 【转】 i2c驱动调试经验

    原文网址:http://blog.csdn.net/cmm20071020/article/details/7179958 把一个i2c驱动从2.6.21升级到2.6.39 上网查到一篇帖子,讲了驱动 ...

  6. linux i2c驱动架构-dm368 i2c驱动分析

      linux i2c驱动架构-dm368 i2c驱动分析   在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinc ...

  7. I2C驱动框架 (kernel-3&period;4&period;2)

    先用韦老师的图: 注:  新版本内核的i2c驱动框架采用了    i2c_client -------> i2c_bus_type  <-------- i2c_driver   框架 如 ...

  8. 【Linux高级驱动】I2C驱动框架分析

    1.i2c-dev.c(i2c设备驱动组件层) 功能:1)给用户提供接口 i2c_dev_init  //入口函数 /*申请主设备号*/ register_chrdev(I2C_MAJOR(), &q ...

  9. Linux驱动:I2C驱动编写要点

    继续上一篇博文没讲完的内容“针对 RepStart 型i2c设备的驱动模型”,其中涉及的内容有:i2c_client 的注册.i2c_driver 的注册.驱动程序的编写. 一.i2c 设备的注册分析 ...

随机推荐

  1. &lbrack;platform&rsqb;Device和Driver注册顺序

    1. 设备和驱动注册,无论谁先谁后,都可以通过查询总线进行匹配 设备挂接到总线上时,与总线上的所有驱动进行匹配(用bus_type.match进行匹配),如果匹配成功,则调用bus_type.prob ...

  2. navicat远程连接mysql

      转载:http://blog.sina.com.cn/s/blog_84485e540101178p.html   ERROR 1130: Host '192.168.1.81' is not a ...

  3. ExtJS4&period;2学习(三)——入门基础

    1.怎么给某一组件注册事件? 先画一个组件,然后在控制器中加入对这个组件的处理(包括组件对应的方法调用和方法定义). 2.ExtJS4的提示框和JS的差异: ExtJS4:一步走完程序: JS:让程序 ...

  4. Generic(泛型)

    什么是泛型:"通过参数化类型来实现在同一份代码上操作多种数据类型.利用"参数化类型"将类型抽象化,从而实现灵活的复用". 简单来说泛型就是为了使一些代码能够重复 ...

  5. FS BPM 业余研发(用户详细操作手册--单人串行&sol;并行)之 深圳分公司技术部请假审批流程

    1.FS BPM 简介 BPM软件中BPM是英文字母缩写,大致有二个意思.第一.Business Process Management,即业务流程管理,是一套达成企业各种业 务环节整合的全面管理模式. ...

  6. Java面向对象 String 基本数据类型对象包装类

      Java面向对象  String 知识概要:              (1)String的用法详解 (2)基本数据类型对象包装类 String          顾名思义,该类主要是对字符串 ...

  7. &lbrack;bzoj2333&rsqb; &lbrack;SCOI2011&rsqb;棘手的操作 &lpar;可并堆&rpar;

    //以后为了凑字数还是把题面搬上来吧2333 发布时间果然各种应景... Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个节点,标号从1 ...

  8. VNC 登录上去灰屏,没有shell脚本&comma;鼠标变成X

    CenterOS 1.安装vncserver yum install tigervnc-server -y 2.vncpasswd 设置pwd 3./etc/sysconfig/vncservers ...

  9. redis数据备份与恢复

    1.启动redis 进入redis目录 redis-cli 2.数据备份 redis 127.0.0.1:6379> SAVE 该命令将在 redis 备份目录中创建dump.rdb文件. 3. ...

  10. 13LaTeX学习系列之---LaTeX插入表格

    目录 目录 前言 (一)插入表格的基础语法 1.说明 2.源代码 3.输出效果 (二)查看文档 目录 本系列是有关LaTeX的学习系列,共计19篇,本章节是第13篇. 前一篇:12LaTeX学习系列之 ...