OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5753|回复: 11

模拟IIC有个很奇怪的问题

[复制链接]

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
发表于 2013-11-7 13:27:11 | 显示全部楼层 |阅读模式


 


我的电路板是芯片是STM32F103VET6,用的程序是原子哥的程序,我的主板上有24c02还有一个IIC的传感器,这两个IIC我都是模拟的,并且在不同的端口,我用原子哥的程序通讯24c02是正常的,通讯这个IIC的传感器就不正常了,第一张图是SCL   第二张图是SDA信号,奇怪的是除了高低电平为什么还有中间状态,芯片上面的3.3v都是正的,在程序中表现的是我单片机发出数据之后,收不到应答。

原子哥,我弄了好多天了,帮帮我吧,我实在是没有办法了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
 楼主| 发表于 2013-11-7 13:47:04 | 显示全部楼层
刚开始iic上拉电阻10k,后来我又把上拉电阻换成4.7k的还是不行,我就奇怪,为什么会出现中间状态
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-7 14:12:33 | 显示全部楼层
回复【2楼】47933673:
---------------------------------
你传感器的工作电压符合器件要求没?我试过一次器件主电源电压接近低电压阀值造成了像你这样的情况,把供电上去了就好了,其他的还真没遇到过这样的现象。

你IIC硬件上的上啦电阻去掉,用STM32内部的试下,祝好运
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
 楼主| 发表于 2013-11-7 14:30:57 | 显示全部楼层
传感器电压是正常的 我刚才量了是3.3V,并且传感器肯定是好的,因为我换过两次传感器都是这样
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-8 08:21:32 | 显示全部楼层
回复【4楼】47933673:
---------------------------------
用原子哥例程的IIC驱动试下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
 楼主| 发表于 2013-11-8 09:53:44 | 显示全部楼层
我就是用的原子哥的例程的, 当我不接传感器的时候  两个信号线的波形都是正常的,最起码不会出现中间电平(1点多伏),一旦插上传感器波形就变成图中的那样了,不知道怎么回事,我都换了好几个传感器了  传感器都是好的,原子哥来帮帮我嘛!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-8 10:25:46 | 显示全部楼层
估计你的方向设置没有正确。一方输出1,一方输出0,两者打架,就是中间状态了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
 楼主| 发表于 2013-11-8 11:14:59 | 显示全部楼层
原子哥  你太神了, 就是io口设置的问题,但是不是方向问题,我刚开始的设置都是用你的例子设置的,都是推挽输出  输入的话是上拉输入,这个时候检测出来的波形,会有中间状态,我把io口改成SDA为浮空输入或者开漏输出,把SCL改为开漏输出,这个时候波形就不会出现中间状态,但是我通讯还是失败的,没有应答,不知道为什么
回复 支持 反对

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
 楼主| 发表于 2013-11-22 21:03:54 | 显示全部楼层
终于弄出来了,是因为传感器在每次读之前要延时5ms的时间,这个5ms是传感器准备数据的时间
回复 支持 反对

使用道具 举报

26

主题

467

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
876
金钱
876
注册时间
2013-10-3
在线时间
23 小时
发表于 2013-11-23 07:44:47 | 显示全部楼层
楼主厉害 ,,学到了 呵呵
避免犯错本是错误所在,我错故我在……
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-23 10:01:51 | 显示全部楼层
回复【9楼】47933673:
---------------------------------
认真看数据手册是个不错的选择,呵呵,有时候漏掉一点东西就会造成不预料的后果
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-7-26
在线时间
11 小时
发表于 2016-8-10 11:48:02 | 显示全部楼层
我不大会看数据是手册,特别是英文的。感觉好难做。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-2 20:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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