找回密码
 注册
关于网站域名变更的通知
查看: 273|回复: 22

SMBUS/IIC数据线的停止位被拉低

[复制链接]
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-2-26 15:54 | 显示全部楼层 |阅读模式

    EDA365欢迎您登录!

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

    x
    用自己开发模块上cpld的IIC总线通过一个双向电平转换芯片(3.3V转5V),去读机箱上的EEPROM(5V供电),SDA的第一个字节读完后的停止位不知道为什么被拉低,导致后面的字节都读取错误了。* T$ w% Y2 Y- i2 b! R0 }( j
    微信图片_20260226154941_4_147.jpg

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 即刻救援活動獎勵!

    查看全部评分

    该用户从未签到

    发表于 2026-3-2 09:09 | 显示全部楼层
    本帖最后由 超級狗 于 2026-3-2 09:15 编辑
    2 b7 H* p+ u( O
    kuokuo250 发表于 2026-2-26 15:57
    5 j1 w  d+ S: v0 r  Y- W0 [数据线的停止位被拉低到了1.15V左右,可以看到停止位前面电平是有2ns上升趋势的,然后就被拉低了
    # N' o/ F2 v  h' W& c* s+ K  x. `
    雙向的電平轉換有振盪Oscillation)的問題,但我看起來不像之前與遇到的狀況。振盪Oscillation)是即便沒有訊號,也會在那邊跳個不停。僅給樓主參考!
    7 u. v9 t. L( t' |$ A. P0 l- ^+ |7 s
    I2C 沒辦法完全拉到低電平,以前遇到的是沒放上拉電阻Pull-Up Resistor),但 TXS0102 已經有內置 10KΩ 上拉電阻Pull-Up Resistor),所以排除這種可能。+ I2 b! X5 N: p

    4 A' j* H% V& |! n; U. O" w) R4 E, k另一個推測就是芯片還在推挽Push-Pull)模式,沒設在開漏極Open-Drain),拉低時和低端的 MOS 管內阻分壓,所以到不了低電平。$ \- z% I4 g0 G& C

    0 K& K. C3 U8 p8 |8.3.3 Output Load Considerations7 q- L8 u/ ~" c7 A3 f( O
    TI recommends careful PCB layout practices with short PCB trace lengths to avoid excessive capacitive loading and to ensure that proper O.S. triggering takes place. PCB signal trace-lengths should be kept short enough such that the round trip delay of any reflection is less than the one-shot duration. This improves signal integrity by ensuring that any reflection sees a low impedance at the driver. The O.S. circuits have been designed to stay on for approximately 30 ns. The maximum capacitance of the lumped load that can be driven also depends directly on the one-shot duration. With very heavy capacitive loads, the one-shot can time-out before the signal is driven fully to the positive rail. The O.S. duration has been set to best optimize trade-offs between dynamic ICC, load driving capability, and maximum bit-rate considerations. Both PCB trace length and connectors add to the capacitance that the TXS0102 device output sees, so it is recommended that this lumped-load capacitancebe considered to avoid O.S. retriggering, bus contention, output signal oscillations, or other adverse system-level affects.
    * ?0 R( ~% D; J
    " z# s2 E1 u, |6 ^) @4 R3 N
    ( V3 m$ ~8 ]  }% a
    + S- D# @+ R( a; z- V, ?( w

    点评

    感谢狗哥,试一下更改为开漏输出。补充一下:最后一位停止位在3.3V端(CPLD端)是可以拉上去的,但到了5V端(EEPROM端)就拉不上去,拉到低电平(0V)都是没有问题的  详情 回复 发表于 2026-3-2 09:33
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-2 09:33 | 显示全部楼层
    超級狗 发表于 2026-3-2 09:09
    : ^" H. \3 M) k+ x$ W6 k雙向的電平轉換有振盪(Oscillation)的問題,但我看起來不像之前與遇到的狀況。振盪(Oscillation)是即 ...
    % i$ l9 b( n7 `( P8 q
    感谢狗哥,试一下更改为开漏输出。补充一下:最后一位停止位在3.3V端(CPLD端)是可以拉上去的,但到了5V端(EEPROM端)就拉不上去,拉到低电平(0V)都是没有问题的1 K  d3 E; W, H: v: c( ^

    点评

    這個我得仔細看一下,有種可能是總線發生衝突了。 可能需要調整時序,或是檢視雙方協議是否不同,而造成這種情況!  详情 回复 发表于 2026-3-2 09:42

    该用户从未签到

    发表于 2026-3-2 09:42 | 显示全部楼层
    kuokuo250 发表于 2026-3-2 09:33
      H% Y: b6 R; }& x+ {感谢狗哥,试一下更改为开漏输出。补充一下:最后一位停止位在3.3V端(CPLD端)是可以拉上去的,但到了5V ...

      R+ D9 q0 Q( K/ x' w- R8 O: u2 l這個我得仔細看一下,有種可能是總線發生衝突了。) C$ A2 D3 s3 E, a. x- S

    7 E/ d# m4 G$ M( a/ H; H可能需要調整時序,或是檢視雙方協議是否不同,而造成這種情況!/ x. \- u- C% K2 D0 a& L
    ; c. `: H$ r% I& ~
    9 K; }0 M$ ~. ]% K( L, S

    & c% x5 u4 o: _" D) T. W
    # h! U- @) m6 I4 D
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-2-26 15:57 | 显示全部楼层
    数据线的停止位被拉低到了1.15V左右,可以看到停止位前面电平是有2ns上升趋势的,然后就被拉低了

    点评

    谢谢分享!: 5.0
    雙向的電平轉換有振盪(Oscillation)的問題,但我看起來不像之前與遇到的狀況。振盪(Oscillation)是即便沒有訊號,也會在那邊跳個不停。僅給樓主參考! I2C 沒辦法完全拉到低電平,以前遇到的是沒放上拉電阻  详情 回复 发表于 2026-3-2 09:09
    3.3V端的SMBUS是接在一个CPLD上面,型号是LATTICE的LCMXO3LF-9400C  详情 回复 发表于 2026-3-2 09:01
    另一種推測是,你的單片機沒有設在開漏極Open-Drain)模式!^oo^  发表于 2026-3-2 08:55
    5V端的上拉电阻去掉后,情况没有改善;发送和接收都可以上拉到5V,只在最后一位停止位没拉上去  详情 回复 发表于 2026-3-2 08:55
    谢谢分享!: 5
    TXS0102 內部已經有 10KΩ 上拉,拿掉外部的上拉電阻看看。有一種推測是你的負載太重,拉不動!@_@|||  发表于 2026-3-2 08:03
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-2-26 15:59 | 显示全部楼层
    这是模块上的电平转换芯片电路! Y+ r" d& }5 \( Q" R! @6 _  m
    微信图片_20260226155103_5_147.jpg
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-2 08:55 | 显示全部楼层
    kuokuo250 发表于 2026-2-26 15:57
    5 \4 P/ G. h/ P* W5 F; T5 s+ ]数据线的停止位被拉低到了1.15V左右,可以看到停止位前面电平是有2ns上升趋势的,然后就被拉低了

    : N) d% e! g" m5V端的上拉电阻去掉后,情况没有改善;发送和接收都可以上拉到5V,只在最后一位停止位没拉上去
    9 L" d5 A' k: u7 k0 Q
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-2 09:01 | 显示全部楼层
    kuokuo250 发表于 2026-2-26 15:574 K. N* ?9 w, z* f
    数据线的停止位被拉低到了1.15V左右,可以看到停止位前面电平是有2ns上升趋势的,然后就被拉低了
    2 U8 Y. k! O0 [. t. I5 |
    3.3V端的SMBUS是接在一个CPLD上面,型号是LATTICE的LCMXO3LF-9400C
    1 P. C: s0 u# _  E4 ?3 h' f
  • TA的每日心情
    无聊
    2026-3-11 15:08
  • 签到天数: 95 天

    [LV.6]常住居民II

    发表于 2026-3-2 09:50 | 显示全部楼层
    本帖最后由 db-_- 于 2026-3-2 10:15 编辑 7 B3 D9 X" w) Y4 F  {) o& t

    9 Z  f: ~3 y/ ~: i& @, A a1.jpg 8 p3 A9 ^7 R' |7 ?
    强行把两个图合一起的话,你会发现,7 L9 K. I8 v% I# l
    第一个byte的地址是1010010
    + p; Z% P+ O# |1 z. {8 h4 k第三个byte的地址是1101001" N7 r$ _! q% d4 n/ X4 ~

    1 D* g0 N$ l' P, _3 b第三个byte就返回NO ACK了,
    * N% m/ v; \% `这应该是逻辑写的有问题,bit错位了。9 g8 x# T# g6 N* E/ K0 r

      [0 |! z) j2 A: \

    点评

    想起了调试bcm54210时数MDC/MDIO波形10是被支配的恐惧。  详情 回复 发表于 2026-3-5 10:49
    你看错了,第三个bit的第一位是起始位,所以应该是10100101  详情 回复 发表于 2026-3-2 15:06

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 热心人!

    查看全部评分

    该用户从未签到

    发表于 2026-3-2 09:55 | 显示全部楼层
    你不会买不到TXS ,买了个TXB 上去吧。

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 也許!

    查看全部评分

  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-2 15:06 | 显示全部楼层
    db-_- 发表于 2026-3-2 09:50
    - B. G6 [% d9 a( M$ o1 ~9 j强行把两个图合一起的话,你会发现,
    ' y% A. s, m4 Y2 W第一个byte的地址是10100103 e6 N5 U* q  _5 i  u/ F# @
    第三个byte的地址是1101001

    & c7 k- y# H) S3 |' G7 \, E3 J你看错了,第三个bit的第一位是起始位,所以应该是10100101

    点评

    [attachimg]403153[/attachimg] [attachimg]403152[/attachimg]  详情 回复 发表于 2026-3-2 16:12
  • TA的每日心情
    无聊
    2026-3-11 15:08
  • 签到天数: 95 天

    [LV.6]常住居民II

    发表于 2026-3-2 16:12 | 显示全部楼层
    kuokuo250 发表于 2026-3-2 15:06
    8 d5 a* r$ K6 R1 m" S0 m1 v你看错了,第三个bit的第一位是起始位,所以应该是10100101

    3 B+ r7 H. v* O, ?9 S$ I, @ a3.png ! c* Z* j  @, z5 i

    . f2 o1 N- B/ u+ p) C! \ a2.jpg
    6 F8 C, j4 G$ f# t) w# n0 [

    点评

    谢谢分享!: 5.0
    我又犯了一个错误,第四个byte的ACK/NOACK是M·a·s·t·e·r(主·机)收到E2P的数据后发出的,如果主机回一个ACK表示你还要继续读。回一个NOACK表示就读一个byte就够了,然后就可以接结束标志了。  详情 回复 发表于 2026-3-4 11:37
    5V端是一个型号AT24C02的EEPROM  详情 回复 发表于 2026-3-3 08:56
    感谢您的分析,按照你的第二条建议,问题得到了解决,祝您马年大吉,身体健康!!!  详情 回复 发表于 2026-3-3 08:55
    谢谢分享!: 5
    5V 端的器件是什麼型號?  发表于 2026-3-2 18:05

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 高手在民間!

    查看全部评分

  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-3 08:55 | 显示全部楼层

    3 S( S# l2 @0 y# \- e感谢您的分析,按照你的第二条建议,问题得到了解决,祝您马年大吉,身体健康!!!+ b$ N- v$ i0 U; j! w% z
  • TA的每日心情
    郁闷
    2026-3-10 15:30
  • 签到天数: 140 天

    [LV.7]常住居民III

     楼主| 发表于 2026-3-3 08:56 | 显示全部楼层
    3 N( c* L) L2 h5 `& g3 W
    5V端是一个型号AT24C02的EEPROM
    9 ~6 G- `8 `) r8 y4 e' f! j+ y: G( \0 Q8 I  @2 I4 Q3 l

    点评

    2byte数据的24C02有点少见,有手册观摩一下不。  详情 回复 发表于 2026-3-3 11:17
  • TA的每日心情
    无聊
    2026-3-11 15:08
  • 签到天数: 95 天

    [LV.6]常住居民II

    发表于 2026-3-3 11:17 | 显示全部楼层
    kuokuo250 发表于 2026-3-3 08:56
    ; C6 e0 y: f7 v" Q4 F7 f: v5V端是一个型号AT24C02的EEPROM
    - v: e) Z% q  G7 b, x/ ?
    2byte数据的24C02有点少见,有手册观摩一下不。
      D& e" x9 _. T4 t9 [& k, S  E( i: m+ o4 H
    ' B* N& |0 A$ ^4 F: }

    点评

    用的就是国产华轩阳的这款  详情 回复 发表于 2026-3-4 08:50

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 好奇寶寶獎勵!

    查看全部评分

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

    本版积分规则

    关闭

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

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2026-3-11 22:09 , Processed in 0.187500 second(s), 30 queries , Gzip On.

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

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

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