OpenEdv-开源电子网

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

IIC主机有哪些时候是要释放总线的?

[复制链接]

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2017-1-16 11:03:48 | 显示全部楼层 |阅读模式
1金钱
除了停止信号释放总线,在主机检查从机的应答时要释放总线吗???

最佳答案

查看完整内容[请看2#楼]

所谓释放,是指主机数据线改为输入状态? 从机要说话了,主机当然要释放吧?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2017-1-16 11:03:49 | 显示全部楼层

所谓释放,是指主机数据线改为输入状态?
从机要说话了,主机当然要释放吧?

回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-1-16 11:12:07 | 显示全部楼层
你看看

I2C总线.pdf

561.77 KB, 下载次数: 432

回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 11:23:42 | 显示全部楼层

8位数据最后一位是0,直到在第9个时钟一直维持是0算不算是应答信号?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 11:31:58 | 显示全部楼层
本帖最后由 慕名兰 于 2017-1-16 11:34 编辑
xuande 发表于 2017-1-16 11:05
所谓释放,是指主机数据线改为输入状态?
从机要说话了,主机当然要释放吧?

释放总线不应该就是把SDA置高吗?还有隐身意义???
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 11:52:00 | 显示全部楼层
本帖最后由 慕名兰 于 2017-1-16 11:53 编辑
xuande 发表于 2017-1-16 11:05
所谓释放,是指主机数据线改为输入状态?
从机要说话了,主机当然要释放吧?

07EODH2B{9`([OGZU%8T895.png
1:为什么从机的SDA与主机的SDA的变换为什么不一样???
2:按照图上看,第8位如果是低电平的话,那第9位从机怎么使SDA从高电平变到低电平(如果变化一致的话)??
IIC理解的不是很透彻,,,,,还有那个释放总线是不是只要主机要改变SDA的方向的话就要使SDA=1?
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-1-16 13:46:34 | 显示全部楼层
慕名兰 发表于 2017-1-16 11:23
8位数据最后一位是0,直到在第9个时钟一直维持是0算不算是应答信号?

产生应答信号时,数据线的传输方向不是发生改变了吗。。
我也刚学到这,也是比较糊涂~~~
亦余心之所善,
虽九死其犹未悔。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2017-1-16 14:31:05 | 显示全部楼层
慕名兰 发表于 2017-1-16 11:52
1:为什么从机的SDA与主机的SDA的变换为什么不一样???
2:按照图上看,第8位如果是低电平的话,那 ...


应答的时候(第9位),SDA线要交给从机控制,
而主机要转为输入状态,读取从机的数据。

1、反正是从机在驱动SDA线,不要苛求图是怎么画的,或者你找找国外手册E文的图来看。

2、硬件“线与”逻辑,听说过吗?查查去。

另外,释放总线不是SDA=1。
你要不会转为输入状态,去看看怎么输入按键吧,这是基础。


回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 14:46:49 | 显示全部楼层
南有乔木 发表于 2017-1-16 13:46
产生应答信号时,数据线的传输方向不是发生改变了吗。。
我也刚学到这,也是比较糊涂~~~

一起学习
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 15:00:44 | 显示全部楼层
xuande 发表于 2017-1-16 14:31
应答的时候(第9位),SDA线要交给从机控制,
而主机要转为输入状态,读取从机的数据。

_U8OP8M[0E)3VI2NQVHGJWR.png
这是模拟发送地址的时候,就是第8个时钟对应数据是0的话,到应答就不太懂了??之前说主从交换SDA的控制,主机就会释放总线,释放总线我认为的话就是使总线空闲所以我觉得是SDA为1(不知道这样理解对不对?)如果是对的话,那这个SDA什么时候变为1??能否顺便也看一下从开始到发送地址的这段时序模拟的对不对??谢谢大虾
回复

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2017-1-16 15:08:41 | 显示全部楼层
主机需要接收外部信号的时候要让外部电平变化 的信号能进的来  
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 15:19:37 | 显示全部楼层
xyl210xyl 发表于 2017-1-16 15:08
主机需要接收外部信号的时候要让外部电平变化 的信号能进的来

那就是SDA作为输入的时候,对吗?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 15:20:25 | 显示全部楼层
xyl210xyl 发表于 2017-1-16 15:08
主机需要接收外部信号的时候要让外部电平变化 的信号能进的来

大神能否帮忙看一下10楼的问题,谢谢!!!
回复

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2017-1-16 15:26:34 | 显示全部楼层
慕名兰 发表于 2017-1-16 15:20
大神能否帮忙看一下10楼的问题,谢谢!!!

去看下硬件iic
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2017-1-16 15:57:34 | 显示全部楼层
慕名兰 发表于 2017-1-16 15:00
这是模拟发送地址的时候,就是第8个时钟对应数据是0的话,到应答就不太懂了??之前说主从交换SDA的控 ...


SDA=1,目测这是个宏定义,是主机把SDA强制设为1,即输出为1!
这明明是主机仍然在占用SDA数据线,你怎么会认为是“释放”呢?  纠缠半天了!


回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-16 16:33:07 | 显示全部楼层
xuande 发表于 2017-1-16 15:57
SDA=1,目测这是个宏定义,是主机把SDA强制设为1,即输出为1!
这明明是主机仍然在占用SDA数据线,你 ...

刚刚明白过来。。。。那个时序是对的吗(不要应答的话)?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-17 11:57:14 | 显示全部楼层

你的这份I2C堪称经典,真的,在哪下的,谢谢,软件模拟出来了,感谢!!!!
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-17 11:58:57 | 显示全部楼层
xuande 发表于 2017-1-16 14:31
应答的时候(第9位),SDA线要交给从机控制,
而主机要转为输入状态,读取从机的数据。

谢谢,总算模拟出来了,发那么多的帖子总是不厌其烦的帮我,对i2c又有了进一步的了解!!!!
回复

使用道具 举报

33

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2017-1-2
在线时间
31 小时
发表于 2017-1-17 13:15:32 | 显示全部楼层
《STM32中文参考手册》IIC的时钟SCL和数据SDA两个口的GPIO模式都是 开漏复用输出。
而给的历程里用的SDA是上下拉输入和推挽输出,SCL也是推挽输出。为什么???
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-1-17 13:16:44 | 显示全部楼层
慕名兰 发表于 2017-1-17 11:57
你的这份I2C堪称经典,真的,在哪下的,谢谢,软件模拟出来了,感谢!!!!

我关注的一个微信大神写的,里面还有很多关于STM32的理解,很透彻。
这是微信号,你也可以关注下

6edcc22e88dc3216c57d07977e3f2128.jpg
亦余心之所善,
虽九死其犹未悔。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-17 14:36:01 | 显示全部楼层
南有乔木 发表于 2017-1-17 13:16
我关注的一个微信大神写的,里面还有很多关于STM32的理解,很透彻。
这是微信号,你也可以关注下

谢谢分享
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-17 14:46:50 | 显示全部楼层
firing00 发表于 2017-1-17 13:15
《STM32中文参考手册》IIC的时钟SCL和数据SDA两个口的GPIO模式都是 开漏复用输出。
而给的历程里用的SDA是 ...

IIC总线上有两个上拉电阻,开漏是高电平位置,低电平为0,由于加了两个上拉电阻,所以输出和输入不是0就是1,所以模拟推挽输出
你再看一下这个:http://www.openedv.com/posts/list/35549.htm
回复

使用道具 举报

33

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2017-1-2
在线时间
31 小时
发表于 2017-1-17 18:19:36 | 显示全部楼层
慕名兰 发表于 2017-1-17 14:46
IIC总线上有两个上拉电阻,开漏是高电平位置,低电平为0,由于加了两个上拉电阻,所以输出和输入不是0就 ...

是不是这样的,直接更改GPIO的输入输出,使之和IIC的通信协议(比如严格起始信号、停止信号、应答信号)一样就是软件模拟IIC。如果用STM32里的IIC的寄存器配置,就是硬件IIC?那么模拟IIC是不是任意的GPIO都可以?模拟IIC是不是就用不了IIC中断?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-18 10:35:27 | 显示全部楼层
本帖最后由 慕名兰 于 2017-1-18 10:45 编辑
firing00 发表于 2017-1-17 18:19
是不是这样的,直接更改GPIO的输入输出,使之和IIC的通信协议(比如严格起始信号、停止信号、应答信号) ...

是那样的因为在IIC上不是1就是0嘛,时序是对的就行,不是任意的GPIO,是有IIC接口才能用(就是原理图引脚上有出现IIC_SCL,IIC_SDA,原因是内部结构就是这么设计的,不可能说所有引脚做串口或者SPI嘛,对吧),或者带有映射的,中断的话我觉得还是可以用的,就是你在模拟的时候,比如应答(从器件)的话,SDA来一个下降沿或则上升沿的时候,你可以在出现下降沿或则上升沿时候来一个外部中断检测,就是在模拟某一段时序函数里面检测电平是怎么变化的,我就只能想到这了
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-18 11:37:52 | 显示全部楼层
xuande 发表于 2017-1-16 14:31
应答的时候(第9位),SDA线要交给从机控制,
而主机要转为输入状态,读取从机的数据。

还有个问题想请教一下:
DI9XT(2H(7_}I~5_TNT8@)G.png
原子哥说用OV7670要禁止JTAG,我这里自动显示的是SW(我用的J-Link)是不是表示已经禁止了JTAG了,用J-Link调试是没问题的??
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2017-1-18 16:00:36 | 显示全部楼层

能自己识别?
应当不会。
点右侧箭头,选一下试试。

回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-18 18:11:45 | 显示全部楼层
xuande 发表于 2017-1-18 16:00
能自己识别?
应当不会。
点右侧箭头,选一下试试。

卧槽,换成JTAG也可以下载。。。。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2017-1-18 20:53:36 | 显示全部楼层
xuande 发表于 2017-1-18 16:00
能自己识别?
应当不会。
点右侧箭头,选一下试试。

回头看了一下书,可以不用管JTAG,书上好像是说J-Link V8的SW模式,正好可以用摄像头啦,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-1 02:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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