這是乙份介紹性指南,指導你如何用超低功耗msp微控制器 (mcu) 開始乙個與i2c通訊有關的專案:
簡介
i2c(或稱為i2c,積體電路匯流排)是一種兩線制通訊形式,主要用來在短距離、電路板間的應用中,實現微控制器與外設ic之間的低速通訊。由於其採用範圍很廣,所以學習使用i2c與msp mcu之間的通訊已經在幫助工程師開發應用方面變得十分必要。通過使用乙個超低功耗msp mcu來訪問和控制ic器件,這份指南提供了理解i2c協議並執行這一協議所需的工具與資源。
器件術語
驅動scl時鐘線路的器件被稱為主器件,而對其進行響應的器件被稱為從器件。在大多數應用中,msp mcu為主器件,而外設ic為從器件,雖然有時候msp器件是其它mcu或處理器的從器件。
物理匯流排
i2c匯流排由兩條線路組成,scl和sda。scl是用來將所有資料傳輸同步的時鐘線路,而sda是實際的資料線路。還需要第三條線路,即普通接地,不過通常不被提及。由於兩條線路都是「開漏」驅動器,它們都需要到電源線路的上拉電阻,這樣的話,輸出在無執行期間保持在高電平。對於msp mcu應用來說,電源電壓應該與msp mcu的vcc相匹配。傳統上,上拉電阻器的值為4.7kω,不過這個值的範圍可以在少於1kω到10kω之間,取決於所使用的從器件。要獲得正確的上拉電阻值,請參考器件資料表。多個從器件可以共用一條i2c匯流排,單個上拉電阻器
i2c軟體協議
不論何種應用,每個支援i2c器件都需要遵守針對全部i2c器件所定義的共同軟體協議,其一般結構始終保持不變。通訊從啟動序列開始,並在乙個停止序列中結束,兩個序列之間有乙個8位資料傳輸序列。啟動位之後是從位址,通常為7位(雖然很少情況下也使用10位定址)。這7個資料位被放置在乙個位元組的上7位,而lsb(最低有效位)被用來儲存讀/寫 (r/w) 位。這個位讓從器件知道是對其進行寫入操作(位值為0),還是讀取操作(位值為1)。對乙個寫入操作,操作序列如下:
傳送啟動序列
傳送從位址,其中r/w位為低電平
傳送暫存器數
傳送資料位元組
傳送停止序列
讀取操作序列與寫入操作十分相似,除了它不傳送資料位元組,而是重新傳送啟動序列(被稱為乙個重複啟動)和從位址(不過此時,對於讀取操作來說,r/w位為高電平),這樣的話,它可以接收資料,而不是傳送資料。這個操作在主器件發出典型停止序列後結束。下面是讀取操作序列:
傳送啟動序列
傳送從位址,其中r/w位為低電平
傳送暫存器數
再次發出啟動序列(重複啟動)
發出從位址,其中r/w位為高電平
讀取資料位元組
發出停止序列
msp mcu通訊外設
為了實現序列通訊,msp器件上有可能提供4種不同的外設。其中只有乙個外設會因器件的不同而不同。根據在msp mcu上實現i2c通訊的難易程度(從最難到最容易),將這些使用的外設列出如下:
用msp實現i2c的竅門
當試圖用i2c在外設ic與msp之間進行通訊時,為了幫助避免常見的執行錯誤,以下的一些建議值得我們仔細地看一看:
除錯建議
在放棄那些看起來似乎無法正確執行的**前,以下是除錯這個系統時需要考慮的某些關鍵點:
e2e支援
如果適當的除錯和研究方法沒有成功,ti e2e社群論壇可以成為與器件專家進行直接溝通的極佳資源。無論遇到何種問題,一定要掌握與之相關的詳細資訊,以幫助社群成員和ti工程師更好地為請求提供技術支援,其中包括:
資源
從usci模組遷移至eusci模組 (slaa522):
使用usci i2c主器件 (slaa382):
使用usci i2c從器件 (slaa383):
使用i2c匯流排(部落格):
祝大家編碼快樂!
jBPM開發入門指南 2
4 資料庫初始化 jbpm 需要資料庫支援,jbpm 會把自己的乙個初始化資料儲存到資料庫,同時工作流的資料也是儲存到資料庫中的。jbpm 使用 hibernate 來做為自己的儲存層,因此只要是 hibernate 支援的資料庫,jbpm 也就支援。本文先以 mysql 為例,然後再以 oracl...
JBPM開發入門指南 2
jbpm 需要資料庫支援,jbpm 會把自己的乙個初始化資料儲存到資料庫,同時工作流的資料也是儲存到資料庫中的。jbpm 使用hibernate 來做為自己的儲存層,因此只要是 hibernate 支援的資料庫,jbpm 也就支援。本文先以 mysql 為例,然後再以 oracle 為例,來談談 j...
jBPM開發入門指南 2
4 資料庫初始化 jbpm 需要資料庫支援,jbpm 會把自己的乙個初始化資料儲存到資料庫,同時工作流的資料也是儲存到資料庫中的。jbpm 使用 hibernate 來做為自己的儲存層,因此只要是 hibernate 支援的資料庫,jbpm 也就支援。本文先以 mysql 為例,然後再以 oracl...