微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > I2C SDA口如何作为输出

I2C SDA口如何作为输出

时间:10-02 整理:3721RD 点击:
i2c总线协议,SDA是作为输入输出的双向口,SDA是采用开漏结构,如图所示


理论上,当SDA作为输出的时候,若是输出低电平,NMOS管导通,SDA被拉至地;若是输出高电平,NMOS截止,SDA通过电阻上拉至电源电压,实现高电平的输出。
但是,SDA是双向口,当SDA作为输出的时候,SDA口肯定还是有输入信号的,怎样实现输入输出的隔离?如何使SDA的输入信号不影响到输出?

在G极缺个反相器吧,在这个电路结构上加个反相器,其实你理解有问题,SDA作为总线是双向的,但是在模块内部还是单向的(包括sda_i、sda_o),其中sda_o与G极相连,sda_i与D极相连,同样总线SDA与D极相连。当发出数据,sda_o高会使SDA高,sda_o低会使SDA低,当接收数据时本方一定要先释放总线这时会有sda_o拉高,SDA的会把数据通过sda_i传输过来。因此,你不用考虑隔离的问题,发出sda_o和接收sda_i是两个方向的数据传输,一方传输时另一方必须要释放总线,根据总线协议,模块内部会处理这个问题的。

分时复用,输入输出,控制器会对IO进行不同的配置。

一个时刻只能是input 或者output

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

网站地图

Top