0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C spec规定和详细解析

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-22 15:55 次阅读

I2C

I2C spec 规定如下

图片

详细解析如下

图片

对从机进行写操作时,主设备发出开始标志 (S) 和写地址 (从机地址加一个 R/W 位,1 为读,0 为写)。从机产生应答信号。然后主设备开始传送寄存器地址 (RA),接到应答后,开始传送寄存器数据,然后仍然要有应答信号,连续写入多字节时依次推。

举例(例子进行了两次封装)

static int ap3216c_open(struct inode *inode, struct file *filp)
{
 filp- >private_data = &ap3216cdev;

 /* 初始化AP3216C */
 ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0x04);  /* 复位AP3216C    */
 mdelay(50);              /* AP3216C复位最少10ms  */
 ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0X03);  /* 开启ALS、PS+IR   */
 return 0;
}

static void ap3216c_write_reg(struct ap3216c_dev *dev, u8 reg, u8 data)
{
 u8 buf = 0;
 buf = data;
 ap3216c_write_regs(dev, reg, &buf, 1);
}

static s32 ap3216c_write_regs(struct ap3216c_dev *dev, u8 reg, u8 *buf, u8 len)
{
 u8 b[256];
 struct i2c_msg msg;
 struct i2c_client *client = (struct i2c_client *)dev- >private_data;
 
 b[0] = reg;     /* 寄存器首地址 */
 memcpy(&b[1],buf,len);  /* 将要写入的数据拷贝到数组b里面 */
  
 msg.addr = client- >addr; /* ap3216c地址 */
 msg.flags = 0;    /* 标记为写数据 */
 msg.buf = b;    /* 要写入的数据缓冲区 */
 msg.len = len + 1;   /* 要写入的数据长度 */

 return i2c_transfer(client- >adapter, &msg, 1);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7068

    浏览量

    89106
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1489

    浏览量

    123890
收藏 人收藏

    评论

    相关推荐

    I2C通信设计深度解析

    I2C通信设计深度解析
    发表于 08-12 21:31

    i2c总线ppt(I2C总线器件应用)

    I2C总线器件应用第一节 I2C总线器件应用概述I2C总线工作原理I2C总线系统结构I2C总线系统结构如图7-1所示。其中,SCL是时钟线,
    发表于 08-13 17:34 0次下载

    i2c总线技术 (非常详细)

    i2c总线技术:2 I2C 总线使设计人员和厂商都得益.. 32.1 设计人员的得益.. 42.2 厂商的得益. 53 介绍I2C 总线规范 64
    发表于 03-25 08:58 62次下载

    I2C总线规范与I2C器件C51读写程序

    I2C总线规范与I2C器件C51读写程序:本文简要介绍了I2C总线,并给出了I2C器件的C51读
    发表于 08-22 17:51 93次下载

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    发表于 04-23 13:55 36次下载

    什么是i2c总线

    什么是i2c总线  下载请点击: i2c总线协议中文版 
    发表于 11-05 09:26 2924次阅读

    i2c

    单片机i2c总线操作;单片机i2c总线操作;单片机i2c总线操作;
    发表于 05-17 11:09 35次下载

    I2C资料总结

    I2C资料总结及实际问题解析
    发表于 08-16 10:35 2次下载

    详细说明了I2C库文件的使用,对于理解I2C有帮助

    详细说明了I2C库文件的使用,对于理解I2C有帮助
    发表于 10-13 10:02 28次下载

    I2C总线的规范详细说明

    本文档的主要内容详细介绍的是I2C总线的规范详细说明
    发表于 09-30 17:29 18次下载
    <b class='flag-5'>I2C</b>总线的规范<b class='flag-5'>详细</b>说明

    硬件I2C与模拟I2C

    硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    一文详解I2C总结的基础知识

    博主将 I2C spec 文章总结为一篇,目录如下
    的头像 发表于 06-27 15:25 6476次阅读

    I2C总线能挂多少设备?I2C spec知识总结

    I2C 是 Philips 公司在 1982 年为主机板、嵌入式系统(短距)设计的一种简单、双向二线制同步串行总线。
    的头像 发表于 03-27 09:19 6120次阅读

    I2C先写后读是什么

    I2CI2C 先写后读 其实所谓的 I2C 读,都是先写后读。 I2C spec 规定如下
    的头像 发表于 07-22 15:58 2861次阅读
    <b class='flag-5'>I2C</b>先写后读是什么

    i2c采样是上升沿吗?

    数据。在本文中,我们将详细讨论I2C采样的工作原理,采样时机以及如何进行I2C采样。 I2C采样的原理 I2C采样是基于
    的头像 发表于 09-19 17:16 2786次阅读