OpenEdv-开源电子网

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

stm32f103c8系列硬件iic做主机

[复制链接]

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
发表于 2022-3-10 11:02:41 | 显示全部楼层 |阅读模式
100金钱
大佬有用过这个芯片的硬件iic做主机吗?
一般的从机是没有时钟拉伸的。硬件iic是能搞定的。
问题1:
但是!我现在的从机是有时钟拉伸的,那么我硬件iic在进行读写操作的时候是怎么检测SCL被从机释放了?
1.png
这个位是否可以检测。
比如我写完了数据。在准备读取应答位的时候用这个标志位去检测时钟线是否被释放,然后再去读应答位。达到跟软件模拟一样的效果。

问题2:如果我使用上面这个方法是可以检测有时钟拉伸的从机。那么是否可以检测没有时钟拉伸的从机?是否会出现应答位识别出错。

最佳答案

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

那这个问题应该出现在读取从机数据的时候吧,硬件IIC库里面有个函数I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED),它有判断信号线是否被占用的功能
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4734
金钱
4734
注册时间
2015-1-10
在线时间
591 小时
发表于 2022-3-10 11:02:42 | 显示全部楼层
HELLOWO 发表于 2022-3-10 15:37
是的,要等SCL被从机释放,也就是变成高电平才能继续操作。否则这个时候我主机操作SCL也是不成功的,那么 ...

那这个问题应该出现在读取从机数据的时候吧,硬件IIC库里面有个函数I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED),它有判断信号线是否被占用的功能
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1732
注册时间
2021-4-11
在线时间
320 小时
发表于 2022-3-10 11:29:07 | 显示全部楼层
没用过,顶                  
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4734
金钱
4734
注册时间
2015-1-10
在线时间
591 小时
发表于 2022-3-10 13:32:37 | 显示全部楼层
???做主机就跟正常的EEPROM通讯一样啊,硬件IIC在官方库函数例程里面不是有?
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
 楼主| 发表于 2022-3-10 13:56:43 | 显示全部楼层
阿侑kevin 发表于 2022-3-10 13:32
???做主机就跟正常的EEPROM通讯一样啊,硬件IIC在官方库函数例程里面不是有?

怎么判断时钟被从机拉低了
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4734
金钱
4734
注册时间
2015-1-10
在线时间
591 小时
发表于 2022-3-10 14:03:34 | 显示全部楼层
HELLOWO 发表于 2022-3-10 13:56
怎么判断时钟被从机拉低了

???从机为啥要拉低主机的SCL?SCL是主机提供的,从机一般只动SDA
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
 楼主| 发表于 2022-3-10 14:23:35 | 显示全部楼层
阿侑kevin 发表于 2022-3-10 14:03
???从机为啥要拉低主机的SCL?SCL是主机提供的,从机一般只动SDA

我在问题里面一直有说啊。就是我现在从机有时钟拉伸。就是会出现从机把时钟线拉低来等待从机完成操作。所以想知道硬件iic是怎么处理这个
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4734
金钱
4734
注册时间
2015-1-10
在线时间
591 小时
发表于 2022-3-10 14:47:08 | 显示全部楼层
HELLOWO 发表于 2022-3-10 14:23
我在问题里面一直有说啊。就是我现在从机有时钟拉伸。就是会出现从机把时钟线拉低来等待从机完成操作。所 ...

你的意思是主机写入结束后等待从机的ack?这个时候你不能动SCL,需要等到ack才能再次操作SCL,是这个意思吗
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
 楼主| 发表于 2022-3-10 15:37:19 | 显示全部楼层
阿侑kevin 发表于 2022-3-10 14:47
你的意思是主机写入结束后等待从机的ack?这个时候你不能动SCL,需要等到ack才能再次操作SCL,是这个意思 ...

是的,要等SCL被从机释放,也就是变成高电平才能继续操作。否则这个时候我主机操作SCL也是不成功的,那么这个时候去读ack就一定是错误的。
我现在就是不知道配置哪个寄存器去实现这个功能,看了手册也没清楚。所以来问问大佬们
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 00:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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