I2C(或稱為I2C,集成電路總線)是一種兩線制通信形式,主要用來(lái)在短距離、電路板間的應(yīng)用中,實(shí)現(xiàn)微控制器與外設(shè)IC之間的低速通信。由于其采用范圍很廣,所以學(xué)習(xí)使用I2C與MSP MCU之間的通信已經(jīng)在幫助工程師開(kāi)發(fā)應(yīng)用方面變得十分必要。通過(guò)使用一個(gè)超低功耗MSP MCU來(lái)訪問(wèn)和控制IC器件,這份指南提供了理解I2C協(xié)議并執(zhí)行這一協(xié)議所需的工具與資源。
器件術(shù)語(yǔ)
驅(qū)動(dòng)SCL時(shí)鐘線路的器件被稱為主器件,而對(duì)其進(jìn)行響應(yīng)的器件被稱為從器件。在大多數(shù)應(yīng)用中,MSP MCU為主器件,而外設(shè)IC為從器件,雖然有時(shí)候MSP器件是其它MCU或處理器的從器件。
物理總線
I2C總線由兩條線路組成,SCL和SDA。SCL是用來(lái)將所有數(shù)據(jù)傳輸同步的時(shí)鐘線路,而SDA是實(shí)際的數(shù)據(jù)線路。還需要第三條線路,即普通接地,不過(guò)通常不被提及。由于兩條線路都是“開(kāi)漏”驅(qū)動(dòng)器,它們都需要到電源線路的上拉電阻,這樣的話,輸出在無(wú)運(yùn)行期間保持在高電平。對(duì)于MSP MCU應(yīng)用來(lái)說(shuō),電源電壓應(yīng)該與MSP MCU的Vcc相匹配。傳統(tǒng)上,上拉電阻器的值為4.7k?,不過(guò)這個(gè)值的范圍可以在少于1k?到10k?之間,取決于所使用的從器件。要獲得正確的上拉電阻值,請(qǐng)參考器件數(shù)據(jù)表。多個(gè)從器件可以共用一條I2C總線,單個(gè)上拉電阻器
I2C軟件協(xié)議
不論何種應(yīng)用,每個(gè)支持I2C器件都需要遵守針對(duì)全部I2C器件所定義的共同軟件協(xié)議,其一般結(jié)構(gòu)始終保持不變。通信從啟動(dòng)序列開(kāi)始,并在一個(gè)停止序列中結(jié)束,兩個(gè)序列之間有一個(gè)8位數(shù)據(jù)傳輸序列。啟動(dòng)位之后是從地址,通常為7位(雖然很少情況下也使用10位尋址)。這7個(gè)數(shù)據(jù)位被放置在一個(gè)字節(jié)的上7位,而LSB(最低有效位)被用來(lái)存儲(chǔ)讀/寫(xiě) (R/W) 位。這個(gè)位讓從器件知道是對(duì)其進(jìn)行寫(xiě)入操作(位值為0),還是讀取操作(位值為1)。對(duì)一個(gè)寫(xiě)入操作,操作序列如下:
發(fā)送啟動(dòng)序列
發(fā)送從地址,其中R/W位為低電平
發(fā)送寄存器數(shù)
發(fā)送數(shù)據(jù)字節(jié)
發(fā)送停止序列
讀取操作序列與寫(xiě)入操作十分相似,除了它不發(fā)送數(shù)據(jù)字節(jié),而是重新發(fā)送啟動(dòng)序列(被稱為一個(gè)重復(fù)啟動(dòng))和從地址(不過(guò)此時(shí),對(duì)于讀取操作來(lái)說(shuō),R/W位為高電平),這樣的話,它可以接收數(shù)據(jù),而不是發(fā)送數(shù)據(jù)。這個(gè)操作在主器件發(fā)出典型停止序列后結(jié)束。下面是讀取操作序列:
再次發(fā)出啟動(dòng)序列(重復(fù)啟動(dòng))
發(fā)出從地址,其中R/W位為高電平
讀取數(shù)據(jù)字節(jié)
發(fā)出停止序列
MSP MCU通信外設(shè)
為了實(shí)現(xiàn)串行通信,MSP器件上有可能提供4種不同的外設(shè)。其中只有一個(gè)外設(shè)會(huì)因器件的不同而不同。根據(jù)在MSP MCU上實(shí)現(xiàn)I2C通信的難易程度(從最難到最容易),將這些使用的外設(shè)列出如下:
UART:通用同步/異步接收器/發(fā)射器。這是最早出現(xiàn)的通信形式,并且存在于大多數(shù)MSP430F1xx MCU上。它不支持I2C,因此必須使用一個(gè)基于軟件的位響應(yīng) (bit-bang) 解決方案來(lái)與I2C器件實(shí)現(xiàn)通信。
USI:通用串行接口。另外一個(gè)更加簡(jiǎn)單的通信形式,用于MSP430G2xx系列內(nèi)的某些組件等成本有效或空間受限器件。器件上沒(méi)有I2C狀態(tài)機(jī),必須在軟件中實(shí)現(xiàn)。通常情況下,通過(guò)使用單獨(dú)的函數(shù)來(lái)實(shí)現(xiàn)。
USCI:通用串行接口。一個(gè)針對(duì)ISR和標(biāo)志用法進(jìn)行優(yōu)化的標(biāo)準(zhǔn)通信外設(shè)。這個(gè)外設(shè)常見(jiàn)于MSP430F5xx/F6xx系列中,其中包括一個(gè)基于硬件的I2C狀態(tài)機(jī),因此運(yùn)行所需要的代碼更少。
eUSCI:增強(qiáng)型通用串行通信接口。MSP器件上提供的最先進(jìn)通信外設(shè),它改進(jìn)了現(xiàn)有USCI功能,并且包含于所有MSP430FRxx (FRAM) MCU中。
當(dāng)考慮使用一個(gè)具有I2C應(yīng)用的MSP器件時(shí),用戶應(yīng)該明白,代碼結(jié)構(gòu)會(huì)隨著特定MSP系列器件上存在的外設(shè)而變化。每個(gè)變量包括必須考慮在內(nèi)的不同寄存器、ISR和函數(shù)。還需要澄清的一點(diǎn)是,并不是所有的器件系列都使用同樣的外設(shè)(USCI和eUSCI存在于MSP430F5xx/6xx中,USI和USCI存在于MSP430G2xx系列中,等等),這一點(diǎn)在用戶參考系列用戶指南時(shí)會(huì)感到很困惑。因此,需要注意的一點(diǎn)是,在開(kāi)始應(yīng)用開(kāi)發(fā)時(shí),要根據(jù)實(shí)際情況來(lái)查看正確的材料,并選擇合適的示例代碼。德州儀器 (TI) 提供針對(duì)USI、USCI和eUSCI通信的基本I2C代碼示例;這些代碼示例可以在工具&軟件->軟件->示例 (Tools & software -> Software -> Examples) 下的MSP系列器件產(chǎn)品頁(yè)面內(nèi)找到(提供ZIP格式的文件,需要注意的是,這些軟件包只包含與特定器件上存在的外設(shè)相關(guān)的代碼示例)。對(duì)于那些使用USART,或者不包含一個(gè)通信外設(shè)的器件,我們?cè)谏鐓^(qū)技術(shù)支持內(nèi)提供在線I2C位響應(yīng)解決方案。不論是否使用外設(shè),始終需要上拉電阻器來(lái)實(shí)現(xiàn)I2C通信。某些MSP器件具有內(nèi)部上拉電阻器,不過(guò)不建議使用這些電阻器,因?yàn)閹讉€(gè)從器件需要特定的、無(wú)法在內(nèi)部滿足的電阻值。
版權(quán)所有:深圳市克里雅半導(dǎo)體有限公司|國(guó)產(chǎn)光電耦合器生產(chǎn)廠家,選型表,替換,優(yōu)勢(shì),電路參考,設(shè)計(jì)支持,交期好 粵ICP備20020189號(hào) 網(wǎng)站地圖 XML
友情鏈接:澳洲電商物流 戶外遮陽(yáng)篷 智能燈光 家用電梯 工業(yè)冷水機(jī) 輕烴燃?xì)庠O(shè)備 氣膜煤棚 電纜故障測(cè)試儀 圖騰機(jī)柜 3pe防腐鋼管 標(biāo)志牌廠家 玻璃鋼管道 切藥機(jī)
非標(biāo)螺絲 蒸發(fā)器 濾油機(jī) 新型雷蒙磨粉機(jī) 分體輸送 旋轉(zhuǎn)電位器 多功能校準(zhǔn)儀 智能防雷開(kāi)關(guān) 鋁單板價(jià)格 測(cè)土儀器 光纜廠家 plasma等離子清洗機(jī) voc在線監(jiān)測(cè)系統(tǒng)
旋轉(zhuǎn)編碼器 氣力輸送 超聲波切帶機(jī) 壓縮空氣冷凍式干燥 圓蓋拋光機(jī) 除銹石英砂 正規(guī)開(kāi)鎖培訓(xùn)學(xué)校 腐植酸鈉廠家 盤式過(guò)濾器 阻燃標(biāo)簽 貝殼粉生態(tài)涂料
銅門制造廠
陳小姐:
客戶服務(wù)熱線
0755-23488804