求救:i2c总线锁死,时钟信号被拉低

[复制链接]
16007|24
 楼主| hdp7891000 发表于 2010-11-4 16:27 | 显示全部楼层 |阅读模式
如题,被拉低的不是数据线,而是时钟线,碰到这种情况该怎么办?
chunyang 发表于 2010-11-4 17:01 | 显示全部楼层
先检查外电路是否强制了时钟线的逻辑,然后排查器件是否正常,最后是你的程序编制。
 楼主| hdp7891000 发表于 2010-11-4 17:08 | 显示全部楼层
2# chunyang

外设fm3116,处理器为stm32,硬件i2c,请问其上拉电阻多大为好?
shizaigaole 发表于 2010-11-4 21:14 | 显示全部楼层
对于STM32 的I2C而言,
最好使用 DMA+中断 方式,
这样高效而且不易出错
rockli 发表于 2010-11-4 21:16 | 显示全部楼层
对于STM32 的I2C而言,
最好使用 DMA+中断 方式,
这样高效而且不易出错
shizaigaole 发表于 2010-11-4 21:14

对于STM32 的I2C而言,
最好使用模拟I2c
shizaigaole 发表于 2010-11-4 21:27 | 显示全部楼层
呵呵,不赞同。

我使用stm32的I2C,
DMA+中断方式,
即高效,又简洁。

感觉不错
shizaigaole 发表于 2010-11-4 21:28 | 显示全部楼层
有I2C模块,绝不要模拟。

大把的时间处于等待状态。
太浪费时间。
mapleft 发表于 2010-11-4 22:05 | 显示全部楼层
linqing171 发表于 2010-11-5 07:43 | 显示全部楼层
下位机软件问题。
i2c控制器的中断被屏蔽,或者发送缓冲区没有填写数,或者没有设置是否应答而清楚了中断。
ayb_ice 发表于 2010-11-5 08:29 | 显示全部楼层
对于单主机方式,最好使用IO模拟方式
shizaigaole 发表于 2010-11-5 08:41 | 显示全部楼层
请仔细阅读IAR自带的例子。
C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\examples\ST\STM32F10x\STM32-Eval\STM32F10xFWLib\FWLib\examples\DMA\I2C_RAM
有I2C模块废弃不用,用IO模拟,
不得不说是很愚蠢的方式.
jack_shine 发表于 2010-11-5 09:32 | 显示全部楼层
时钟线加个上拉电阻看可不可以
yewuyi 发表于 2010-11-5 09:33 | 显示全部楼层
有I2C模块,绝不要模拟。

大把的时间处于等待状态。
太浪费时间。
shizaigaole 发表于 2010-11-4 21:28


偶尔读几个数的情况下使用模式IIC也花不了多少us
自然的天逸 发表于 2010-11-5 11:19 | 显示全部楼层
我的STM32 模拟也挺好的
xilinxer 发表于 2010-11-5 11:38 | 显示全部楼层
肯定是软件问题!
仔细查软件,会有一些互锁的机制把I2C挂死了!
我也碰到过.硬件一般上拉电阻没问题就不会有太大问题.主要看看信号的完整性!
hwq362202 发表于 2010-11-5 14:33 | 显示全部楼层
rockli 发表于 2010-11-5 23:23 | 显示全部楼层
请仔细阅读IAR自带的例子。
C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\examples\ST\STM32F10x\STM32-Eval\STM32F10xFWLib\FWLib\examples\DMA\I2C_RAM
有I2C模块废弃不用,用IO模拟,
不得不说是很 ...
shizaigaole 发表于 2010-11-5 08:41

为了省事,而影响到稳定性,可以说更愚蠢。
rockli 发表于 2010-11-5 23:27 | 显示全部楼层
有I2C模块,绝不要模拟。

大把的时间处于等待状态。
太浪费时间。
shizaigaole 发表于 2010-11-4 21:28

"有I2C模块,绝不要模拟。"
有稳定的i2c不用,脑袋肯定不正常。
既然选择模拟,当然就有选择的理由。
stm32的i2c还是比不上飞利浦的i2c模块的。
复杂系统上的稳定性要求不满足,还能“绝不要模拟”吗?
shizaigaole 发表于 2010-11-6 08:43 | 显示全部楼层
[quote]
"有I2C模块,绝不要模拟。"
有稳定的i2c不用,脑袋肯定不正常。
既然选择模拟,当然就有选择的理由。
stm32的i2c还是比不上飞利浦的i2c模块的。
复杂系统上的稳定性要求不满足,还能“绝不要模拟”吗? ...
rockli 发表于 2010-11-5 23:27 [/quote

我只能说我用STM32的I2C模块用的很稳定,I2C总线上同时挂着AT24C32和RX8025,
用着不错。

我不知道还有什么复杂系统能导致stm32硬件模块不稳定
shizaigaole 发表于 2010-11-6 08:55 | 显示全部楼层
开发不能只看技术手册,
还要看看局限性列表手册。

有些觉得不稳定的用户可以看看:
《STM32F10xx8/B局限性列表》手册,也许会发现自己的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

322

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部