找回密码
 注册
关于网站域名变更的通知
查看: 790|回复: 19
打印 上一主题 下一主题

IIC的采样方式

[复制链接]
  • TA的每日心情

    2025-7-22 15:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    跳转到指定楼层
    1#
     楼主| 发表于 2025-6-27 16:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本来想在老帖里发,想了想还是得发一个新帖:$ _& x- h% \1 J+ s3 {) e/ B
    1 ~" {; s, k9 }* [8 L: E7 n% J
    本人一直没搞清楚IIC的采样方式,目前看到了三种采样方法的说明:高电平采样、上升延采样+高电平采样、上下边沿双采样! ^9 j* O/ S+ Y1 `7 g, o' G
    % K! V8 {5 B# n& I5 v! L5 |" P; J
    1、高电平采样:许多文献或者帖子都说明了是高电平采样,但是似乎没有找到盖棺定论的决定性文献,如果是根据建立保持时间的时序要求反推,时钟高电平处肯定是有采样的,因为一般边沿采样的建立保持时间都是以某个时钟边沿为参考,但是I2C的保持时间是以下降沿为参考,也就是说上升沿到下降沿之间有采样点,但是无法判断是高电平采样还是边沿采样7 ~0 n0 |9 M0 R" G. F8 `: D
    2、上升延采样+高电平采样:该说法具体内容是,i2c内部有边沿敏感电路,在上升沿会采样数据,而在高电平采样是为了判断是否出现了star、stop信号,因此还是需要保证边缘的单调性. V( Y" O% i4 h) M" N# X
    3、上下边沿双采样:该说法来源与本站某贴中的贴友“其实I2C的采样也是边沿采样,只不过是上下沿都采一次”5 {/ Q4 K* o- N; F- m2 [. }# G

    ) `+ I8 o0 w7 y0 A% @因为本人之前一直以为是高电平采样,因此觉得边缘稍微有一点回沟或者平台不会有问题,但实际好像不是这么回事。虽然几种采样形式没有对测试结果没有影响,但是会影响对信号质量的评估,有时候iic边沿就是存在回沟无法消除,最终评估是否可接受时还是需要回到采样的本质,需要从理论和测试的情况下能判断信号质量符合预期。' _$ U3 I( c3 G$ I1 P

    4 m" f0 S( Z7 A希望诸位能解答小弟的疑问,或者提供一些可供参考的信息来源$ ?! r8 Z- c3 O' U

    8 \# A! h, H( s

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 不錯的問題!

    查看全部评分

  • TA的每日心情
    擦汗
    2024-5-14 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2025-6-27 16:39 | 只看该作者
    高电平采样,你这样想:起始是下降沿触发,停止是上升沿触发,这样就导致了只能是电平采样;然后IIC是开漏输出,时钟和数据线都是上拉,空闲的时候释放总线,那么时钟肯定是高电平。-->那就知道了是高电平采样

    点评

    是的,我知道有高电平采样,这个我可以理解。其实我更倾向于第一种和第二种采样方式,这两种采样方式会影响对边沿质量的思考,如果只是高电平采样的话,那么其实边沿回沟问题在一些情况上是可以忽视的,但是如果是第  详情 回复 发表于 2025-6-27 17:27

    评分

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

    查看全部评分

  • TA的每日心情

    2025-7-22 15:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    3#
     楼主| 发表于 2025-6-27 17:27 | 只看该作者
    wen11902 发表于 2025-6-27 16:39
    % A0 q  ^) U% g) P: F) ]高电平采样,你这样想:起始是下降沿触发,停止是上升沿触发,这样就导致了只能是电平采样;然后IIC是开漏 ...

    ' H3 g& s, q5 z% L6 L/ v是的,我知道有高电平采样,这个我可以理解。其实我更倾向于第一种和第二种采样方式,这两种采样方式会影响对边沿质量的思考,如果只是高电平采样的话,那么其实边沿回沟问题在一些情况上是可以忽视的,但是如果是第二种采样方式,边沿的质量需要更多的考虑,比如该回沟会不会导致误判或者误采样。
    , \' r2 H1 x! y. }; ^" I7 X0 L

    该用户从未签到

    4#
    发表于 2025-6-28 19:47 | 只看该作者
    本帖最后由 huo_xing 于 2025-6-28 19:51 编辑
    " `1 o0 C0 D; {/ }; R  V2 V
    8 C; K& J) {9 j# c* J: ~' S随便找个支持iic的芯片,去看时序图。下面是百度的iic工作时序

    1.png (65.37 KB, 下载次数: 54)

    1.png
  • TA的每日心情
    慵懒
    2025-7-3 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2025-7-3 16:34 | 只看该作者
    随便找个支持iic的芯片,去看时序图。

    点评

    谢谢分享!: 5.0
    找了,但都并没有明说有没有上升沿采样,而我朋友是FPGA工程师,他告诉我说,i2c是上升沿采样数据,高电平采样star、restar和stop这些标志信号  详情 回复 发表于 2025-7-3 23:52
    谢谢分享!: 5
    混也要混得有品些!^_^  发表于 2025-7-3 16:44
  • TA的每日心情

    2025-7-22 15:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    6#
     楼主| 发表于 2025-7-3 23:52 | 只看该作者
    Dc2025042345a 发表于 2025-7-3 16:34# b  {: l% V& q8 G# l
    随便找个支持iic的芯片,去看时序图。

    ; f) x7 I5 c, ~. b2 h2 I找了,但都并没有明说有没有上升沿采样,而我朋友是FPGA工程师,他告诉我说,i2c是上升沿采样数据,高电平采样star、restar和stop这些标志信号
    2 Y9 d" E; \* Q& {* G6 b

    点评

    I2C START / STOP Detector Verilog Code module i2c_start_stop_detector ( input wire clk, // 系統時鐘 input wire rst_n, // 非同步 Reset input wire sda, // I2C 資  详情 回复 发表于 2025-7-4 18:21
    I2C START / STOP Detector 我知道樓主要講什麼,「不懂!」。 謝謝!再聯絡。 @#$%^&*!... SDA 當觸發,正、負緣鎖 SCL 狀態啦!  详情 回复 发表于 2025-7-4 09:20
    建議訪問一下人工腦殘(AI)!  详情 回复 发表于 2025-7-4 08:08

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 朋友挖坑補償!

    查看全部评分

    该用户从未签到

    7#
    发表于 2025-7-4 08:08 | 只看该作者
    高电平采样star、restar和stop这些标志信号
    & N) _' C! N) B2 O0 z
    建議訪問一下人工腦殘AI)!
    0 \5 S4 K, Z: p  t8 J* Y
    % h3 @0 V# n& D& o6 p0 X) ^% I4 {' q; }8 F, p# ~  f- ]) C1 k

    该用户从未签到

    8#
    发表于 2025-7-4 09:20 | 只看该作者
    本帖最后由 超級狗 于 2025-7-9 08:47 编辑 8 i2 `/ T  D4 @
    Dc2024101522a 发表于 2025-7-3 23:52% I! T/ V. ~  ^1 Z3 _
    找了,但都并没有明说有没有上升沿采样,而我朋友是FPGA工程师,他告诉我说,i2c是上升沿采样数据,高电 ...
    * x1 O! B; K0 `$ Q. F
    I2C START / STOP Detector, G7 d' B+ z% q" f( y

    ( K8 z: |" p3 r0 l6 S) m8 U我知道樓主要講什麼,「不懂!」。- [) C) [6 s! k" ?6 Q

    0 g7 `; |: o8 ^! Q) D2 j- i謝謝!再聯絡。
    $ Q) B; P: f; O- q7 c
    : K) e9 Y' t; R: s@#$%^&*!...3 Q- N+ R9 B) k0 q$ a
    # Q8 Y1 p; O; Y: k3 p" {' U* t
    SDA 當觸發,正、負緣鎖 SCL 狀態啦!
    2 n# W$ _" Z! Y6 g5 Q
    4 ^( r- b3 b1 ^0 P( M
    # o: {/ l/ e7 d0 L4 \* @& c) Z# c
    . y4 y" k7 w* ]7 \7 P# W

    ) g* J4 }8 L0 f( N- u% E) o

    I2C Start and Stop Detector.jpg (36.22 KB, 下载次数: 29)

    I2C Start and Stop Detector.jpg

    NamNguyenThesis.pdf

    1.36 MB, 下载次数: 1, 下载积分: 威望 -5

    点评

    想不到狗弟塗鴉的方塊圖這麼多人收藏,出處的文檔反而沒人要,小弟決定明天和唐伯虎一樣改賣字畫。 但聽聞唐伯虎的風流倜儻是小說家寫的;實際歷史上的唐伯虎因為窮途潦倒,為了生活是在賣春宮圖。  详情 回复 发表于 2025-7-6 19:19

    该用户从未签到

    9#
    发表于 2025-7-4 18:21 | 只看该作者
    Dc2024101522a 发表于 2025-7-3 23:52
    ; @4 b; X4 I9 q* i. j- Y* F找了,但都并没有明说有没有上升沿采样,而我朋友是FPGA工程师,他告诉我说,i2c是上升沿采样数据,高电 ...

    3 S: s& q, ^# ?4 A7 J, s8 f4 l+ @+ |9 ~  P+ e1 {
    I2C START / STOP Detector Verilog Code; Z  p2 _* t) l* w( G' t
    8 Q& \/ @( V$ I5 X
    ; A$ o5 o4 I4 E& Z4 ~  i
    module i2c_start_stop_detector (  N: n4 U% n- X- z+ \  O
        input  wire clk,       // 系統時鐘
    / T. z7 o: q( ]1 a) a# ~. J    input  wire rst_n,     // 非同步 Reset: t- H8 @9 ]: @9 F" t& l8 S
        input  wire sda,       // I2C 資料線+ z6 `% O( k1 t# W2 M
        input  wire scl,       // I2C 時鐘線
    . r0 @1 F4 r# |2 }$ L    output reg  start_detected, // Start 條件偵測到/ ]% Q! U* T  f8 X% ^
        output reg  stop_detected   // Stop 條件偵測到  T/ G/ i; ~; \( }3 I( n9 ^! {
    );
    ' k- u) B" U/ k4 h, B( Z& Z. v! v* B. {) P* u

    # e, J0 g9 u' [: W8 I' c    // 前兩個時鐘週期的 SDA 與 SCL 值1 g+ M3 v6 C! o! z3 x. C
        reg sda_d1, sda_d2;
    ! l% H. m2 M/ M$ s- Y: N$ j: j    reg scl_d1;3 G8 {0 M+ X, i' B

    ) D  t5 X  g6 x& P0 @' z6 k

    : P) F' B' |3 D* N6 ?  [! K    wire sda_rising  = (sda_d2 == 1'b0) && (sda_d1 == 1'b1);
    1 Y  w8 u6 e1 y, o    wire sda_falling = (sda_d2 == 1'b1) && (sda_d1 == 1'b0);1 J. g. v- F: g( U6 s

    1 X& t- T/ ?) j( p6 U; @9 d
    $ Y) s! o% c2 l" S6 F
        // Sample SDA and SCL
    , g1 m; O- p1 K  L2 |    always @(posedge clk or negedge rst_n) begin
    7 k* P4 ]3 L- y) c        if (!rst_n) begin/ n2 ]% n+ s6 \' R
                sda_d1 <= 1'b1;, L- {! V4 s- h/ o  @, ~' G* Q, R
                sda_d2 <= 1'b1;9 Z) ?2 M) E. n; T4 z" s7 u5 d4 S
                scl_d1 <= 1'b1;* S8 Q$ w: T$ g1 c! g  L
            end else begin2 m3 A- `9 J, m9 a; _
                sda_d2 <= sda_d1;
    3 t3 L- i" E5 K0 Z" W; C            sda_d1 <= sda;
    ) n! G+ A4 _2 b- |! @, m# }5 X            scl_d1 <= scl;
    . P& V5 c1 ]. C/ I9 A) p8 s3 z3 @        end) c& ^, _/ }1 ]$ {
        end# J7 D0 {6 I0 [* ?3 o/ I

    2 |6 O4 \  C* k5 l- b
    4 N4 V2 R* L0 ]- `, U
        // 偵測 Start / Stop 條件
    3 O0 e$ B: M- N% }% m# V2 l    always @(posedge clk or negedge rst_n) begin: i# l( m  i$ `9 L; _" y3 J
            if (!rst_n) begin
    * V6 d1 q7 @/ N, s* t4 {3 @& n            start_detected <= 1'b0;
    , R" T( S  ?$ Y4 A6 y" z  S            stop_detected <= 1'b0;
    0 G4 O4 Y9 b- i2 B        end else begin
    9 _7 s' U. M+ k! s            // I2C START: SDA falling while SCL is high
    / \& o5 I, }! ^" w            start_detected <= sda_falling && (scl_d1 == 1'b1);
    7 b) v8 D4 R0 V7 }5 B            // I2C STOP:  SDA rising while SCL is high
    * H) b$ T5 a) e/ D            stop_detected <= sda_rising  && (scl_d1 == 1'b1);
    3 U. ?* f8 `4 `* o$ M        end- t8 y% w, m% D; d  d% ]
        end; d4 Y" S) n$ C
    6 ?1 ~% s+ N# G. z) h
    5 o- I$ V3 j' t4 K( N
    endmodule$ E$ A( {2 C" c# ?1 z( h
    5 @% R& @: {; o& Z. K

    ( a# n2 q' M3 q( l2 g% R  V: ^* n4 x+ {' \  N4 z, O4 W. J  I

    该用户从未签到

    10#
    发表于 2025-7-6 19:19 | 只看该作者
    本帖最后由 超級狗 于 2025-7-8 08:55 编辑   d. c: @9 C( ^( \
    超級狗 发表于 2025-7-4 09:20) B6 ?4 e% R8 b
    I2C START / STOP Detector0 X1 }& R: r2 F0 _7 B# ]+ H
    , w( W/ \, d8 e; h3 s: M
    我知道樓主要講什麼,「不懂!」。

    3 F" m  K1 f# L/ i" s" @7 s" M想不到狗弟隨便塗鴉的方塊圖這麼多人收藏,出處的文檔反而沒人要,我決定明天開始要和唐伯虎一樣改賣字畫。$ N  d% x% Q5 |7 j8 g# t) J' u

    ! M" W* {. Y+ @( _1 x2 S6 `/ k, [. E7 R9 \" ~% |. `6 o
      ~6 T/ W7 `5 h) _# {' w; q
    但聽聞唐伯虎風流倜儻是小說家筆下寫的;實際歷史上的唐伯虎因為窮途潦倒,為了生活是在賣春宮圖。
    9 m+ F% E  v/ |
    % ~) ^# V  [3 T+ c: ?
  • TA的每日心情
    郁闷
    2023-11-14 15:45
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    11#
    发表于 2025-7-11 16:58 | 只看该作者
    I2C是SCL高电平采样这一点可以看SPEC,信号边沿的回沟一般也不会有什么影响,很多器件内部都有滤波器,可以关注Spike Time这个参数

    批注 2025-07-11 165434.jpg (16.73 KB, 下载次数: 0)

    批注 2025-07-11 165434.jpg

    点评

    菜英文規範解讀 它只說 SDA 在時鐘高電平時必須保持穩定(Stable),並沒說它是高電平採樣,這是一個大家容易陷入的坑。 IC 總線在上升緣(Rising Time)採樣之後,資料就不會變了。時鐘在那邊抖或在那邊跳,都  详情 回复 发表于 2025-7-11 17:34

    该用户从未签到

    12#
    发表于 2025-7-11 17:34 | 只看该作者
    本帖最后由 超級狗 于 2025-7-14 10:29 编辑 % V8 H0 D2 |- U  {! _* X: \
    xmrxmr 发表于 2025-7-11 16:58
    % j$ u6 p4 |/ T9 I: z0 hI2C是SCL高电平采样这一点可以看SPEC,信号边沿的回沟一般也不会有什么影响,很多器件内部都有滤波器,可以 ...

      W5 r+ v' y- f1 t4 u3 z" B' {菜英文規範解讀
      e' U( e/ X! M' p它只說 SDA 在時鐘高電平時必須保持穩定Stable),並沒說它是高電平採樣,這是一個大家容易入坑的地方。
    8 v1 K, ^7 s0 D8 d2 K! y+ x6 v  J4 T1 Y
    I2C 總線在上升緣Rising Time)採樣之後,資料就不會變了。任憑 SDA 在那邊抖或在那邊跳,都不會改變已經採樣的資料。之所以要叫你保持穩定Stable),是因為它雖然不會改變已經採樣的資料,但會觸發 STARTSTOP 偵測造成總線狀態復位Reset),你的資料傳輸會因此中斷。
    , \4 h1 x8 ^+ [
    # r6 e1 F' y; L' {. Z  R很多設計為了保險,也不會剛好在時鐘上升緣Rising Time)進行採樣,會利用 Delay Line 延遲個幾 ns 再採樣。若說這樣就算是高電平採樣,也是有點牽強。% b6 O8 }, w, G; @3 Z7 R3 K

    ( O2 |1 M9 }2 c6 ?; H這是狗弟翻閱許多論壇討論,及技術文檔後得到的心得。3 X# v5 Z2 S& P

    , K& ?8 z. m0 d1 k信者恆信,不信者永不信
    9 o; q, q& @8 U% l3 [" h$ Y. V0 [% x6 g  d

    点评

    学到了,感谢狗哥  详情 回复 发表于 2025-7-14 09:37
    爺死踢(ST)Two-Wire Serial EEPROM M24512 規格書。  详情 回复 发表于 2025-7-14 08:56
    踢哀(TI)文檔內容節錄!  详情 回复 发表于 2025-7-14 08:45

    该用户从未签到

    13#
    发表于 2025-7-14 08:45 | 只看该作者
    超級狗 发表于 2025-7-11 17:344 U4 v' c* F0 ~$ f1 J5 M  T
    菜英文規範解讀; o8 [% k: {% {- H8 \
    它只說 SDA 在時鐘高電平時必須保持穩定(Stable),並沒說它是高電平採樣,這是一個大 ...

    ( t, X, |, {! m; d( P  e踢哀TI)文檔內容節錄!" }& o: O0 H/ U- e* N( k4 e

    3 W8 k- w; W1 P& J6 t+ C% e9 H
    8 f/ p6 g9 r8 g9 r: d

    I2C Bus Logic Ones and Logic Zeros.jpg (32.5 KB, 下载次数: 0)

    I2C Bus Logic Ones and Logic Zeros.jpg

    sbaa565.pdf

    1.14 MB, 下载次数: 0, 下载积分: 威望 -5

    该用户从未签到

    14#
    发表于 2025-7-14 08:56 | 只看该作者
    超級狗 发表于 2025-7-11 17:34
      t6 M' x& _  d# p  A  z菜英文規範解讀
    " F/ _+ X6 X, R0 p$ y' g6 c" x它只說 SDA 在時鐘高電平時必須保持穩定(Stable),並沒說它是高電平採樣,這是一個大 ...

    $ c# g1 d4 a' p爺死踢ST)Two-Wire Serial EEPROM M24512 規格書。
    - U- U, c$ P& g" @# p. ^
    $ J1 U0 T. B4 ~# A  G1 n2 l
    0 S) p# ?( w' w+ n8 A+ I! j- P

    ST M24512 I2C Data Input.jpg (34.09 KB, 下载次数: 0)

    ST M24512 I2C Data Input.jpg

    ST M24512.pdf

    732.79 KB, 下载次数: 0, 下载积分: 威望 -5

  • TA的每日心情
    郁闷
    2023-11-14 15:45
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    15#
    发表于 2025-7-14 09:37 | 只看该作者
    超級狗 发表于 2025-7-11 17:34% a+ L: F: }" n; N1 u# M6 d
    菜英文規範解讀
    . D; ~2 L& {, w+ c它只說 SDA 在時鐘高電平時必須保持穩定(Stable),並沒說它是高電平採樣,這是一個大 ...

    " M* M0 P" n' v7 {) a: `5 m学到了,感谢狗哥$ G  A8 i# N. c5 N. b3 N4 G

    点评

    谢谢分享!: 5.0
    谢谢分享!: 5
    其實您提到內部設計濾波電路,濾除那些不穩定的狀態,有些技術文檔是有提到的。^_^  发表于 2025-7-14 10:20

    评分

    参与人数 1威望 +5 收起 理由
    超級狗 + 5 快樂學習、努力過活!

    查看全部评分

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 21:45 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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