吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用超低功耗MSP MCU開始一個I2C通信有關項目

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-26 14:06 ? 次閱讀

這是一份介紹性指南,指導你如何用超低功耗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通信的難易程度(從最難到最容易),將這些使用的外設列出如下:

UART:通用同步/異步接收器/發射器。這是最早出現的通信形式,并且存在于大多數MSP430F1xx MCU上。它不支持I2C,因此必須使用一個基于軟件的位響應 (bit-bang) 解決方案來與I2C器件實現通信。

USI:通用串行接口。另外一個更加簡單的通信形式,用于MSP430G2xx系列內的某些組件等成本有效或空間受限器件。器件上沒有I2C狀態機,必須在軟件中實現。通常情況下,通過使用單獨的函數來實現。

USCI:通用串行接口。一個針對ISR和標志用法進行優化的標準通信外設。這個外設常見于MSP430F5xx/F6xx系列中,其中包括一個基于硬件的I2C狀態機,因此運行所需要的代碼更少。

eUSCI:增強型通用串行通信接口。MSP器件上提供的最先進通信外設,它改進了現有USCI功能,并且包含于所有MSP430FRxx (FRAM) MCU中。

當考慮使用一個具有I2C應用的MSP器件時,用戶應該明白,代碼結構會隨著特定MSP系列器件上存在的外設而變化。每個變量包括必須考慮在內的不同寄存器、ISR和函數。還需要澄清的一點是,并不是所有的器件系列都使用同樣的外設(USCI和eUSCI存在于MSP430F5xx/6xx中,USI和USCI存在于MSP430G2xx系列中,等等),這一點在用戶參考系列用戶指南時會感到很困惑。因此,需要注意的一點是,在開始應用開發時,要根據實際情況來查看正確的材料,并選擇合適的示例代碼。德州儀器 (TI) 提供針對USI、USCI和eUSCI通信的基本I2C代碼示例;這些代碼示例可以在工具&軟件->軟件->示例 (Tools & software -> Software -> Examples) 下的MSP系列器件產品頁面內找到(提供ZIP格式的文件,需要注意的是,這些軟件包只包含與特定器件上存在的外設相關的代碼示例)。對于那些使用USART,或者不包含一個通信外設的器件,我們在社區技術支持內提供在線I2C位響應解決方案。不論是否使用外設,始終需要上拉電阻器來實現I2C通信。某些MSP器件具有內部上拉電阻器,不過不建議使用這些電阻器,因為幾個從器件需要特定的、無法在內部滿足的電阻值。

用MSP實現I2C的竅門

當試圖用I2C在外設IC與MSP之間進行通信時,為了幫助避免常見的執行錯誤,以下的一些建議值得我們仔細地看一看:

從專門為你的MSP系列器件提供的示例I2C代碼入手(產品頁面-> Tools & software -> Software -> Examples)。查看根據系列用戶指南對I2C寄存器的更改(一定要確保你查看的是正確的外設章節),這樣的話,你就可以牢牢掌握實現通信所必須的更改。

使用從器件數據表中指定的上拉電阻和地址(有時會隨著輸入變量的不同而變化)。需牢記的一點是,從地址的7位被存儲在這個字節的上7位,之后是由通信外設設定的一個R/W位,因此,在設置從地址寄存器時,這個值也許需要向左移動一位。

從寫入一個寄存器開始,并且監視MSP器件中的ACK。利用故障標志和實驗室設備來警告通信故障。使用CCS或IAR提供的調試工具來了解代碼的運行方式,哪些寄存器被訪問,何時訪問函數/ISR,以及它們的訪問方式。在完成了這些操作后,在添加寄存器讀取功能性方面會變得更加容易。

USCI/eUSCI狀態圖表示,在接收到最后一個字節前,需要設定UCTXSTP位。在只接收到一個字節的應用中,UCTXSTP位與UCTXSTT位一同設置。如果接收到多個字節,那么應該在接收到第N-1字節后設定UCTXSTP。這樣就確保了在接收到最后一個字節后,立即發送停止序列。

調試建議

在放棄那些看起來似乎無法正確運行的代碼前,以下是調試這個系統時需要考慮的某些關鍵點:

確認上拉電阻值&從地址值,用從器件數據表對它們進行驗證。

再次檢查通信外設初始化,其中包括:寄存器設置、正確的引腳分配、已使能中斷、針對運行的外設接通/釋放等。

使用任何提供的工具(IDE調試器、邏輯分析器、示波器等)來確認MSP430和從器件嚴格遵循I2C軟件協議。

查看針對已知I2C問題的勘誤表,并且查看勘誤表說明是否與應用的故障癥狀相匹配。

研究E2E論壇內的問題,看一看有沒有相似的情況已經被解決。嘗試不同的I2C相關關鍵字組合,并且充分利用搜索過濾器。

E2E支持

如果適當的調試和研究方法沒有成功,TI E2E社區論壇可以成為與器件專家進行直接溝通的極佳資源。無論遇到何種問題,一定要掌握與之相關的詳細信息,以幫助社區成員和TI工程師更好地為請求提供技術支持,其中包括:

MSP430系列器件

使用的LaunchPad或TI目標板,或者定制電路板的電路原理

從器件

所發現情況或問題的準確描述

使用調試器的同時,所觀察到的運行方式(CCS或IAR)

I2C初始化和函數/ISR代碼片段(并不是全部代碼)

包含合適標簽的邏輯分析器和示波器圖像

審核編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10069
收藏 人收藏

    評論

    相關推薦

    I2C總線通信原理 如何設計I2C總線電路

    I2C總線通信原理 I2C(Inter-Integrated Circuit)總線是種用于集成電路之間進行通信的串行
    的頭像 發表于 01-31 15:01 ?145次閱讀

    笙泉科技超低功耗、高性價比MCU(M0+ : MG32L00)

    笙泉科技超低功耗、高性價比MCU(M0+ : MG32L00) 超低功耗M0+ (MG32L003系列) MG32L003系列是笙泉科技新推出的低功耗
    發表于 01-20 10:51

    I2C總線與Arduino的接口示例

    在現代電子設計中,I2C總線因其簡單性和靈活性而廣受歡迎。它允許多個設備共享同一通信線路,從而節省空間和成本。Arduino,作為多功能的微控制器平臺,自然也支持
    的頭像 發表于 01-17 15:34 ?225次閱讀

    I2C總線的工作模式介紹

    兩根線組成:數據線(SDA)和時鐘線(SCL)。數據線負責傳輸數據,而時鐘線則用于同步數據傳輸。I2C總線是全雙工的,意味著數據可以在兩方向上傳輸。它支持多個主設備和從設備,但在同時刻只能有
    的頭像 發表于 01-17 15:32 ?161次閱讀

    I2C總線與單片機的連接

    在現代電子系統中,單片機(MCU)是核心控制單元,而I2C總線作為種多主機、多從機的串行通信協議,因其簡單、高效和節省引腳的特性而被廣泛應用于各種電子設備中。
    的頭像 發表于 01-17 15:18 ?182次閱讀

    I2C總線應用實例分析

    I2C總線使用兩條線進行通信:數據線(SDA)和時鐘線(SCL)。這種雙線制設計使得I2C總線能夠在多個設備之間共享,而不需要為每個設備單獨布線。 應用實例:溫濕度傳感器 假設我們正在設計
    的頭像 發表于 01-17 15:09 ?194次閱讀

    ISO154xEVM低功耗雙向I2C隔離器評估模塊

    電子發燒友網站提供《ISO154xEVM低功耗雙向I2C隔離器評估模塊.pdf》資料免費下載
    發表于 11-18 14:46 ?0次下載
    ISO154xEVM<b class='flag-5'>低功耗</b>雙向<b class='flag-5'>I2C</b>隔離器評估模塊

    使用MSP430 MCU通過I2C實現低功耗Windows 8 HID應用

    電子發燒友網站提供《使用MSP430 MCU通過I2C實現低功耗Windows 8 HID應用.pdf》資料免費下載
    發表于 10-17 09:19 ?0次下載
    使用<b class='flag-5'>MSP</b>430 <b class='flag-5'>MCU</b>通過<b class='flag-5'>I2C</b>實現<b class='flag-5'>低功耗</b>Windows 8 HID應用

    在低成本MSP430 MCU中集成I2C I/O擴展器

    電子發燒友網站提供《在低成本MSP430 MCU中集成I2C I/O擴展器.pdf》資料免費下載
    發表于 09-24 10:56 ?0次下載
    在低成本<b class='flag-5'>MSP</b>430 <b class='flag-5'>MCU</b>中集成<b class='flag-5'>I2C</b> <b class='flag-5'>I</b>/O擴展器

    使用MSP430 MCU簡化溫度、濕度和光學I2C傳感器

    電子發燒友網站提供《使用MSP430 MCU簡化溫度、濕度和光學I2C傳感器.pdf》資料免費下載
    發表于 09-14 11:03 ?0次下載
    使用<b class='flag-5'>MSP</b>430 <b class='flag-5'>MCU</b>簡化溫度、濕度和光學<b class='flag-5'>I2C</b>傳感器

    使用低內存MSP430?MCU的UART到I2C橋應用說明

    電子發燒友網站提供《使用低內存MSP430?MCU的UART到I2C橋應用說明.pdf》資料免費下載
    發表于 09-14 10:45 ?0次下載
    使用低內存<b class='flag-5'>MSP</b>430?<b class='flag-5'>MCU</b>的UART到<b class='flag-5'>I2C</b>橋應用說明

    ISO154x低功耗雙向I2C隔離器數據表

    電子發燒友網站提供《ISO154x低功耗雙向I2C隔離器數據表.pdf》資料免費下載
    發表于 08-19 11:35 ?0次下載
    ISO154x<b class='flag-5'>低功耗</b>雙向<b class='flag-5'>I2C</b>隔離器數據表

    簡單認識I2C通信協議

    I2C(Inter-Integrated Circuit)通信協議是由飛利浦公司(現為恩智浦半導體)開發的種簡單、雙向二線制同步串行總線協議。自1982年發布以來,I2C協議因其高效
    的頭像 發表于 07-25 18:06 ?1677次閱讀

    什么是I2C協議 I2C總線的控制邏輯

    在實際使用過程中,I2C比較容易出現的問題就是死鎖 ,死鎖在I2C中主要表現為:I2C死鎖時表現為SCL為高,SDA
    發表于 03-12 09:17 ?1171次閱讀
    什么是<b class='flag-5'>I2C</b>協議 <b class='flag-5'>I2C</b>總線的控制邏輯

    GD32 MCU硬件I2C不可靠不如軟件I2C?來看看紅楓派開發版的硬件I2C驅動如何做到穩得

    評論中,看到網友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩得批。
    的頭像 發表于 02-23 09:37 ?2890次閱讀
    GD32 <b class='flag-5'>MCU</b>硬件<b class='flag-5'>I2C</b>不可靠不如軟件<b class='flag-5'>I2C</b>?來看看紅楓派開發版的硬件<b class='flag-5'>I2C</b>驅動如何做到穩得<b class='flag-5'>一</b>批
    网上百家乐做假| 阴宅24山吉凶| 足球投注| 百家乐投资心得| 百家乐官网投注怎么样| 状元百家乐的玩法技巧和规则| 百家乐官网看| 百家乐官网发牌的介绍| 678百家乐博彩娱乐场开户注册| 网上百家乐官网解密| 网上百家乐官网是假| 怀宁县| 六合投注系统| 大发888组件下载| 百家乐官网几点不用补牌| 棋牌百家乐官网赢钱经验技巧评测网| 屏边| 利来国际网址| 大发888是什么| 网页百家乐的玩法技巧和规则 | 百家乐官网美女视频聊天| 会东县| www.18lk.com| 棋牌游戏网| 大发888有赢钱的吗| 百家乐双面数字筹码| 百家乐包赢技巧| 百家乐官网群sun811.com| 真人百家乐官网娱乐好玩| 百家乐官网有看牌器吗| 百家乐官网美女真人| BET365官方网| 老虎机上分器原理图| 百家乐庄家闲| 永利博百家乐游戏| 百家乐官网网页游戏| 百家乐官网园有限公司| 竞咪百家乐官网的玩法技巧和规则 | 济州岛娱乐场cns| 大发888游戏下载官方下载| 大发888在线官方|