搜索
bottom↓
回复: 0

C8051F005的主模拟IIC和3个硬件IIC从通信时时钟线被拉低,为什么

[复制链接]

出0入0汤圆

发表于 2012-7-6 10:04:34 | 显示全部楼层 |阅读模式
本帖最后由 guxingganyue 于 2012-7-6 10:09 编辑

最近在写一个C8051F005的程序,其中涉及到多机IIC(SMBus)通信。调了好长时间未果,故来发帖求高手指点一二。




硬件描述:一个模拟IIC做主机,3个硬件SMBus做从机,这条总线上挂一个24C64,设计疏忽,把TLV5625也挂在这两根线上了。上电后当按开始按键后主机和3个从机通信(时间在1秒内通信完毕),完毕后3个从机暂时(不关闭的话很容易冲突,所以暂时通信完毕后就关闭,直到重新上电)把IIC关闭,主机和从机不再通信。注:TLV5625是SPI总线驱动了,而且TLV5625是在从机1中,当主从通信完毕后才调用TLV5625输出DA的程序。原理上不会干扰IIC总线。

注:主机和单个从机或EEPROM通信是没有问题的,现在只要把三个从机都挂上,时钟线就被拉低了。

1、怎么使C8051F005的SMBus做从机呢?
我看了手册,里面并没有介绍具体的方法。然后我又看了新华龙出的应用笔记,里面有个一SMBus点对点通信的例子,我按照那个例子写了SMBus的程序,现在系统可以工作了,但十分不稳定。我对这个问题的理解为:谁主发谁就是主机,而和它并联的其他器件则为从机。现在我用示波器看,当主机和从机通信完后,主机就没有发送什么数据了,正常情况下示波器上的时钟和数据线都是高电平。但示波器上看到还有时钟和数据。波形图1。这种情况在只有一个从机1时发生。当并联3个从机时用示波器看只有数据了,时钟线一直被拉低(图2)。SMBus不回数据了。

2、上述SMBus不回数或时钟线被拉低的现象出现的比较平凡。请问是否是我的这种模拟IIC和硬件IIC通信的方式造成了这种想象呢?如果不是,该怎样解决IIC不回数或者说IIC冲突?



        图1  不该有数据(即两根线都是高才对)时有IIC数据




         图2  时钟线被拉低了

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 00:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表