所謂硬體i2c對應晶元上的i2c外設,有相應i2c驅動電路,其所使用的i2c管腳也是專用的;軟體i2c一般是用gpio管腳,用軟體控制管腳狀態以模擬i2c通訊波形。
硬體i2c的效率要遠高於軟體的,而軟體i2c由於不受管腳限制,介面比較靈活。
模擬i2c 是通過gpio,軟體模擬暫存器的工作方式,而硬體(韌體)i2c是直接呼叫內部暫存器進行配置。如果要從具體硬體上來看,可以去看下晶元手冊。因為韌體i2c的埠是固定的,所以會有所區別。
至於如何區分它們
可以看底層配置,比如io口配置,如果配置了io口的功能(iic功能)那就是韌體iic,否則就是模擬
可以看iic寫函式,看裡面有木有呼叫現成的函式或者給某個暫存器賦值,如果有,則肯定是韌體iic功能,沒有的話肯定是資料乙個bit乙個bit模擬發生送的,肯定用到了迴圈,則為模擬。
根據**量判斷,模擬的**量肯定比韌體的要大。
軟體模擬IIC驅動搭建
通過mcu和tm1680的通訊,簡要概述iic通訊協議 ic通過iic通訊的幾個基本概念 1,iic的初始化 軟體模擬iic需要兩個可程式設計io口,分別對應資料和時序匯流排。初始化iic時,將兩個gpio分別設為輸出 雙向io口 並將電平拉高 產生下降沿,做起始訊號 2,iic的起始訊號 iic的...
裸機IIC協議 模擬IO驅動
實際注意 iic也有叫i2c,是半雙工的,不能同時收發,有sda和clk兩條線,一條匯流排上可以掛載多個從裝置,要求從裝置位址不同。下面以bosh的gsensor的bma253為例,來講解iic。從bma253的datasheet可知,通過io接gnd還是vdd可以得到不同的iic位址,我實際是連線...
模擬IIC的實現
模擬iic都使用了五年了,現在第一次以部落格的形式分享出來,後續還會繼續分享更多黑科技資料!iic匯流排目前在微控制器開發應用當中非常的常見,比如四軸無人機要讀取陀螺儀加速計的資料可以用iic讀取,讀取磁力計需要用iic讀取,讀取氣壓計需要用到iic。iic匯流排用法相對簡單,硬體只需要接兩根線就可...