微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > IIC相关问题的疑问

IIC相关问题的疑问

时间:10-02 整理:3721RD 点击:
IIC主机和从机的SDA(数据端口)都是双向口,现在是主机往从机写入数据,按照协议要求,从机应当返还应答信号,应答信号低电平有效。假设从机在返还应答信号时,若因为主机程序错误,导致从机在返还应答信号的同时,发送了低电平给从机。此时SDA线上就存在冲突,主机发送了低电平,从机也返还了低电平。
问题是:此时SDA线上会是一种什么样的状态?

学习学习。

两个都低当然是低了。
等主机发现通讯错误做错误检测直到对了重新通讯


有没有那种情况会使此时的SDA线上的电平为高。例如主机发送一个高电平的时候,从机返还低电平,此时的SDA线上是一种什么样的状态

IIC总线是开漏的,低电平是驱动到低,高电平是靠上拉的,没有直接驱动到高电平的。

#5 五樓是正解
IIC 是open drain 不會有drive high 的動作

没办法同时发送低电平吧,sda信号线有一个方向信号控制的sda = sda_link ? sda_r:1'bz;当sda_link为1 的时候主机控制sda,sda_link为0的时候,从机控制sda,他两没办法同时控制SDA信号线。不知道理解的对不对


       应该是不会,但是如果说你编的主机代码和从机代码有问题,都发送低电平,我就想这是一个什么状态

都发低就位低,一个发低另一个发高应该为不定态吧,不过实际IIC总线好像都是上拉到1的,没有驱动到1这个说法,所以还是为低,个人意见

看从机芯片的电器特性和逻辑设计,2个数字低电平打架,在示波器上很容易看出来,仅此而已,就i2c协议而言,从机此时应该不会有任何动作,因为ack是驱动输出状态,也不会去理会主机是否有发出冲突的电平。



   主机在发送完8bit的数据后会释放总线,此时SDA总线为高阻态,此状态下从机可以拉低SDA总线,从而使主机判断有ACK信号,进而通信完成。

IIC 总线协议在设计的时候所有总线采用开楼形式,目的就是为了避免多重驱动冲突

采用的上拉的方式,故不对总线操作就是高,否则则是主动拉低;在应答时主机不对总线操作,从机下拉即可产生应答,如果主机此时也下拉,那么即使从机非应答也会被判断成应答

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top