CPLD实现I2C透传

2020-01-26 17:56发布

CPLD/FPGA实现I2C的透传,使用三态门,那么SDA的方向应向该如何确定?
assign SCL_OUT = SCL_IN;

wire mid;
assign mid = dir?1'bz:SDA_IN;  //dir为0的时候,SDA_IN
wire mid1;
assign mid1 = dir?SDA_OUT:1'bz;  //为1的时候,SDA_OUT

assign SDA_IN = mid1;
assign SDA_OUT = mid;


那个dir如何确定呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
ar_dong
1楼-- · 2020-01-26 23:08
方法1,监听i2c通讯,这样你就知道什么时候是输入,什么时候是输出
ar_dong
2楼-- · 2020-01-27 02:47
方法2,i2c只输出0,不输出1,1由外部上拉电阻实现
两面都作为输入,
当哪面先接到0时,对面做输出0
收到0的那一端收到了1时,两面都恢复为输入
延时一段时间再进行判断
linqing171
3楼-- · 2020-01-27 07:13
 精彩回答 2  元偷偷看……
OverMountain
4楼-- · 2020-01-27 10:36
宝挖小子
5楼-- · 2020-01-27 13:21
同问,楼主详细的FPGA代码能贴一下吗?

一周热门 更多>