打印

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

[复制链接]
14411|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+中断 方式,
这样高效而且不易出错

使用特权

评论回复
5
rockli| | 2010-11-4 21:16 | 只看该作者
对于STM32 的I2C而言,
最好使用 DMA+中断 方式,
这样高效而且不易出错
shizaigaole 发表于 2010-11-4 21:14

对于STM32 的I2C而言,
最好使用模拟I2c

使用特权

评论回复
6
shizaigaole| | 2010-11-4 21:27 | 只看该作者
呵呵,不赞同。

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

感觉不错

使用特权

评论回复
7
shizaigaole| | 2010-11-4 21:28 | 只看该作者
有I2C模块,绝不要模拟。

大把的时间处于等待状态。
太浪费时间。

使用特权

评论回复
8
mapleft| | 2010-11-4 22:05 | 只看该作者
1K

使用特权

评论回复
9
linqing171| | 2010-11-5 07:43 | 只看该作者
下位机软件问题。
i2c控制器的中断被屏蔽,或者发送缓冲区没有填写数,或者没有设置是否应答而清楚了中断。

使用特权

评论回复
10
ayb_ice| | 2010-11-5 08:29 | 只看该作者
对于单主机方式,最好使用IO模拟方式

使用特权

评论回复
11
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模拟,
不得不说是很愚蠢的方式.

使用特权

评论回复
12
jack_shine| | 2010-11-5 09:32 | 只看该作者
时钟线加个上拉电阻看可不可以

使用特权

评论回复
13
yewuyi| | 2010-11-5 09:33 | 只看该作者
有I2C模块,绝不要模拟。

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


偶尔读几个数的情况下使用模式IIC也花不了多少us

使用特权

评论回复
14
自然的天逸| | 2010-11-5 11:19 | 只看该作者
我的STM32 模拟也挺好的

使用特权

评论回复
15
xilinxer| | 2010-11-5 11:38 | 只看该作者
肯定是软件问题!
仔细查软件,会有一些互锁的机制把I2C挂死了!
我也碰到过.硬件一般上拉电阻没问题就不会有太大问题.主要看看信号的完整性!

使用特权

评论回复
16
hwq362202| | 2010-11-5 14:33 | 只看该作者
:)

使用特权

评论回复
17
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

为了省事,而影响到稳定性,可以说更愚蠢。

使用特权

评论回复
18
rockli| | 2010-11-5 23:27 | 只看该作者
有I2C模块,绝不要模拟。

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

"有I2C模块,绝不要模拟。"
有稳定的i2c不用,脑袋肯定不正常。
既然选择模拟,当然就有选择的理由。
stm32的i2c还是比不上飞利浦的i2c模块的。
复杂系统上的稳定性要求不满足,还能“绝不要模拟”吗?

使用特权

评论回复
19
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硬件模块不稳定

使用特权

评论回复
20
shizaigaole| | 2010-11-6 08:55 | 只看该作者
开发不能只看技术手册,
还要看看局限性列表手册。

有些觉得不稳定的用户可以看看:
《STM32F10xx8/B局限性列表》手册,也许会发现自己的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

322

帖子

4

粉丝