OpenEdv-开源电子网

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

关于I2C例程的时序问题

[复制链接]

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
发表于 2013-12-31 09:10:34 | 显示全部楼层 |阅读模式

1、战舰开发板提供的实验22 IIC实验 中


 

上图是用示波器在GPIO口看的I2C的两个数据,SCL和SDA.

但是我看不懂这个时序,感觉跟理论上的时序对应不上啊,找不到哪些是数据位啊,请知道的给予解答一下,感谢感谢。


 


2、下面是我改动了输入后的,输出图:


 

这个图,是我就在例程中只改了输入的内容,出来的图

这个图有个明显的问题啊:SCL为高时,数据位SDA也进行了改变,这不是跟I2C的规则相违背了吗,这是为什么啊?

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 10:03:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 10:10:16 | 显示全部楼层
第一个问题大概明白了,现在就剩第二个问题,怎么都想不明白啊
回复 支持 反对

使用道具 举报

2

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-12-27
在线时间
0 小时
发表于 2013-12-31 10:35:00 | 显示全部楼层
回复【3楼】慧慧:
---------------------------------
将波形放大看下
回复 支持 反对

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2013-12-31 10:38:36 | 显示全部楼层
回复【3楼】慧慧:
---------------------------------
那个地方应该是改变引脚输入输出的状态时候造成的。你的引脚应该是上拉输入输出。
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-12-31 11:03:32 | 显示全部楼层
你看I2C标准时序图 跟这个对比

Start Stop Ack 和data 等部分的时序情况,
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 11:47:37 | 显示全部楼层
意思是不是每两个尖尖的信号中间的数据,就是我要传送的数据啊?
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 11:48:23 | 显示全部楼层
回复【5楼】sun_shine:
---------------------------------
GPIO口设置的都是推挽的吧,这些我直接用的例程没有改动
我只改动了输入的数据
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 11:55:08 | 显示全部楼层
回复【4楼】Beyond Myself:
---------------------------------
需要放大的是哪块啊?
回复 支持 反对

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2013-12-31 13:38:58 | 显示全部楼层
回复【8楼】慧慧:
---------------------------------
推挽也一样的,你看波形那个短脉冲在SCLK第9个脉冲之后,也就是应答信号之后,改变IO口的状态 。你把程序单步仿真一下再看时序。
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2013-12-31 13:59:23 | 显示全部楼层
回复【10楼】sun_shine:
---------------------------------
第一个是输入输出改变了,那第二个在时钟高电平时数据进行了改变是为什么啊,也是因为改变了IO口的状态吗?
回复 支持 反对

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2013-12-31 14:09:25 | 显示全部楼层
回复【11楼】慧慧:
---------------------------------
你把代码贴上来,或者结合IIC手册的时序  自己单步仿真一下
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复 支持 反对

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2013-12-31 22:03:23 | 显示全部楼层
回复【11楼】慧慧:
---------------------------------
楼主注意起始信号和终止信号是两个特例,在SCL为高的时候SDA跳变,你仔细看时序但凡发现这种与“SCL为高要保持SDA数据”的情况“相违背”的情况就是气起始或终止信号。这个在代码上也是有可能的,比如IIC一般读数据前首先是写时序,写完后会有一个停止,然后再起始,开始读。。楼主对比代码一看就清晰了
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-12-26
在线时间
0 小时
 楼主| 发表于 2014-1-2 16:07:51 | 显示全部楼层
回复【13楼】hechao3225:
---------------------------------
哦哦,大概明白你说的这个意思了。
回复 支持 反对

使用道具 举报

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
发表于 2015-3-1 17:14:26 | 显示全部楼层
回复【2楼】慧慧:
---------------------------------
请问,示波器上怎么看时序?
以前没看过,是不是就跟测电压一个意思?就是把探头放在信号输出和地之间,然后看波形?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 17:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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