在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6178|回复: 11

[求助] 关于I2C测试里面的上拉问题

[复制链接]
发表于 2016-11-24 11:15:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
写了一个master模块,与EEPROM挂在了一条SDA线上,两个device的输出都是开漏的三态门。
写testbench时遇到了pullup的问题。个人认为直接在testbench里加一个pullup即可,但是波形出来高电平时为不定态。
D587.tmp.jpg 代码这么写的。
分开测试两边都是上拉至1,但是一起一仿真就是不定态了。

1487.tmp.jpg
我没接触过pullup这个标准单元,不知道例化时的用法。恳请各位大神给我指点迷津。
发表于 2016-11-25 10:44:29 | 显示全部楼层
pullup 没问题, eeprom如果是现成的模型,应该也不会错
那么就是你的SDA逻辑错了,SDA 高的状态是释放总线到high Z得到的,你是不是直接赋值了?
 楼主| 发表于 2016-11-25 13:55:16 | 显示全部楼层
回复 2# arthur_wang_orz


    V)I0%DQ8LD20(4AZ259W0(O.png

这是我在master里面对SDA线的定义。
EEPROM是现成的模型。
tb里面的SDA是wire型,也不可能赋值。

想问一下是不是两个开漏的三态门是不是不能拉到同一个上拉电阻上,造成了不定态。
V)I0%DQ8LD20(4AZ259W0(O.png
发表于 2016-11-25 14:32:41 | 显示全部楼层
我仿真的时候好像没有用上拉电阻,看起来也是你这个样子,是不是上拉代码有问题?(原来有上拉代码,学习了)
 楼主| 发表于 2016-11-25 14:34:17 | 显示全部楼层
回复 4# 一语奔驰


    如果没用上拉的话,是怎么让他到高电平的呢.困扰了好久~~~
发表于 2016-11-25 14:49:27 | 显示全部楼层
回复 5# thvvsherry


   我看到的也是红线X态,但是我自动把X当成1了,因为是上拉嘛,所以我的SCL和SDA只有X态和0态,不会出现1,我就无所谓上拉不上了了
 楼主| 发表于 2016-11-25 14:57:42 | 显示全部楼层
回复 6# 一语奔驰


    slave看到了x后能正确的给出ack信号吗?
发表于 2016-11-25 15:23:45 | 显示全部楼层
本帖最后由 一语奔驰 于 2016-11-25 15:51 编辑

回复 7# thvvsherry


   ACK是0啊,我不管是master还是slave,从来不主动输出1,只输出0和X。所以ACK就是0啊,NACK就是1。
发表于 2016-11-25 16:37:51 | 显示全部楼层
回复 3# thvvsherry

buff 不就等于直接驱动了么。。。 i2c 是没有直接驱动到1这个动作的,所以当你sda想要等于1的时候,是靠pull up register 做到的
 楼主| 发表于 2016-11-25 19:15:14 | 显示全部楼层
回复 9# arthur_wang_orz


   不用buff驱动的话要怎么拉低这条线呢,不太明白这一块。
   EEPROM只有一根inout线,master要能拼起来不也是用一根比较合理吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-5 07:47 , Processed in 0.023566 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表