搜索
bottom↓
回复: 9

PIC模拟i2c存在的问题

[复制链接]

出0入0汤圆

发表于 2013-8-5 11:39:32 | 显示全部楼层 |阅读模式
最近再用pic普通io口模拟I2C与传感器bh1710进行通信,因为是模拟I2C,有些问题我不是太明白。
就我观察到的,pic模拟i2c主要有两种方式,我下面分别说明一下:
第一种方式,就是把io口数据寄存器初始值设为0,当想输出高电平时,就设为输入状态,引脚在外部上拉电阻的作用下自动拉高;当想输出低电平时,设置为输出状态,数据寄存器上的0就被输出到io口。
第二种方式,就是把io口设置为输出状态,输出0就是0,输出1就是1。
上面两种方式我都见过,不知道究竟哪一种更好,关键是现在我的程序还没有调通,所以也不知道是不是用的方式不对。
大家有什么意见,可以说一下吗?

出0入0汤圆

发表于 2013-8-5 11:42:46 | 显示全部楼层
第一种好。不会因为设为输出1时被从器件拉低而产生大电流或无法拉低。

出0入0汤圆

发表于 2013-8-5 15:13:54 | 显示全部楼层
- -还真没考虑过诶,不过我一般是用第二种方法- -

出0入42汤圆

发表于 2013-8-5 17:35:36 | 显示全部楼层
第二种一般是不允许的吧

出0入0汤圆

发表于 2013-8-5 18:24:17 | 显示全部楼层
the 2nd approach is not in compliance with i2c protocol.

出0入0汤圆

 楼主| 发表于 2013-8-6 21:03:37 | 显示全部楼层
本帖最后由 防滑销钉 于 2013-8-6 21:05 编辑
millwood0 发表于 2013-8-5 18:24
the 2nd approach is not in compliance with i2c protocol.


但我网上下的程序,好多都是用的第二种方法,也说能够实现。
我看了我老师以前的一个项目,就是简单的读取数字传感器数据,程序里就是用的第二种方法,最后也没什么问题。
不过我也觉得,第一种方法更符合i2c的规范,我看来一本pic的应用手册,也是这样推荐的。
我准备用第一种方法试试看。

出0入0汤圆

 楼主| 发表于 2013-8-7 08:03:32 | 显示全部楼层
我自己来回答一下把。
如果采用我提到的第二种方法,使用推挽输出方式。当mcu输出高电平的时候,相当于mcu内部使端口直接连接vcc,这时候如果从机i2c设备输出为0,相当于短路,容易烧坏从机i2c端口。
而且,采用第一种方法时,从机i2c设备工作电压可以小于mcu工作电压,因为我们输出1时实际上相当于由外部上拉,只需要把外部上拉电压设置为与从机工作电压一致就可以了。

出0入0汤圆

发表于 2013-8-7 08:20:23 | 显示全部楼层
>> 当mcu输出高电平的时候,相当于mcu内部使端口直接连接vcc

不一定。PIC 有一种输出是用了开漏形式的,像 16F628A 的 RA4 脚,就可以使用你提到的第二种方法,不过只限此脚而已。

出0入0汤圆

发表于 2014-11-6 13:16:37 | 显示全部楼层
楼主能把您的模拟i2c程序发上来学习一下吗???

出0入0汤圆

 楼主| 发表于 2014-11-6 21:39:14 | 显示全部楼层
panda08 发表于 2014-11-6 13:16
楼主能把您的模拟i2c程序发上来学习一下吗???

不好意思啊,时间太长了,程序已经没有了。
不过我有一点经验,就是第一次写的话,最好用示波器一个一个的看,开始,停止,发送一个字节。
等到都没有问题了,再整条命令的尝试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 14:57

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

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