chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C 總線分區(qū)可以解決電壓電平不同、數(shù)據(jù)速率不同的問題

UtFs_Zlgmcu7890 ? 來源:未知 ? 作者:王淳 ? 2019-05-21 16:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

集成電路間總線因為被許多 IC 制造商廣泛應(yīng)用于眾多設(shè)備而廣為人知。而且,互聯(lián)網(wǎng)上也提供了大量信息。然而,關(guān)于 IC 間總線卻也始終存在諸多問題,首當(dāng)其沖的便是它的正確縮寫方法。幸運的是,官方徽標(biāo)給出了答案,即 I2C。

這篇技術(shù)文章將會探討使用 I2C 總線時可能發(fā)生的一些常見問題,以及相應(yīng)的解決方法。關(guān)于 I2C 總線工作原理的基礎(chǔ)知識并非本文章的內(nèi)容,但可以在以下教程中找到相關(guān)信息:I2C 總線基本原理。

使用 I2C 總線時,最常見的問題包括從設(shè)備尋址沖突、混合不同總線速度和/或電壓電平的設(shè)備、錯誤或忘記上拉電阻器、過大的總線電容以及無公共接地連接。

尋址

連接到 I2C 總線的設(shè)備在完成尋址后接收其數(shù)據(jù)。I2C 總線上的地址長度可能為 7 位或 10 位,并且在設(shè)備中預(yù)定義。這些地址由 NXP 分配給設(shè)備制造商。連接到總線的每個設(shè)備應(yīng)具有唯一的地址。

為了讓 I2C 總線一次使用多個相同設(shè)備,許多設(shè)備都提供了通過將引腳拉至供電電壓或接地在預(yù)定義范圍內(nèi)更改地址的能力。例如Texas Instruments的TCA9534APWRI/O 擴(kuò)展器。

該設(shè)備可配置三條地址線(A0、A1 和 A2),獲得 0x38 到 0x3F 范圍的地址(表 1),從而實現(xiàn)在總線上使用 8 個設(shè)備。

輸入 I2C 總線
A2 A1 A0 從地址
L L L 0x38
L L H 0x39
L H L 0x3A
L H H 0x3B
H L L 0x3C
H L H 0x3D
H H L 0x3E
H H H 0x3F

表 1:地址參考(圖片來源: Digi-Key Electronics)

例如,如表 1 中所示,將所有三條地址線全部拉至低電平會將地址 0x38 分配給 TCA9534A。

配置地址 0x38 的 Texas Instruments TCA9534 示意圖

圖 1:配置地址 0x38 的 TCA9534(圖片來源: Texas Instruments)

有些設(shè)備僅可提供一個地址。例如,Sensirion AG的STS21和Silicon Labs的SI705x無法配置不同的地址。如果在同一總線上使用多個上述設(shè)備,則可能導(dǎo)致問題,因為所有這些設(shè)備將會同時響應(yīng),從而導(dǎo)致整個總線崩潰。

對于連接到 I2C 總線的設(shè)備,另一個更典型的尋址問題是與軟件相關(guān)。I2C 總線是 8 位串行總線。地址長度通常為 7 位,后面緊跟一個指定讀寫操作的位。例如,如以下圖 2 所示,從地址 0x40 (0b01000000) 執(zhí)行讀取操作將會在總線上生成 0x81 (0b10000001)。第 8 位為 1 表示讀,0 表示寫。

在 SDA 上看到的從地址 0x40 讀取圖片

圖 2:在 SDA 上看到的從地址 0x40 讀取(圖片來源: Digi-Key Electronics)

一個 10 位地址在 I2C 總線上使用兩個字節(jié)。前 5 位始終為 0b11110,后面緊跟兩個最高有效位和第 8位(同樣為讀/寫位)。第二個傳輸?shù)淖止?jié)包含 10 位地址的 8 個最低有效位。從 10 位地址 0x240 (0b1001000000) 讀取將會產(chǎn)生兩個字節(jié) 0xf5 (0b11110101) 和 0x40 (0b01000000)。

7 位地址 0x70 至 0x7B 保留用于 10 位尋址,且不能供 7 位設(shè)備使用。這樣就有可能在同一 I2C 總線上混合使用 7 位和 10 位設(shè)備。

利用支持 I2C 總線的邏輯分析器,可以輕松地發(fā)現(xiàn)并解決軟件尋址問題。請注意,一些 I2C 總線邏輯分析器會直接顯示傳輸?shù)牡刂贰?/p>

總線速度

I2C 總線設(shè)備可采用不同的速度。正如 I2C 規(guī)范所定義的,不同的雙向速度包括比特率高達(dá) 100 kb/s 的標(biāo)準(zhǔn)模式 (Sm)、比特率高達(dá) 400 kb/s 的快速模式 (Fm)、比特率高達(dá) 1 Mb/s 的快速增強模式 (Fm+),以及比特率高達(dá) 3.4 Mb/s 的高速模式 (HS)。由于這些速度通??梢韵蛳录嫒荩虼怂俣容^快的設(shè)備能夠以較低的數(shù)據(jù)速率,與速度較慢的設(shè)備在同一總線上使用。相反,如果將速度較慢的設(shè)備連接到速度較快的總線,則可能導(dǎo)致不可預(yù)測的狀態(tài)并阻塞總線。

電壓電平

雖然速度失配可能導(dǎo)致總線阻塞,但混合不同的電壓電平卻可能導(dǎo)致災(zāi)難性的后果,并直接損壞零件。

根據(jù) I2C 規(guī)范,高電平信號和低電平信號的電壓電平都是相對供電電壓定義的。下表顯示了 2.5 伏到最高 5 伏范圍內(nèi)的最小電壓和最大電壓。請注意,2.5 伏設(shè)備無法產(chǎn)生對 5 伏設(shè)備而言足夠高的電壓。

VDD VIL(max) VIH(min)
5V 1.5 V 3.5 V
3.3 V 1 V 2.3 V
2.5 V 0.75 V 1.75 V

表 2:輸入電壓電平(表格來源: Digi-Key Electronics)

反之,5 伏的輸出可能會損壞 2.5 伏設(shè)備。

總線分區(qū)

為 I2C 總線分區(qū)可以解決電壓電平不同、數(shù)據(jù)速率不同的問題,甚至解決具有相同地址的多個設(shè)備的問題。

可以采用總線開關(guān)來為 I2C 總線分區(qū),例如NXP USA Inc.的PCA9548APW,118或 Texas Instruments 的PCA9548ADWR。通過為這些設(shè)備編程,可以啟用或禁用不同的區(qū)段訪問總線??梢园措妷弘娖健⑺俣然蚓哂邢嗤刂返脑O(shè)備來劃分不同的區(qū)段。

NXP I2C 總線開關(guān)的示意圖

圖 3:I2C 總線開關(guān)(圖片來源: NXP)

當(dāng)應(yīng)對不同的電壓電平時,可以同時激活不同的區(qū)段。但對于同一地址,必須確保不會同時激活具有相同地址的多個區(qū)段。當(dāng)然,總線開關(guān)也必須支持不同的電壓電平和/或速度模式。盡管以上所示的兩個設(shè)備都支持 1.8 V、2.5 V、3.3 V 和 5 V 電壓,以及高達(dá) Fm (400 kb/s) 的速度,但這不一定始終足夠。

NXP USA Inc. 的PCA9617ADPJ是一個總線中繼器,支持高達(dá) Fm+ 的速度,并且在一側(cè)支持低至 0.8 V 的電壓,在另一側(cè)支持 2.2 V 的電壓。此設(shè)備可用于擴(kuò)展范圍,或使用其啟用線路將一側(cè)與另一側(cè)進(jìn)行分離。由于此設(shè)備不能用作 I2C 從設(shè)備,因此它需要額外的微控制器引腳才能分離總線線路。

尋找支持高達(dá) Fm+ 總線速度的交換機(jī)或中繼器,比尋找適合高速總線的相似解決方案更難。對于單一主總線而言,最輕松的解決方案是選擇一個能夠提供兩個或更多個 I2C 總線的處理器(類似于Microchip Technology的SAM D21 系列),并按速度分離設(shè)備。對于多主總線系統(tǒng)而言,解決方案稍微復(fù)雜一些。其中一個主總線需要使用橋接模式,將每個速度不超過 Fm+ 的信號轉(zhuǎn)發(fā)至另一條總線,但在切換至高速模式時分離總線。

總線電容

將總線分離為不同區(qū)段有助于解決總線線路電容等其他問題,因為最大電容對各個區(qū)段是分開的。連接到總線線路的每個設(shè)備都會增加電路板印制線所導(dǎo)致的現(xiàn)有電容。總線電容增大則會導(dǎo)致上升和下降時間增加,因為需要從柵極進(jìn)行充電/放電。將多個設(shè)備添加到同一 I2C 總線可能達(dá)到指定的限值,從而降低通信速度。

不僅過多的設(shè)備會增加總線電容,過長的總線線路也會發(fā)生同樣的情況。I2C 適合用作單一 PCB 上的集成電路之間的總線。但它往往用于通過電纜跟相距數(shù)英尺的其他 PCB 上的設(shè)備進(jìn)行通信。針對 PCB 上的印制線,許多設(shè)計工具可以計算印制線電容。對于標(biāo)準(zhǔn)帶狀電纜,此值通常在規(guī)格書中提供(每英尺電容 10 到 15 pF)。此外,讓總線通過數(shù)英尺的電纜傳輸至其他 PCB,可能會因 EMI 而導(dǎo)致噪聲信號,這也可能引發(fā)通信故障。

公共接地

對 I2C 而言,總線上所有設(shè)備之間擁有一個公共接地非常重要。由于功耗的原因,通過長幾英尺的電纜所連接的電路板上的接地電平可能不同,從而導(dǎo)致通信問題。為避免此問題,同時減少可能的 EMI 問題,選擇之一是使用 NXP USA Inc. 的PCA9615DPJ。此器件是一側(cè)采用標(biāo)準(zhǔn) I2C 總線,另一側(cè)采用差分 I2C 總線的 I2C 總線中繼器。

NXP 差分 I2C 總線示意圖

圖 4:差分 I2C 總線(圖片來源: NXP)

差分信號不僅減少了可能的 EMI 問題,而且不需要公共接地連接。對于雙絞線電纜,它還允許 I2C 總線延長至十英尺的長度,從而實現(xiàn)具有 1 MHz 時鐘速度的多分支總線(Fm+ 總線),如只需較低速度,甚至延長更長距離。

上拉電阻

最后但同樣也很重要的一點是上拉電阻。

I2C 總線上連接的所有端口均為開漏端口,允許在總線線路上使用不同的電壓。電壓閾值取決于使用電阻器將線路上拉至的電壓。每個 I2C 總線區(qū)段都需要上拉電阻器,并且每個區(qū)段的值可能不同。一些設(shè)備提供可以啟用或禁用的內(nèi)部上拉電阻器。使用這些電阻器是否實用需要視具體情況而定。

低阻值電阻器可以將 SDA 和 SCL 線路猛拉至最高總線電壓,這可能導(dǎo)致一些總線設(shè)備無法將線路拉低至指定的低電壓電平。此外,總線線路的電阻也會增加上拉電阻,并且設(shè)備越靠近上拉電阻器,與遠(yuǎn)離上拉電阻器的設(shè)備相比,電壓電平差越大。相反,選擇阻值過高的上拉電阻器會導(dǎo)致上升時間增加,這也依賴于總線上存在的電線、印制線、連接和引腳的總線電容。

那么,如何確定電阻值呢?

I2C 規(guī)范提供了兩個公式,用于計算上拉電阻器的最小和最大電阻。

最小電阻 Rp(min)取決于總線電壓 VDD和低電平輸出電流 IOL。VOL(max)為 0.4 伏,或 0.2 VDD(對于 VDD低于 2 伏的情況)。

等式 1

VDD Sm 總線/Fm 總線 Fm+ 總線
5V 1700 ? 255 ?
3.3 V 1077 ? 162 ?
2.5 V 783 ? 118 ?

表 3:不同供電電壓下的最小上拉電阻器阻值(表格來源: Digi-Key Electronics)

使用低于表格所示的電阻值會導(dǎo)致通過設(shè)備的電流較大,這可能損壞設(shè)備,或?qū)е虏幻鞔_的低電平信號狀態(tài)。

最大電阻 Rp(max)使用估計的總線電容 Cb和最大上升時間 tr計算得出。最大上升時間取決于總線的數(shù)據(jù)速率。

等式 2

下表顯示了不同總線速度下的最大上升時間 (tr(max)) 和最大總線電容 (tr(max))所允許的最大電阻 (Rp(max))。要獲得更短的上升時間,需要降低總線電容或電阻值。

Sm 總線 Fm 總線 Fm+ 總線
tr(max) 1000 ns 300 ns 120 ns
Cb(max) 400 pF 400 pF 550 pF
Rp(max) 2950 ? 885 ? 257 ?

表 4:最壞情形下總線的最大電阻器阻值(表格來源: Digi-Key Electronics)

以上表格顯示了不同總線速度下最大總線電容和最大上升時間對應(yīng)的最壞情形。最佳選擇是估算總線電容并使用提供的公式計算電阻值。

將上拉電阻器保持在計算的最小值和最大值之間,這一點非常重要。但即便如此,仍有可能造成使用的電阻器阻值過高。原因之一可能是,計算中未包括用于保護(hù)設(shè)備的串聯(lián)電阻器。請注意,此類串聯(lián)電阻器也會影響總線的上升時間和下降時間。

I2C 總線上的 NXP 上拉和串聯(lián)電阻器示意圖

圖 5:I2C 總線上的上拉和串聯(lián)電阻器(圖片來源: NXP)

一般而言,如果出現(xiàn)通信不穩(wěn)定問題,建議測量上升和下降時間,并相應(yīng)地調(diào)整上拉電阻器。

真實示例

Arduino Uno 使用指定為 20 k? 到 50 k? 的內(nèi)部上拉電阻器。這對于在 Fm 總線速度下介于 7 pF 到 18 pF 的最大總線電容和在 Sm 總線速度下介于 24 pF 到 59 pF 的最大總線電容來說是合適的。

在總線上各個端口具有不超過 10 pF 的電容,同時存在一些額外接線和連接電容的情況下,采用 Fm 總線速度時,即使僅使用一個從設(shè)備,Arduino 也會出現(xiàn)通信問題。但在 Sm 總線速度下,則可能同時使用若干設(shè)備。因此,在 Arduino 上使用 I2C 時,建議使用外部上拉電阻器。

總結(jié)

通過使用具有相同速度和電壓的設(shè)備、選擇合適的上拉電阻器,以及針對地址的使用進(jìn)行有效規(guī)劃,可以避免 I2C 存在的許多常見問題。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4398

    文章

    23815

    瀏覽量

    422428
  • HS
    HS
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    20445
  • I2C總線
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    深入解析PCA9306:雙路雙向I2C和SMBus電壓電平轉(zhuǎn)換器

    深入解析PCA9306:雙路雙向I2C和SMBus電壓電平轉(zhuǎn)換器 在電子設(shè)計領(lǐng)域,I2C和SMBus接口的應(yīng)用極為廣泛,而
    的頭像 發(fā)表于 12-29 14:45 ?181次閱讀

    深入剖析P82B96:I2C總線緩沖器的卓越之選

    ,我們就來深入探討一款優(yōu)秀的I2C兼容雙雙向總線緩沖器——P82B96。 文件下載: p82b96.pdf 一、P82B96的核心特性 1. 寬電壓范圍 P82B96的工作電源
    的頭像 發(fā)表于 12-27 14:50 ?652次閱讀

    PCA9306-Q1:雙路雙向 $I^{2}C$ 總線和 SMBus 電壓電平轉(zhuǎn)換器的詳細(xì)解析

    PCA9306-Q1:雙路雙向 $I^{2}C$ 總線和 SMBus 電壓電平轉(zhuǎn)換器的詳細(xì)解析 在電子設(shè)計領(lǐng)域,電壓電平轉(zhuǎn)換是一個常見且關(guān)鍵
    的頭像 發(fā)表于 12-26 11:40 ?325次閱讀

    探索NXP P3S0210BQ:多功能I3C總線開關(guān)與電壓電平轉(zhuǎn)換器

    探索NXP P3S0210BQ:多功能I3C總線開關(guān)與電壓電平轉(zhuǎn)換器 在電子設(shè)計的廣闊領(lǐng)域中,尋找一款能夠高效處理復(fù)雜總線切換和電壓轉(zhuǎn)換的器
    的頭像 發(fā)表于 12-24 15:55 ?219次閱讀

    TCA9406:出色的雙向電壓電平轉(zhuǎn)換器

    。今天,我們就來深入了解一款高性能的雙向電壓電平轉(zhuǎn)換器——TCA9406。 文件下載: tca9406.pdf 一、產(chǎn)品概述 TCA9406是一款2位雙向 $I^{2}C$ 和SMBus電壓電
    的頭像 發(fā)表于 12-24 14:30 ?213次閱讀

    探索P3S0210BQ:雙路雙向I3C總線開關(guān)與電壓電平轉(zhuǎn)換器

    探索P3S0210BQ:雙路雙向I3C總線開關(guān)與電壓電平轉(zhuǎn)換器 在電子設(shè)備的設(shè)計中,總線開關(guān)和電壓電平轉(zhuǎn)換器是實現(xiàn)不同設(shè)備之間通信和信號轉(zhuǎn)換
    的頭像 發(fā)表于 12-24 14:10 ?265次閱讀

    TCA9509:I2C/SMBus總線中繼器的卓越之選

    ,支持I2C總線和SMBus,可在混合模式應(yīng)用中實現(xiàn)低電壓(低至0.9V)與較高電壓(2.7V - 5.5V)之間的雙向
    的頭像 發(fā)表于 12-24 10:35 ?241次閱讀

    TCA9543A:低電壓 2 通道 I2C 總線開關(guān)的全面解析

    TCA9543A:低電壓 2 通道 I2C 總線開關(guān)的全面解析 在電子工程師的設(shè)計工作中,I2C
    的頭像 發(fā)表于 12-23 09:25 ?283次閱讀

    TCA9800電平轉(zhuǎn)換I2C總線緩沖器/中繼器:特性、應(yīng)用與設(shè)計指南

    TCA9800電平轉(zhuǎn)換I2C總線緩沖器/中繼器:特性、應(yīng)用與設(shè)計指南 引言 在電子設(shè)計領(lǐng)域,I2C
    的頭像 發(fā)表于 12-18 17:40 ?499次閱讀

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析 在電子設(shè)計領(lǐng)域,電壓電平轉(zhuǎn)換是一個常見且關(guān)鍵的問題,特別是在涉及不同電壓標(biāo)
    的頭像 發(fā)表于 12-17 10:00 ?268次閱讀

    TCA39306-Q1 雙路雙向 I3C、I2C 總線和 SMBus 電壓電平轉(zhuǎn)換器:特性、應(yīng)用與設(shè)計要點

    TCA39306-Q1 雙路雙向 I3C、I2C 總線和 SMBus 電壓電平轉(zhuǎn)換器:特性、應(yīng)用與設(shè)計要點 在電子工程師的日常工作中,總線
    的頭像 發(fā)表于 12-16 15:30 ?284次閱讀

    TCAL6408:8位轉(zhuǎn)換I2C總線/SMBus I/O擴(kuò)展器的深度剖析

    1.08V至3.6V,支持1.2V、1.8V、2.5V和3.3V I2C總線和P端口之間進(jìn)行雙向電壓電平轉(zhuǎn)換和GPIO擴(kuò)展。這使得它在不同電源電壓的系統(tǒng)中都能穩(wěn)定
    的頭像 發(fā)表于 12-16 11:45 ?439次閱讀

    ?基于NLA9306電壓電平轉(zhuǎn)換器的技術(shù)深度解析與應(yīng)用指南

    安森美 NLA9306電壓電平轉(zhuǎn)換器是雙路雙向I^2^C總線SMBus電壓電平轉(zhuǎn)換器,具有使能 (EN) 輸入。這些器件的工作
    的頭像 發(fā)表于 11-25 14:01 ?367次閱讀
    ?基于NLA9306<b class='flag-5'>電壓電平</b>轉(zhuǎn)換器的技術(shù)深度解析與應(yīng)用指南

    谷泰微GT020X雙向電壓電平轉(zhuǎn)換器產(chǎn)品介紹

    GT020X 雙向電壓電平轉(zhuǎn)換器,具備自動方向檢測功能。數(shù)據(jù)傳輸速率可達(dá)100Mbps,滿足高速數(shù)據(jù)傳輸需求。
    的頭像 發(fā)表于 03-18 17:28 ?932次閱讀
    谷泰微GT020X雙向<b class='flag-5'>電壓電平</b>轉(zhuǎn)換器產(chǎn)品介紹

    I2C總線通信原理 如何設(shè)計I2C總線電路

    、高效的通信接口標(biāo)準(zhǔn)。I2C總線通信原理主要包括以下要點: 總線結(jié)構(gòu) : I2C總線僅使用兩條信號線,即串行
    的頭像 發(fā)表于 01-31 15:01 ?2121次閱讀