历史上的今天
今天是:2025年07月17日(星期四)
2018年07月17日 | I2C通信 读写数据过程
2018-07-17 来源:eefocus
在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。
以读写从机寄存器数据为例:
假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);
约定读command为0x01,写command位0x02;
约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。
1. 读寄存器数据步骤:
1.1 主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)
1.2 从机firmware的处理:
1.2.1 将command和address分别提取出来;
1.2.2 判断command的含义(本例中,是读指令还是写指令);
1.2.3 根据收到的的address,将对应寄存器的的数据放入从机I2C输出buffer;(这个步骤可以使用指针)
1.3 主机再次发起一次通信,读取从机的数据;(主机发出读操作)
2. 写操作步骤:
2.1 主机发起通信,按约定依次写入command、要写入的从机寄存器地址address和要写入的数据data;
2.2 从机firmware要做的处理:
2.2.1 分别提取command、address和data;
2.2.2 根据command做出判断(本例中则判断是写入还是读取);
2.2.3 将data写入与接收到的address对应的寄存器。(这个步骤可以使用指针)。
史海拾趣
|
国半推出内置射频抑制IC的两款Boomer音频子系统 美国国家半导体公司(National Semiconductor Corporation)宣布推出两款内置射频抑制电路的Boomer音频子系统,其优点是可以提高便携式电子产品的抗噪音干扰能力。国半这两款型号分别为LM4946及 ...… 查看全部问答> |
|
应wangjiafu1985要求,将所有上传了:) 爱因迪生:首先让我采访下这位长的像炮管似的重量级的兄弟。请问先生是叫什么电阻? 选手(瓮声瓮气):我是波纹电阻。 爱因迪生:还有这位呢?外面都是铝壳。 选手:所以偶叫铝壳电阻。 爱因迪生 ...… 查看全部问答> |
|
如何实现WINCE 启动画面(开机logo)? (PXA300+ Monahans L ) 如题CPU 是PXA300 BSP Monahans L 现在没有启动画面,要实现启动画面,下载内核时的提示画面,都是静态的不需要动画.或者只显示一些提示语类似\"OS image downloading...\". 虽然看到很多人在网上问这个问题了,但有些地方还不清楚,所以再问一下. 有 ...… 查看全部问答> |
|
原帖地址http://topic.eeworld.net/u/20080521/16/8dd26e1c-2e9b-4277-877b-5f888125bc35.html?seed=2142211368 我们目前的系统是使用的三星44b0的平台,一块8M的sram,一块8M的nor flash,无操作系统 我现在要做的是为原本的这套系统添加一个\"程 ...… 查看全部问答> |
|
我装了VXWORKS FOR PENTIUM但是使用VxSim时报错,帮忙看看!!! 我装了VXWORKS FOR PENTIUM但是使用VxSim时报错,帮忙看看!!! 系统WINXP,CPU ATHLON XP-M 1.6G 运行VxSim,起先CPU占用率100%,几秒钟后报 --------------------------- Tornado --------------------------- error : image specified ca ...… 查看全部问答> |
|
看了这么久的论坛,也下了不少大家常用的软件,推荐一款自己一直使用的不错软件,不知道大家用过没,貌似别人没发过吧。集合了许多常用功能:精确延时、定时/计数器、串口波特率等常用的代码生成,也可查询许多常用的寄存器… 查看全部问答> |




