成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux自帶i2c工具使用

系統 Linux
I2C總線被全球超過50個公司的1000+個ICs所使用,已然是一個世界標準.另外,I2C總線與多種不同的控制總線是兼容的,比如SMBus(系統管理總線),PMBus(電源管理總線),IPMI(智能平臺管理總線),DDC(顯示數據通道)以及ATCA(高級電信架構).如果沒記錯的話,linux中的I2C框架是完全支持SMBus的.

I2C總線被全球超過50個公司的1000+個ICs所使用,已然是一個世界標準.另外,I2C總線與多種不同的控制總線是兼容的,比如SMBus(系統管理總線),PMBus(電源管理總線),IPMI(智能平臺管理總線),DDC(顯示數據通道)以及ATCA(高級電信架構).如果沒記錯的話,linux中的I2C框架是完全支持SMBus的.

 

 

要全面了解I2C,可以從《I2C-bus specification and user manual》看起.I2C最初是由Philips提出的,那么這文檔就是由NXP維護的.

我們接下來要了解I2C總線是如何工作的,在一個具體應用中如何設計.I2C的數據傳輸,握手以及總線仲裁機制都需要了解.I2C總線在每種操作模式下的時序和電氣特性都需要了解,這里還是從嵌入式軟件工程師的角度著重了解時序特性.

I2C總線的特性:

在消費電子,通信以及工業電子中,看起來不相關的設計中有很多類似的地方.例如,基本上每個系統都包括:

1.一些智能控制,通常是單芯片的微控制器

2.通用的電路:LCD和LED驅動器,遠程IO口,RAM,EEPROM,RTC或者DAC\ADC.

3.面向應用的電路:比如收音機和視頻系統的數字調諧和信號處理電路,溫度傳感器和智能卡.

為了讓這些共同之處對于系統設計者和設備廠商都有用,也為了***化硬件的有效性和電路的簡單性,Philips半導體開發了一個簡單的雙向2線的總線,實現了IC之間的有效控制.這個總線就被稱為I2C總線.所有兼容I2C總線的設備都包含一個片上的接口,允許它們直接通過I2C總線進行通信.這個設計解決了在設計數字控制電路時帶來的很多接口問題.

下面是I2C總線的一些特性:

1.只需要兩根線,一個串行數據線(SDA)額一個串行時鐘線(SCL).

2.可以通過軟件方式和一個唯一的地址來尋找到每一個連接到總線的設備,簡單的主從關系一直存在.主機可以作為主機發送器或者主機接收器.

3.它是真正的多主機總線,如果有兩個或多個主機初始化數據傳輸,可以通過沖突檢測和仲裁來防止數據被破壞.

4.串行的8位雙向數據傳輸在標準模式下達到100kb/s,快速模式下是400kb/s,超速模式下是3.4Mb/s.

5.串行的8位單向數據在快速模式下可以達到5Mb/s.

6.片上的濾波器可以保護數據完整性.

7.總線上連接的***IC數量由總線***的電容所限制.

系統設計者的好處:

由于I2C總線是個是一個標準的總線,不需要額外的接口.所以在系統升級或者修改時,可以簡單的換IC.

廠商的好處:

符合I2C總線的IC不僅幫助了設計者,同樣給設備廠商很多好處,因為:

1.I2C只有兩根線,所以IC的pin腳會少,PCB的面積會小,成本會降.

2.完整的I2C總線協議不需要地址譯碼器或其他邏輯電路.

這只是一些好處.另外,符合I2C總線的IC會增加系統設計的靈活性.IC很容易升級,比如需要一個更大的ROM,只需要選擇一個有更大ROM的微控制器就可以了.

IC設計者的好處:

微控制器的設計者經常要考慮輸出pin腳.I2C協議允許在沒有單獨尋址信號和芯片使能信號的條件下各種外設的連接.另外,帶I2C接口的微控制器在市場上更受歡迎,因為有很多外設可以選.

I2c掃描

通過i2cdetect -l指令可以查看TX1上的I2C總線,從返回的結果來看TX1含有七個I2C總線。

  1. ubuntu@tegra-ubuntu:/proc/device-tree$ i2cdetect -l 
  2.  
  3. i2c-0 unknown Tegra I2C adapter N/A 
  4.  
  5. i2c-1 unknown Tegra I2C adapter N/A 
  6.  
  7. i2c-2 unknown Tegra I2C adapter N/A 
  8.  
  9. i2c-3 unknown Tegra I2C adapter N/A 
  10.  
  11. i2c-4 unknown Tegra I2C adapter N/A 
  12.  
  13. i2c-5 unknown Tegra I2C adapter N/A 
  14.  
  15. i2c-6 unknown Tegra I2C adapter N/A 

 

I2C設備查詢

若總線上掛載I2C從設備,可通過i2cdetect掃描某個I2C總線上的所有設備。可通過控制臺輸入i2cdetect -y 2,結果如下所示。

  1. ubuntu@tegra-ubuntu:/proc/device-tree$ sudo i2cdetect -y 2 
  2.  
  3. 0 1 2 3 4 5 6 7 8 9 a b c d e f 
  4.  
  5. 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 
  6.  
  7. 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  8.  
  9. 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  10.  
  11. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  12.  
  13. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  14.  
  15. 50: 50 -- -- -- -- -- -- 57 -- -- -- -- -- -- -- -- 
  16.  
  17. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
  18.  
  19. 70: -- -- -- -- -- -- -- -- 

 

說明1:-y為一個可選參數,如果有-y參數的存在則會有一個用戶交互過程,意思是希望用戶停止使用該I2C總線。如果寫入該參數,則沒有這個交互過程,一般該參數在腳本中使用。

說明2:此處I2C總線共掛載兩個設備——PCF8574和AT24C04,從機地址0x50為board configure,從機地址0x57為AT24C04。

寄存器內容導出

通過i2cdump指令可導出I2C設備中的所有寄存器內容,例如輸入i2cdump -y 2 0x50,可獲得以下內容:

 

  1. ubuntu@tegra-ubuntu:/proc/device-tree$ sudo i2cdump -y 2 0x50 
  2.  
  3. No size specified (using byte-data access) 
  4.  
  5. 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 
  6.  
  7. 00: 01 00 0d 00 84 08 e8 03 04 4a 00 00 00 00 00 00 ?.?.?????J...... 
  8.  
  9. 10: 00 00 35 02 36 39 39 2d 38 32 31 38 30 2d 31 30 ..5?699-82180-10 
  10.  
  11. 20: 30 30 2d 34 31 30 20 4a 2e 30 ff ff ff ff ff ff 00-410 J.0...... 
  12.  
  13. 30: ff ff 35 2d 66 4b 04 00 36 2d 66 4b 04 00 00 00 ..5-fK?.6-fK?... 
  14.  
  15. 40: 00 00 00 00 37 2d 66 4b 04 00 30 33 32 33 32 31 ....7-fK?.032321 
  16.  
  17. 50: 36 31 33 30 35 36 35 ff ff ff ff ff ff ff ff ff 6130565......... 
  18.  
  19. 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  20.  
  21. 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  22.  
  23. 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  24.  
  25. 90: ff ff ff ff ff ff 4e 56 43 42 1c 00 4d 31 00 00 ......NVCB?.M1.. 
  26.  
  27. a0: 35 2d 66 4b 04 00 36 2d 66 4b 04 00 37 2d 66 4b 5-fK?.6-fK?.7-fK 
  28.  
  29. b0: 04 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ?............... 
  30.  
  31. c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  32.  
  33. d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  34.  
  35. e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 
  36.  
  37. f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 96 ...............? 

 

i2cdump -y 2 0x50指令中,

-y 代表取消用戶交互過程,直接執行指令;

2 代表I2C總線編號;

0x50 代表I2C設備從機地址,此處選擇配置芯片的高256字節內容。

寄存器內容寫入

如果向I2C設備中寫入某字節,可輸入指令i2cset -y 2 0x50 0x00 0x13

-y 代表曲線用戶交互過程,直接執行指令

2 代表I2C總線編號

0x50 代表I2C設備地址,此處選擇AT24C04的低256字節內容

0x00 代表存儲器地址

0x13 代表存儲器地址中的具體內容

寄存器內容讀出

[plain] view plain copy

  1. pi@raspberrypi:~$ i2cget -y 2 0x50 0x00
  2. 0x13

如果從I2C從設備中讀出某字節,可輸入執行i2cget -y 2 0x50 0x00,可得到以下反饋結果

-y 代表曲線用戶交互過程,直接執行指令

2 代表I2C總線編號

0x50 代表I2C設備地址,此處選擇AT24C04的低256字節內容

0x00 代表存儲器地址 

責任編輯:龐桂玉 來源: 嵌入式Linux中文
相關推薦

2022-06-13 09:21:45

I2C DriverI2C 子系統

2017-03-16 08:30:19

Android ThAndroidI2C

2023-09-13 15:33:57

I2C鴻蒙

2010-06-08 16:25:35

I2C總線協議

2010-07-01 16:45:05

I2C總線協議

2022-05-27 09:00:09

I2C子系統協議

2022-06-12 07:30:13

I3C通訊協議

2023-04-07 09:14:31

硬件通信串口通信實驗

2021-01-19 19:32:01

Cortex-A9 R嵌入式系統i2c 外設

2021-12-06 08:50:27

I2C拉電阻阻值架構

2022-06-18 09:02:00

I2C 子系統通信協議

2010-06-08 16:21:50

I2C總線協議

2022-06-07 08:42:21

高速模式HS mode

2021-09-08 15:44:56

鴻蒙HarmonyOS應用

2009-04-11 15:12:24

.Net MicroI2C總線模擬器

2023-03-22 09:23:53

I2C總線溫度傳感器

2022-04-12 08:46:12

i2c-tools開源工具

2020-11-09 07:23:10

UART通信SPI

2013-12-30 16:27:43

Windows畫圖工具

2021-09-24 09:08:31

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲午夜精品视频 | 四虎免费视频 | 亚洲美女一区 | 亚洲福利在线视频 | 久久久久久免费免费 | 欧美一区二 | 国产精品美女一区二区三区 | 欧美1级 | 欧美日韩一区二区在线观看 | 国产精品一区二区久久精品爱微奶 | 麻豆一区| 久久精品国产亚洲 | 国产乱码精品一区二区三区五月婷 | 超碰电影 | 久草青青草 | 范冰冰一级做a爰片久久毛片 | 最新国产精品精品视频 | 欧美性大战久久久久久久蜜臀 | 精品国产欧美 | 国产精品a级 | 狠狠干美女 | 韩国主播午夜大尺度福利 | 欧美一区二区三区在线看 | 国产男人的天堂 | 免费视频二区 | 亚洲国产二区 | 亚洲精品乱码久久久久久9色 | 久久久精品综合 | 欧美一级在线观看 | 欧美在线亚洲 | 欧美aaaaaaaaaa | 国产精品久久久久久久久久免费看 | 久久中文高清 | 国产视频中文字幕在线观看 | 日屁视频| 成人在线网 | 欧美天堂 | 欧美自拍另类 | 日韩精品一区二区三区在线播放 | a国产视频 | 天天综合久久 |