• 正文
    • Part 01、前言
    • Part 02、為啥I2C需要上拉電阻?
    • Part 03、上拉電阻計(jì)算
    • Part 04、注意事項(xiàng)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

I2C電路上拉電阻選1K還是10K?如何計(jì)算?1200字手把手教你搞定它

8小時(shí)前
348
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

Part 01、前言

I2C通信電路嵌入式設(shè)計(jì)中的“常客”,在各種產(chǎn)品比如家電,工控,醫(yī)療器械等產(chǎn)品的板內(nèi)通信中I2C總能派上用場(chǎng)。但設(shè)計(jì)I2C電路時(shí),上拉電阻Rp的選擇卻是個(gè)讓人頭疼的問(wèn)題:選小了不行,選大了也不行。今天咱們就來(lái)聊聊I2C上拉電阻的計(jì)算方法吧。

Part 02、為啥I2C需要上拉電阻?

I2C是一種開漏Open-Drain通信協(xié)議,SDA和SCL線上的信號(hào)只能被拉低(輸出0V),而拉高(輸出1)全靠上拉電阻Rp。

工作原理:

沒(méi)有信號(hào)時(shí),上拉電阻把線路拉到高電平(接近Vcc)。

IC需要輸出0時(shí),會(huì)通過(guò)內(nèi)部的MOSFET把線路拉低到接近0V。

上拉電阻的作用:

電阻決定了線路從低電平到高電平的上升速度,同時(shí)也影響功耗。選的值不對(duì),要么通信慢得像“烏龜爬”,要么功耗高得像“電老虎”。

那上拉電阻的阻值如何確定呢?

Part 03、上拉電阻計(jì)算

我們需要計(jì)算上拉電阻的最小值Rp(min)和最大值Rp(max),咱們一步步分析。

最小值 Rp(min)計(jì)算

如果上拉電阻太小,電流會(huì)太大,IC可能拉不下來(lái)低電平,導(dǎo)致通信失敗。最小電阻由以下公式?jīng)Q定:

Vcc:電源電壓

VoL(max):IC能輸出的最大低電平電壓(I2C標(biāo)準(zhǔn)要求邏輯低電平低于 0.3×Vcc)

IoL:IC拉低時(shí)的灌電流能力(Sink Current)

舉個(gè)例子,Vcc = 3.3V,VoL(max)=0.4V,IoL=3mA,

所以,上拉電阻不能小于966.67Ω,不然IC拉低電平會(huì)“力不從心”,邏輯0 可能變成“半吊子”,通信直接崩。

最大值 Rp(max)計(jì)算

如果上拉電阻太大,線路的上升時(shí)間會(huì)變長(zhǎng),達(dá)不到I2C標(biāo)準(zhǔn)的上升時(shí)間要求(Rise Time),導(dǎo)致通信失敗。最大電阻由以下公式?jīng)Q定:

tr:I2C標(biāo)準(zhǔn)的最大上升時(shí)間

Cb:總線電容(包括線路電容和IC的引I腳電容)

0.8473:RC電路上升時(shí)間的常數(shù)(從0.3×Vcc到0.7×Vcc的時(shí)間系數(shù))

舉個(gè)例子,如果tr=300 ns,Cb = 200pF

所以,上拉電阻不能大于1770Ω,不然信號(hào)上升太慢,I2C主設(shè)備可能還沒(méi)等到高電平就“等不及了”,通信又崩。

上拉電阻的范圍算出來(lái)了(966.67Ω到1770Ω),但具體選多大,還得看速度和功耗的平衡。小電阻(接近Rp(min)),優(yōu)點(diǎn)是上升時(shí)間短,通信速度快。缺點(diǎn)是電流大,功耗高。比如用1kΩ,上升時(shí)間:

速度很快,但平均電流(信號(hào)頻繁切換時(shí)):

功耗

大電阻(接近 Rp(max)),優(yōu)點(diǎn)是電流小,功耗低。缺點(diǎn)是上升時(shí)間長(zhǎng),速度慢。比如用1.5kΩ,上升時(shí)間:

速度慢了點(diǎn),但功耗:

Part 04、注意事項(xiàng)

1.總線線電容Cb要估準(zhǔn):

Cb包括PCB走線電容(每厘米約1-2pF)、IC引腳電容(通常5-10pF/個(gè))。比如10cm走線+2個(gè)IC,Cb ≈ 20 + 2 × 10 = 40 pF。實(shí)際設(shè)計(jì)時(shí)留點(diǎn)余量,測(cè)一下最好。

2.Vcc變化的影響:

Vcc不是穩(wěn)定的,而是波動(dòng)的,比如不是3.3V,而是2.9-3.5V之間,Rp(min)會(huì)變化,重新算一下。

3.環(huán)境溫度:

高溫下IC的IoL可能變小,Rp(min)會(huì)變大,注意評(píng)估。

4.多設(shè)備場(chǎng)景:

多個(gè)IC掛在I2C 總線上,電容Cb會(huì)增加,Rp(max)變小,重新算一下范圍。

有問(wèn)題歡迎在評(píng)論區(qū)留言交流哦!

相關(guān)推薦