找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1857|回复: 22
打印 上一主题 下一主题

请问一个I2C的问题

[复制链接]

160

主题

313

帖子

3313

积分

五级会员(50)

Rank: 5

积分
3313
跳转到指定楼层
1#
发表于 2014-5-25 08:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我有一个ST的RTC芯片m41t0,用I2C与beaglebone black的I2C1口通信,有个奇怪的问题,开机以后用i2cdetect -y -r 1可以读到正确的chipID 0x68. 但是,放一会后,再用i2cdetect -y -r 1读,就读不到ID了。主机是跑了一个Debian linux系统。请问到底是什么问题呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
推荐
发表于 2014-5-27 10:49 | 只看该作者
如果你只挂了一个这个RTC的话,可以证明硬件没有问题。

0

主题

84

帖子

666

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
666
推荐
发表于 2014-6-10 11:12 | 只看该作者
本帖最后由 djxf 于 2014-6-10 11:19 编辑
' d0 _6 I3 ^, Q$ I. l
fallen 发表于 2014-6-10 10:31
1 p4 Z. C& m4 J) Q( V那你可以分享一下,你是如何解决的吗?越详细越好
5 g4 }, C1 g9 v# a2 X, A
+ a! r* ~# t" o6 N* f8 t. g7 A
做硬件好像没啥敲门,数字电路无非是,逻辑正确、电平和时序匹配、驱动能力足够、信号质量满足要求。
7 U, M9 |8 F9 G所以有人说数字电路玩的是时序,射频电路玩的是电磁场(这是宏观角度看,从微观看可能是量子力学或弦理论或其他什么理论,反正我没搞懂过。电磁场也是,很多也没搞明白,虽然看起来只有那么几个微/积分方程和物质方程)。
6 h, b8 c/ s+ i
# e/ s. v: F6 ]7 S/ M像之前遇到的I2C问题,首先检查硬件有没有问题(逻辑正确,电平匹配,驱动能力是否合适,时序很简单都不需要计算),其次就是看管脚配置是否正确(读写高低电平是否正常,顺带检查是否有虚焊短路等硬件问题)、上电及初始化是否符合要求、时序是否正常(从上电和初始化就挂示波器监控,顺带看看电平、驱动能力和信号质量,但一般来说这种低速信号的信号质量不会有太大问题,即使有过冲之类的,调整时序避开就好了,或者调整管脚的驱动能力比如驱动电流等尽量改善),到此基本就知道问题出在哪里了,剩下的就是不断调整时序(先放宽再收紧到合适的位置,兼顾速度和可靠性),当然,还需要一些耐心。。。! E2 T; d  j! o# ^4 z+ Q( i9 I

5 Y- _5 l& s2 ]9 o多啰嗦一句,说到时序大家更多想到的是信号之间的读写时序,但往往忽略地、电源和信号之间的上/下电时序要求,有可能电路设计有问题,一上电或者掉电后再上电就导致芯片状态异常甚至出现栓锁了。

0

主题

84

帖子

666

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
666
推荐
发表于 2014-6-10 10:22 | 只看该作者
fallen 发表于 2014-6-10 09:51
" s, w+ e3 R$ x深究估计就是无解。
2 e, h! p/ G  ^2 ~" g0 Y- h) m( U对于1  加密IC跟DEMOD之类的相连,很多情况下都不行------所以大家都开始分开给I2C ...
1 A: z7 s2 x5 S& ^+ P/ e
我用过micrel和neowine的加密芯片(深圳也有加密芯片,但我没试过),没有遇到过硬件上解决不了的问题。2 |# C& E1 N0 p
软件有个还算有经验的小伙曾经花了一个月调试neowine的加密芯片没有调好,找了原厂的FAE也没解决,后来耍聪明把加密芯片跳过去了,这事我很久以后才知道。随便找了个软件(因为我当时对那个平台的软件架构不熟悉),我跟他一起调,两个小时就搞定了,除非芯片本身有问题(我选器件会比较慎重,独家的尽量不选,如果必须选,会先尽量多了解和测试),我遇到过很多难解的问题(有些甚至搞得焦头烂额)但还没遇到过无解的问题,只要有心就一定有解。

1

主题

38

帖子

705

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
705
23#
发表于 2014-10-11 14:59 | 只看该作者
djxf 发表于 2014-6-9 19:38
6 F) Z& z" \3 s: n1 q0 e6 E为什么在master软复位而slave没有复位的情况下会导致I2C总线挂死?I2C接口一般是OC门或者OD门啊?
5 x/ i: [  v- u如果 ...

4 U  v' e# P& DIIC总线hung up是因为master软复位时,slaver并没有复位,而且没收到master给的ack信号,导致slaver不释放IIC总线(这种现象只有可能发生在read时序)。另外,任何芯片如果没有正确复位的话,它的全部功能都基本不可用,所以你说的slaver在上电时就没有正确复位这一说法,似乎不能成立,因为slaver的其他功能是work的。IIC总线的挂死是它本身协议的issue,所以建议你对比一下IIC和SMBUS协议的区别,或许就会知道为什么IIC会挂死,而SNBUS不会出现这样的情况。
/ J: m! |9 \  t9 V: q0 \" K好久没来了,希望能和大家一起学习。。。
/ Y* R  i2 ~# }5 C6 t

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
22#
发表于 2014-6-10 11:36 | 只看该作者
djxf 发表于 2014-6-10 11:121 `3 n6 t* @' D5 q1 G; f# D
做硬件好像没啥敲门,数字电路无非是,逻辑正确、电平和时序匹配、驱动能力足够、信号质量满足要求。
+ r" f6 H  a, g. o3 m1 y ...

: y2 ~9 r: S2 k非常感谢前辈的经验分享。: S1 n0 H$ c& ~* u5 W/ o* k
但是这些都是解决问题的基本方法。当你尝试这些方法解决问题未果的时候,就是头痛的时候了。
9 V# r  c9 @6 m0 Z" {* N' n, {" o& _1 F9 D3 P0 o7 x0 r

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
20#
发表于 2014-6-10 10:31 | 只看该作者
djxf 发表于 2014-6-10 10:22
' d9 M" u5 |8 i1 V0 ^" i我用过micrel和neowine的加密芯片(深圳也有加密芯片,但我没试过),没有遇到过硬件上解决不了的问题。
7 b: w$ U5 s- }! G/ Y ...

1 k: w' m0 z4 @# v3 X. \2 b那你可以分享一下,你是如何解决的吗?越详细越好

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
19#
发表于 2014-6-10 10:30 | 只看该作者
djxf 发表于 2014-6-10 10:22
* n0 K; f8 H# p, J5 m我用过micrel和neowine的加密芯片(深圳也有加密芯片,但我没试过),没有遇到过硬件上解决不了的问题。" a5 S- R# ?1 V% b; i2 _
...
" m( i- e4 q( A. z, p/ L" x
因为我还没有达到你的水平。

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
17#
发表于 2014-6-10 09:51 | 只看该作者
本帖最后由 fallen 于 2014-6-10 10:30 编辑
4 m8 @) g9 i% `5 F0 x
djxf 发表于 2014-6-10 09:37: B1 _8 w3 S, R5 z2 ~
我不是怀疑你的描述,是觉得这个现象不正常,有深究的必要。; v! M: d. k: C
很可能是时序配置有问题。
7 o  U) g  p; T! c5 c6 L: T$ _
+ ^8 D& ^; H& [
深究估计就是无解。, z" f/ l! h' @4 {$ F* u
对于1  加密IC跟DEMOD之类的相连,很多情况下都不行------所以大家都开始分开给I2C。
7 }# g. X8 F; M; Y) O' I对于2  软件调试了很长时间,后来发现初始化的时候调整一下顺序就可以了-------这个暂且相信软件的实力吧。% F$ P8 N1 E1 p$ K( {# U3 e  k

0

主题

84

帖子

666

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
666
16#
发表于 2014-6-10 09:37 | 只看该作者
fallen 发表于 2014-6-10 09:33
  ]1 o' G8 N2 P+ y5 D$ k3 W; w这些都是我经历过的,我很深刻。你说的合适的上拉,这个是很基础的问题。发生问题后,我们修改了上拉,修 ...
2 S) O2 w0 l) H7 L3 j
我不是怀疑你的描述,是觉得这个现象不正常,有深究的必要。
9 f% a, X8 k% _: W很可能是时序配置有问题。

8

主题

2339

帖子

5400

积分

EDA365版主(50)

Rank: 5

积分
5400
15#
发表于 2014-6-10 09:33 | 只看该作者
djxf 发表于 2014-6-9 19:16" H1 I0 r3 u6 f/ C' E1 e( E
对于1,2,如果添加了合适的上拉,电平也是匹配的话,感觉不好理解,呵呵。5 I8 {: G8 S, A. r; J8 _* ~
我也建议先抓下data和clk的 ...
8 c8 {3 F! }# L: M1 W
这些都是我经历过的,我很深刻。你说的合适的上拉,这个是很基础的问题。发生问题后,我们修改了上拉,修改了软件,还是无果。对于这些问题,我现在已经不怪异了。

0

主题

84

帖子

666

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
666
14#
发表于 2014-6-9 19:38 | 只看该作者
xanthecrab 发表于 2014-5-30 15:489 Y6 @5 \$ s6 f- v7 n" Z/ D
建议你抓一下IIC的波形,抓一个完整的读时序,从起始位到结束位,看IIC的时序信号在哪里出现了错误。你这样 ...
$ b; X9 U- ]8 G) _) q. o) E& W
为什么在master软复位而slave没有复位的情况下会导致I2C总线挂死?I2C接口一般是OC门或者OD门啊?
# f) P" n0 ]4 l; f: |0 T3 t如果你说的现象成立,那也只能说slave芯片工作异常了(比如启动时没有通过复位进入到正常状态,等等),与I2C接口无关。

0

主题

84

帖子

666

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
666
13#
发表于 2014-6-9 19:16 | 只看该作者
本帖最后由 djxf 于 2014-6-9 19:58 编辑
4 j) R( g. V8 p, V
fallen 发表于 2014-5-26 11:42" A2 i" O5 Y- \! W1 d* q, M( m9 g
这种问题,查查软件吧,顺便跟你分享一些在实际情况中碰到I2C问题! s6 A2 ]/ [; q" I9 c8 x# x
1 。I2C号称可以挂很多外设,实际上各个 ...
+ O: w: f% ]8 c

( Z, I! h; A7 G2 s, T对于1,2,如果添加了合适的上拉,电平也是匹配的话,感觉不好理解,呵呵。
" V' Q# T7 ~3 X3 ?5 G7 V7 v我也建议先抓下data和clk的波形,看看电平、驱动能力和时序(因为data脚是双向的,读写之间的切换和配置时机也要把握好,尤其是用GPIO脚模拟I2C时)有没有问题,应该不太可能出现这么怪异的问题。
; H% a+ K4 N7 q7 w* U5 D% F+ u4 P0 w5 `" K% A4 T8 }7 s
对于3,可以理解。
9 ^& {& _8 l/ ?) H7 d0 G

0

主题

6

帖子

-8982

积分

未知游客(0)

积分
-8982
12#
发表于 2014-6-9 18:54 | 只看该作者
看看你挂了几个设备?特别是否有支持400k以上的设备,如果有的,这个要仔细对待,要不改版很难解决这个问题。
; e! d6 P$ _. m9 F, v6 |: H4 |. j1 Ri2cdetect -y -r 后,iic总线是什么状态?( V1 }) G) z% w& B: J

160

主题

313

帖子

3313

积分

五级会员(50)

Rank: 5

积分
3313
11#
 楼主| 发表于 2014-6-5 07:16 | 只看该作者
想用示波器量,可是实验室没买,对目前这个应用,只要开机时能读对数据,就行,先将就着用,正在layout第二板,上面layout另一个I2C器件,看看效果如何再说。

1

主题

38

帖子

705

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
705
10#
发表于 2014-6-4 12:52 | 只看该作者
zsuhh 发表于 2014-5-31 00:544 x% R, D+ f! J9 ?, m2 c% o; `
非常感谢大家的回复

; L9 U' Q0 k# F+ K" |% ^+ d% Y没有后续了?问题解决了吗?解决了分享一下经验啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-23 13:18 , Processed in 0.068120 second(s), 35 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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