色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

淺談I2C兼容接口讀取多字節數據時數據傳輸方法

電子設計 ? 來源:eeweb ? 作者:Maxim ? 2021-04-21 13:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本應用筆記討論了通過I2C兼容接口讀取多字節數據時的注意事項。討論了一次讀取一個字節的陷阱,并給出了一些具體示例。本文還介紹了處理此類數據傳輸的正確方法。**

I2C嵌入式系統中使用的串行數據傳輸協議之一。它用于將低速外圍設備連接到嵌入式微處理器。它還用于中低數據速率通信。EPROM,實時時鐘系統存儲設備,遠程溫度傳感器和I / O端口擴展器是慢速外圍設備的一些示例。

兼容I2C的兩線式接口是一種強大的機制,可用于將微控制器或微處理器與低速外圍設備接口,例如具有集成模數轉換器ADC)的外圍設備。通過該總線進行通信的最基本形式(即一次向/從從寄存器寫入/讀取單個字節)非常簡單。但是,為簡單起見,將自己限制在這種方法上存在一些陷阱。

通過1字節通道傳輸2字節數據

與其他任何與外圍設備(尤其是傳感器)的數字接口一樣,我們需要從設備的內部寄存器中讀取正確的數據。當寄存器的數據在讀取過程中發生變化時,這一點尤其重要。如果在數據傳輸時ADC運行其轉換或更新寄存器,則數據可能會發生變化。許多設備具有內部緩沖區(通常不能從外部訪問),該緩沖區包含轉換的最新結果。當沒有I2C活動時,設備使用新數據更新所謂的“客戶可訪問”寄存器。

I2C協議一次傳輸1個字節的數據。因此,如果感興趣的總量數據長于8位并且傳輸處理不正確,則可能會出現問題。例如,MAX44000的環境光傳感器(ALS)數據寄存器最多可包含14位數據(加上1位表示溢出,這意味著應增加計數/照度設置)。

我們無法直接通過I2C讀取所有ALSDATA [13:0],因此我們必須首先讀取寄存器0x04的內容,然后讀取寄存器0x05的內容,并將數據連接到至少一個16位寄存器中。但是,我們必須注意如何讀取此數據??梢院唵蔚貓绦袃蓚€以STOP(P)條件終止的單次讀取,如圖1所示。

pIYBAGB_u9aAex7SAAAdMdS59uw910.png

這種方法有一個致命的缺陷。具體來說,發送STOP條件會向器件發出信號,要求其返回以更新“客戶可見”寄存器。因此,從寄存器0x04獲取數據后,實際上14位數據可以在讀取寄存器0x05之前進行更新。在某些情況下,此缺陷可能會造成災難性的后果。

一個例子是,如果光照水平在一定水平,MAX44000環境光傳感器處于10位,12位或14位模式。假設電平徘徊在某個區域內,則寄存器0x04和0x05中的14位計數總計為255或256,這可能是由于光線緩慢增加或少量噪聲引起的??紤]圖2所示表中的三種情況。

o4YBAGB_u-KAberfAABWLVjuLOg334.png

單字節讀取。

在最后兩種情況下,我們讀取0或511,而不是讀取255或256。這是一個很大的問題。發生這種情況的原因是在發送STOP條件之后,在第一次讀取和第二次讀取之間更新了寄存器0x04和0x05中的數據。在第一種有問題的情況下,正確讀取了第一個字節。但是到讀取第二個字節時,數據讀取的總數為256,其中最低字節為零。因此,我們從該設備獲得零讀數。在第二個有問題的情況下,數據也總計為256個計數。由于在發送STOP條件之后但在讀取第二個字節之前數據減少了一個計數,因此該計數似乎變為511個計數。有關在多次讀取中發生這種情況的次數的示例,請參見圖3。

pIYBAGB_u_GAfbomAAAe7_MfcV4018.png

單字節的實際讀數可讀取許多樣本。

如圖4所示,通過一次讀取2個字節可以輕松避免此問題,這是通過在讀取第一個數據字節之后發送REPEATED START而不是STOP條件來完成的,并且非常容易實現。通過讀取2個字節,即使我們在兩個器件之間總體上發送了相同數量的位,也阻止了該部分執行更多的I2C寄存器更新。

o4YBAGB_u_6AbDSJAAAUjZ-GVh8882.png

2字節讀取的插圖。

上面的例子適用于MAX44000和MAX44009,它們在進行多次讀取時不會自動遞增寄存器指針。您的設備的行為可能有所不同,但是原理始終相同。這很容易擴展為讀取N個字節。

編輯:hfy

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

    關注

    48

    文章

    7948

    瀏覽量

    154914
  • 寄存器
    +關注

    關注

    31

    文章

    5433

    瀏覽量

    124418
  • 模數轉換器
    +關注

    關注

    26

    文章

    3350

    瀏覽量

    128248
  • 時鐘系統
    +關注

    關注

    1

    文章

    109

    瀏覽量

    12185
收藏 1人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Android14在BLE中,當MTU超過 517時,如何處理數據傳輸?

    /behavior-changes-all#mtu-set-to-517 我們在應用更改后進行了測試,但遇到了無法傳輸超過 512 字節數據的問題。 由于客戶的工作數據通常超過 512
    發表于 07-01 06:56

    像這樣一款體積小巧的DTU數據傳輸終端你見過嗎?

    數據傳輸
    才茂通信
    發布于 :2025年06月04日 14:33:29

    SPI數據傳輸緩慢問題求解

    我遇到了 SPI 數據傳輸速率問題。 盡管將 SPI 時鐘頻率設置為 20 MHz,但我只獲得了 2 Kbps 的數據傳輸速率。 我正在以 115200 的波特率通過 UART 監控數據。 我正在 cyfxusbspidmamo
    發表于 05-15 08:29

    使用CyU3PDmaChannelCommitBuffer提交超過1024字節數據時usb包異常大怎么解決?

    你好,我正在嘗試使用fx3實現USB3Vision設備,但是當我使用CyU3PDmaChannelCommitBuffer函數提交超過1024字節數據時,主機獲取到的USB數據包變得非常大
    發表于 05-13 06:11

    iic協議的數據傳輸速率標準

    I2C協議定義了多種數據傳輸速率標準,以適應不同的應用需求。以下是I2C協議的主要數據傳輸速率標準: 標準模式(Standard-mode) :速率為100 kbps(每秒100,00
    的頭像 發表于 02-05 13:40 ?2323次閱讀

    I2C總線數據傳輸速度要求

    Semiconductors)在1980年代初期開發。I2C總線因其簡單性和靈活性而被廣泛應用于各種電子設備中,如傳感器、顯示器、存儲器等。 I2C總線數據傳輸速度 I2C總線的
    的頭像 發表于 01-17 15:15 ?2065次閱讀

    ADS1293在中斷采用Stream mode讀取數據,數據字節數不對是哪里出了問題?

    mode讀取數據(按照datasheet33頁的介紹做的),發現數據字節數不對,后用示波器測量此時DRDYB管腳變成200Hz方波了; 3、使用的配置DRDYB_SRC_REG(地址0x27)的值是0x08, CH_CNFG_
    發表于 01-13 08:32

    MPU數據傳輸協議詳解

    在現代電子系統中,微控制器(MPU)扮演著核心角色,負責處理各種任務和數據。為了實現這些功能,MPU需要與其他設備進行數據交換。數據傳輸協議就是規定這些數據交換如何進行的一套規則。 M
    的頭像 發表于 01-08 09:37 ?869次閱讀

    ptp對實時數據傳輸的影響

    在現代通信技術中,點對點(P2P)網絡已經成為數據傳輸的一種重要方式。P2P網絡允許網絡中的每個節點既可以作為客戶端也可以作為服務器,直接進行數據交換。這種去中心化的網絡結構對于實時數據傳輸有著深遠
    的頭像 發表于 12-29 09:53 ?640次閱讀

    RS232接口數據傳輸穩定性

    RS232接口數據傳輸的穩定性是多個因素綜合作用的結果。以下是對RS232接口數據傳輸穩定性的分析: 一、RS232接口的基本特性 RS23
    的頭像 發表于 12-18 17:56 ?1355次閱讀

    Micro USB接口數據傳輸速率分析

    Micro USB接口數據傳輸速率分析,可以從以下幾個方面進行: 一、Micro USB版本與傳輸速率 Micro USB接口存在不同的版本,主要包括Micro USB 2.0和Mi
    的頭像 發表于 11-27 10:05 ?2161次閱讀

    波特率對實時數據傳輸的影響

    在現代通信系統中,實時數據傳輸是至關重要的。無論是工業自動化、遠程醫療、在線游戲還是物聯網(IoT)應用,都需要快速、可靠的數據傳輸來保證系統的正常運行和用戶體驗。 波特率的定義 波特率,也稱為符號
    的頭像 發表于 11-22 10:03 ?1212次閱讀

    LORA模塊的數據傳輸速率

    LoRa(Long Range)是一種用于物聯網(IoT)應用的低功耗廣域網(LPWAN)技術。它以其長距離通信能力和低功耗特性而聞名。LoRa模塊的數據傳輸速率可以根據不同的配置和地區的規定
    的頭像 發表于 10-31 17:03 ?2780次閱讀

    是德萬用表USB 接口數據傳輸

    在現代電子測量領域,數據傳輸界面技術的發展日新月異,已成為電子測量設備中不可或缺的一部分。是德公司作為電子測量領域的領導者,其萬用表產品也配備了多種數據傳輸接口,包括USB接口。USB
    的頭像 發表于 10-22 16:56 ?750次閱讀
    是德萬用表USB <b class='flag-5'>接口</b><b class='flag-5'>數據傳輸</b>

    網絡數據傳輸速率的單位是什么

    網絡數據傳輸速率的單位是 bps(bit per second) ,即比特每秒,也可以表示為b/s或bit/s。它表示的是每秒鐘傳輸的二進制數的位數。比特(bit)是計算機中數據量的單位,也是信息論
    的頭像 發表于 10-12 10:20 ?4685次閱讀
    主站蜘蛛池模板: 最新日本免费一区 | 诱人的秘书BD在线观看 | 亚洲色 图 | 美国CERANETWORK超清 | 国产专区亚洲欧美另类在线 | 中文文字幕文字幕亚洲色 | 色女孩综合 | 九色PORNY丨视频入口 | 国内精品人妻无码久久久影院蜜桃 | 轻点灬大ji巴太粗太双性高h | 99热这里只有精品6 99热这里只有精品 99热这里只有的精品 | 99精品久久久久久久 | 乱淫67194 | 十八禁肉动漫无修在线播放 | 国产亚洲欧美在线观看三区 | 亚洲国产在线精品国偷产拍 | 欧美日韩视频高清一区 | 爱啪国产精品视频在线 | 国产69精品久久久久乱码免费 | 暖暖视频免费观看视频 | 青青草狠狠干 | 国产精品亚洲欧美 | 一一本之道高清视频在线观看中文字幕 | 福利视频一二三在线观看 | 一级做a爰片久久毛片潮喷动漫 | 2020最新国产自产精品 | 青青草原在线免费 | 伦 乱真实故事 | 无遮18禁在线永久免费观看挡 | 蜜桃婷婷狠狠久久综合9色 蜜桃视频一区二区 | 国产亚洲精品久久7777777 | 羞羞漫画视频 | yellow日本动漫高清 | 丰满饥渴老太性hd | 毛片网站在线观看 | 51精品国产AV无码久久久密桃 | 在线观看国产日韩 | 久久综合狠狠综合久久综合88 | 久久亚洲电影www电影网 | 欧美亚洲国产手机在线有码 | 肉蒲团从国内封禁到日本成经典 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品