首页 > 试题广场 >

简述通过I2C接口读取设备X的寄存器Y的值的过程

[问答题]
简述通过I2C接口读取设备X的寄存器Y的值的过程
发送起始信号——发送设备X地址+读写位0——读取ACK——发送寄存器地址Y——读取ACK——重复起始信号——发送设备X地址+读写位1——读取ACK——读取数据——发送NACK——发送停止信号
发表于 2020-04-29 02:45:02 回复(3)
1.首先主机发起通信(起始信号),将设备X的地址与寄存器Y写入从机;
2.从机接收信号将命令(读还是写命令)与寄存器Y地址提取出来,
3.从机将寄存器Y地址的数据放入从机I2C输出buffer
4.主机再次发起一次通信,读取从机数据。
发表于 2019-09-16 16:25:59 回复(0)
主机发起通信,将读命令和寄存器Y的地址发给设备X
设备X 读取判断读命令 根据寄存器Y的地址讲寄存器Y的值通过设备X的I2C输出到buff
主机再次发起通信读取数据



发表于 2019-06-16 09:55:01 回复(1)
1.首先SDA拉低,然后SCL拉低,表示传输开始。
2.接着SDA发送7bit位(针对7位模式)的从机(设备x)地址,一个读写标志位。从机收到信号决定是否发回应答信号ACK。
3.接着i2c接口会发送从机寄存器的地址(8bit)位,从机收到信号决定是否发回应答信号ACK,发回为1,默认为0。
4.重复第一步的开始信号。
5.SDA再一次发送从机地址,此时读写标志位为1,然后是一个ACK信号。
6.紧接着就是读取寄存器Y的值了,这是一个8位的数据,由从机发出的。
7.最后就是从机返回一个NACK信号。表示信号传输结束。将SDA拉高,scl拉高。
个人理解,从I2C的时序来理解的。
发表于 2021-05-08 10:13:57 回复(0)
I2C只有两根线,分别为数据线(SDA)、时钟线(SCL)
通过数据线和时钟线的状态,可以产生起始信号、结束信号、应答信号、读取数据、接收数据等信号

读取设备X的寄存器Y值过程
主机发送一个起始信号,表示主机开始工作
主机发送一个地址编号(设备X的地址)
挂在I2C总线上的设备X向主机返回一个ack应答信号,建立主机与设备X之间的传输连接
主机收到应答信号后,向设备X发送一个寄存器Y的地址编号
设备X产生一个ack应答信号
主机收到应答后,再次发送一个起始信号
主机发送一个地址编号(设备X的地址)
设备X产生一个ack应答信号
主机收到应答后,发送读命令
设备X产生一个ack应答信号
主机收到应答后,主机读取一字节数据
主机产生一个ack应答信号
主机读取一个CRC校验码
主机产生一个Nack信号
主机产生一个结束信号



发表于 2020-07-23 21:56:11 回复(0)
1、主机发送起始信号
2、主机发送从设备x的地址(最后一位为读写控制位,此时为0,表示写信号)
3、从机发送ack应答信号,建立主机与从机的通讯
4、主机重新发起起始信号
5、发送寄存器y的地址
6、从机发送ack应答信号
7、主机重新发送起始信号
8、主机发送设备x的地址(最后一位为1,表示读信号)
9、从机发送ack应答
10、从从设备中读取数据
11、主机发送NO ACK信号,表示读取完成
12、主机发送停止信号
发表于 2021-02-19 18:00:47 回复(0)
发表于 2022-05-09 11:52:58 回复(0)
I2C具有两条线,SDA与SCL。在通信时,只有在SCL为低电平时SDA可以变换电平,SCL高电平时读取SDA的数据。在未开始通信前,I2C的SDA和SCL都为高电平,当SDA在SCL为高电平的时候置低则表示通信的开始。然后是7位的设备X地址,紧接着是一位0表示写,接着是1位的ACK;然后是8位的寄存器Y的地址,紧接着是1位的ACK。之后再在SCL为高电平时将SDA置低,表示再次开始,写入7位的设备X地址,1位的0表示读,接着是ACK;接着就是连续的字节数据,最后在SCL为高的时候SDA置1表示通信结束。
发表于 2021-07-20 22:02:00 回复(0)
1.主机先发起一次通信,将读(command)和需要读取的寄存器地址(address)写入从机(主机发出写操作)。
2.从机(X)先将command和address分别提取;再判断command是读还是写;最后根据收到的address,也就是将寄存器Y的数据放入从机的IIC输出的buffer。
3.主机再发起一次通信,读取从机的输出buffer(主机发出读操作)。
发表于 2022-02-07 11:10:03 回复(0)
        首先是发送从机地址"DEVICE ADDRESS",接着给从机发送"WORD ADDRESS"是所读取内容的地址,这是告诉AT24C02接下主机需要的内容,设置好地址之后,接着主机再发送一个起始位,紧接着发送"DEVICE ADDRESS",这时可以注意到传输方向是READ(读),那么主机释放SDA线的控制权,从机给主机发送数据,可以连续发送多个字节数据,当主机期望停止接收时作出一个非应答NO ACK,那么从机就停止发送了。

发表于 2021-08-22 16:22:58 回复(0)