微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教I2C的SDA三态门。enable端口可以 always 等于0么?

请教I2C的SDA三态门。enable端口可以 always 等于0么?

时间:10-02 整理:3721RD 点击:
请教I2C的SDA三态门。enable端口可以 always 等于0么?

不可以。根据IIC协议,master/slave 都有机会驱动SDA。



   我觉得我问的问题不是很好,呵呵,I2C的pad端口是open drain 或open collector,如图


可以没有这个enable信号吧,不用三态门实现,而是特定的pad模型

看来你是没有完全理解这个使能信号的作用,它是双向接口的必须信号。它并不一定是图中的表现形式,但一定存在这么一个使能信号,控制I/O数据流

enable信号是必须存在的,可以用多种方法实现。



  我只要保证SDA信号这master-receiver模式下置高不就可以了么?
可以详细一点说明,为什么需要enable信号么?



   
我只要保证SDA信号这master-receiver模式下置高不就可以了么?
可以详细一点说明,为什么需要enable信号么?谢谢啦

可以啊。但是你切换输入输出模式肯定要根据一个条件来切换吧?这个条件就可以看做enable信号。

需要ENABLE信号是因为协议里面是双向信号,但是现实实现总是单向的吧。
所以用enbale=0代表输出,=1代表输入。



   I2C的端口用的是线与逻辑,采用open drain,不需要明确的enable信号。



    SDA的线与是线与,但SDA PAD是个双向PAD的事实不会改变啊,双向PAD就有相应的IE(控制输入) 和 OEN(控制输出),这是两码事啊



   I2C的pad只能输出低电压额

可以认为I2C只能输出低电平和三态,如果输出高电平就使总线上其他设备不能输出低电平了,总线上的高电平都是通过上拉得来的

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

网站地图

Top