i2c_msg 标志位 - repeat-start

i2c_msg标志位 路径:linux-2.6.38/include/linux/i2c.h

  • I2C_M_IGNORE_NAK:

设置这个标志意味当前i2c_msg忽略I2C器件的ack和nack信号。

  • I2C_M_NOSTART:

设置这个标志意味当前i2c_msg不发送start信号。注意,其实调用bit_xfer的一开始就已经发了start信号了(程序第10行),这个标记无非就是标志是否发送地址第18行。其次,如果一个i2c_msg没有定义I2C_M_NOSTART而且又不是msgs序列里的第一个i2c_msg,则回发送重复start信号,我想这就是这个标志起这个名的原因。我们可以猜想,

  1. msgs序列第一个数据必须是地址,同时必须不定义这个标志位
  2. 在进行读数据,要从写操作转变为读操作时,会发重复start信号和器件地址时,必须不定义这个标志位
  3. 其它情况下一的i2c_msg必须定义这个标志

以上只是我看完这个函数的理解,不一定正确。同时1和2总结下来就是发器件地址(注意,是器件地址,不是像EEPROM那样的EEPROM地址,这个地址是当数据发的)时会不设置I2C_M_NOSTART, 发数据时就设置I2C_M_NOSTART这个标志。

  • I2C_M_NO_RD_ACK:

这个标识表示在正行读操作时不去ACK,我不知道其它芯片如果,如果是AT24C04则一定不能设这个标志位了。

(下面三个标志为均为bit_doAddress函数使用,结合上面的说明,也就是这时I2C_M_NOSTART一定没有设置。)

  • I2C_M_RD: 表示这是一个读操作,默认是把相应的位置1
  • I2C_M_REV_DIR_ADDR: 表示把读写标志位反转,也就是读是把相应位置0
  • I2C_M_TEN: 表示这个器件的器件地址是10Bit的。一定要搞清,这是器件地址,不是指EEPROM的ROM地址。24C02等芯片真正的器件地址只有4位永远有效(0xA),低4位用来放其它东西了(根据容量有可能是器件地址的低3位,或ROM地址的高3位)。也是说,无论什么容量,这类器件的地址只是器件地址我们只选7位模式(内核只区分10位模式和其它模式)

如果要发送以下的序列的话:

则必须用I2C_M_NOSTART | I2C_M_RD一起使用,否则会导致读位依然是写位;

变成以下类型:

参考文章:

Linux I2C framework(2)_I2C provider

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信技能树

如果你想分析的表达矩阵的芯片全世界只有15个发表的研究

而且部分芯片,使用的人就非常少,你想学习前人的数据分析策略, 都很难,你应该是会很奔溃吧,比如我们之前介绍过的 [HuGene-2_0-st] Affymetr...

6210
来自专栏Lauren的FPGA

用好DocNav - Part 1

DocNav(Documentation Navigator)可以看作是Xilinx的文档、视频“集装箱”,几乎所有与芯片、开发工具、设计方法、IP等相关的文档...

6840
来自专栏生信宝典

NAR| 表观组关联分析数据库 - EWAS Data Hub

近年来, 表观组关联分析(Epigenome-wide Association Study,EWAS)已成为探索复杂性状表观遗传基础的有效策略。随着大量EWAS...

15320
来自专栏程序员的成长之路

又一个操作系统开源!腾讯开源TencentOS tiny,最小体积 1.8KB!

整编自:https://github.com/Tencent/TencentOS-tiny

12820
来自专栏生信技能树

GEO数据挖掘技术可以应用到表达芯片也可以是转录组测序

虽然一直演示的表达芯片数据分析,这些芯片分析难点主要是在ID转换,因为不同公司设计的探针命名都不一样,在我4年前博客整理的芯片平台对应R包找:(16)芯片探针与...

21020
来自专栏ROBOTEDU

简单的CV(计算机视觉)学习

计算机图形学(Computer Graphics,简称CG),计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示...

6120
来自专栏Lauren的FPGA

9个关于SSI芯片的必知问题

SSI是Stacked Silicon Interconnect的缩写。SSI芯片其实就是我们通常所说的多die芯片。其基本结构如下图所示。可以看到SSI芯片的...

10110
来自专栏ROBOTEDU

【简单的CV】1.5 相机控制

相机技术由胶片向图像传感器的进化,极大的推动了摄像的普及。图像的载体由胶卷转变为计算机存储这也为计算器视觉的形成做了很重要的铺垫。

9420
来自专栏Lauren的FPGA

查找表用作分布式RAM

SLICEM中的查找表可用作分布式RAM。如果把FPGA比作大海,LUT就像一个个小的岛屿分布在这片大海上,或许这就是分布式RAM的名称由来。以UltraSca...

6720
来自专栏量子位

对话高通工程技术SVP:AI研发最关注高能效,云端AI推理芯片已流片成功

高通,移动互联网时代最成功的公司之一。它对通信技术以及专利的掌控,已经主导整个行业20余年。

6930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励