I2C 波形讀取方法
I2c資訊讀取指南
一、 基本訊號判斷1 匯流排空閒判斷 SCL 和 SDA 全為高
2 開始訊號判斷 :SCL 為高時 SDA 產生一個下跳沿
3 地址、資料、應答,讀寫標示電平的識別:SCL 為高電平脈衝時SDA上的電平即為地址、資料、應答電平
4 i2c讀 : 高電平
5 i2c 寫 : 低電平
6 應答(ACK):低電平
7 非應答(NAK):高電平
8 停止訊號 : SCL 為高時 SDA 產生一個上升沿
9 資料傳輸方向: 資料傳輸先高位元組後低位元組。即先傳第七位,然後第六位。。。。。。。。。第0位。
二、I2c協議包描述 首先是起始訊號 然後是七位的slave 地址
然後是讀寫標誌位(0 寫 1 讀) 然後是裝置的應答(0 ack 1 nak)如果此時是1 則裝置存在問題,i2c錯誤 然後是一個或多個位元組的資料。每個資料有8位,後跟一個應答。此時如果是主機讀資料則應答位由主機發出。如果是寫資料則應答位由裝置發出。 然後是停止位。如果是主機讀,則在收到最後一個位元組後發一個nak併發stop訊號釋放匯流排。如果是主機寫,則在發出最後一個位元組並受到ack後發stop訊號釋放匯流排。
三、獲取i2c波形資料: 從start訊號到stop訊號或restart訊號之間的資料線在clk訊號的高電平脈衝上的電平的集合。
四、從I2c 波形資料讀取i2c資訊 1 獲得裝置地址 :資料位的前七位 2 獲取資料傳輸方向: 第8位(高讀,低寫) 3 獲取是否應答: 9的倍數位(低ack,高 nak)即每一個資料緊跟的那一位 4 獲取傳輸的資料: 第10+7(n-1)位到10+7n 位是傳輸的資料 n 指的是傳輸的第n個資料 Note : 1 如果是讀操作,stop訊號前必須要有nak ,否則i2c錯 2 叢機應答nak則i2c錯 3 如何解析傳輸的資料依賴於裝置定義。(比如ov2640,第一個位元組是暫存器地 址,第二個位元組是資料。它只有兩個資料)
五、讀波形的步驟: 1 根據三提供的方法獲取波形資料 2 根據波形資料獲取i2c資訊
六 、複合i2c概念 所謂複合i2c是指主機完成一次傳輸後不發stop訊號,接著發start訊號開始下一次傳輸。 這樣的格式在某些裝置中要求(裝置spec中有詳細的說明)。
相關文章
- python列表讀取的方法Python
- Android讀取配置檔案的方法Android
- C#讀取Excel方法總結C#Excel
- python讀取yaml配置檔案的方法PythonYAML
- CF卡讀取失敗修復方法?
- python檔案讀取 readlines()方法之坑Python
- EXE檔案結構及讀取方法
- IIC 波形瞭解
- Java讀取暫存器資料的方法Java
- JS讀取本地TXT文字的兩種方法JS
- Python實用方法之讀取本地檔案Python
- 用 PHP 讀取檔案的正確方法PHP
- python讀取大檔案的幾種方法Python
- I2C
- 讀取微控制器內部程式的方法
- c# net6 讀取appsettings.json方法C#APPJSON
- Python逐行讀取檔案常用的三種方法!Python
- python讀取檔案指定行的三種方法Python
- Spark讀取MongoDB資料的方法與優化SparkMongoDB優化
- TensorFlow高效讀取資料的方法——TFRecord的學習
- python程式碼讀取遠端檔案的方法--paramikoPython
- 痞子衡嵌入式:實抓Flash訊號波形來看i.MXRT的FlexSPI外設下AHB讀訪問情形(有預取)Flex
- 痞子衡嵌入式:實抓Flash訊號波形來看i.MXRT的FlexSPI外設下AHB讀訪問情形(無快取)Flex快取
- h5錄音波形效果H5
- Python最常用的讀取指定路徑檔案的方法!Python
- python中讀取檔案的read、readline、readlines方法區別Python
- 【效能技巧】使用DataReader[列序號]的方法讀取DataReader物件物件
- I2C匯流排 | I2C匯流排介紹
- ArcEngine 開啟AutoCAD檔案的幾種方法與讀取CAD資料的方法
- Unity 讀取xmlUnityXML
- JavaScript 讀取cookieJavaScriptCookie
- 影像的讀取,
- Laravel讀取ExcelLaravelExcel
- NPOI讀取示例
- golang讀取pdfGolang
- PHPExcel 讀取表格PHPExcel
- FileStream流讀取
- RedisTemplate讀取slowlogRedis