示波器測量i2c信號實例

1. 配置示波器

  1. 將兩個表筆接觸 SCL、SDA 觸點,確認表筆都接觸上的標誌是兩個表筆都是高電平。
  2. 將trigger MENU中的 【觸發方式】 設置成邊沿觸發,【信源】 選擇SDA表筆,【邊沿類型】 設置成下降沿,【觸發MODE】 先變成auto,
  3. 將觸發點設置到偏向屏幕的左側,以便能看到更多的波形。
  4. SCL比SDA稍微靠上一點,容易分析。
  5. 發出信號,先整體觀察下整體波形。
  6. 【觸發MODE】變成Single,即可單次採集到波形,想再一次觸發新的波形,按SINGLE鍵。

 

在linux下發送i2c的波形可以使用i2cdetect工具

實例採集的是7位地址的i2c地址的波形

 

2. 數據規律

開始標誌 + 8位數據(7位器件地址+1個讀寫位) + 1個ACK/1個NACK + 8位有效數據 + ACK + ...

  • 開始表示:SCL高電平期間SDA的下降沿
  • 讀寫位:1讀,0寫
  • 有效位:SCL的高電平器件,SDA的電平一定是穩定的,每個SCL高電平期間的SDA的電平表示的是各個位。依次讀即可。

 

3. 實例分析

如下是一個典型的波形

圖中直接讀取結果

0b 1011 1010 0 1000 0001 0

其中前八個位 0b 1011 1010,則

器件地址 0b 1011 1010 >> 1 = 0b 0101 1101 = 0x5d,

讀寫位是移出的位,0表示寫。

後邊緊跟着的0 表示的是ACK

然後緊跟着傳輸的數據 0b 1000 0001 + 一個 0作爲ACK。

發佈了271 篇原創文章 · 獲贊 167 · 訪問量 57萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章