【導(dǎo)讀】上拉電阻通過將不確定的信號來起到限流的作用。在部分電路當(dāng)中,上拉電阻的作用非常重要,但這并不意味著所有的電路都需要添加上拉電阻。文本將以I2C器件AT24C02為例,對在設(shè)計中是否應(yīng)該添加上拉電阻進(jìn)行探討。
在研究AT24C02的電路圖時,可以看到在SDA、SCL這兩個腳上接了4.4K或10K的上拉電阻,而有些則沒有添加上拉電阻。根據(jù)數(shù)據(jù)手冊來看,建議AT24C02在實際使用中添加拉電阻的。
而在51單片機(jī)系統(tǒng)中,不添加上拉電阻并不影響使用,并且也能夠正確讀寫數(shù)據(jù)。以51單片機(jī)為例,除了P0口,另外3個口內(nèi)部都有弱上拉。所以似乎外部不用再加上拉電阻也可以。但是畢竟單片機(jī)內(nèi)部上拉電阻能力有限,只能微弱上拉。
另外對于很多單片機(jī),其內(nèi)部有上拉電阻,但是無一例外,上拉電阻的組織是比較大的,也就是說其上拉能力有限。
根據(jù)I2C總線規(guī)范,總線空閑時兩根線都必須為高:這條準(zhǔn)則必須嚴(yán)格遵守,這是之所以規(guī)定空閑時必須為高的一個原因,如果要保持“低”,那么就不可能成為“多主”總線的。
上拉電阻的問題:各個I2C接口工作時只檢測高、低電平即可,上拉電阻實際上不是十分必要。但問題是,如果直接采用電源的來實現(xiàn)高的話,一旦其他器件拉低就有可能發(fā)生危險。
上拉電阻有保護(hù)作用。如果確信直接采用電源沒問題(比如有短路保護(hù)等),也可進(jìn)行嘗試。問題的關(guān)鍵在于主器件要能正確的拉低或置高,從器件要能明確地區(qū)分高、低即可,這是問題的關(guān)鍵,另外時序問題同樣不能混亂。
電阻大小的問題:這牽涉到兩方面的問題,首先是功耗的問題,其次是速度的問題,二者互相矛盾,如果想盡量提高速度,那么必然牽涉到總線電容問題。上拉電阻與總線的電容形成RC,高速時將直接影響通訊。因為總線拉高時有充電時間以及高電平的閥值,如果還沒有充電到足以保證從器件能夠識別的高電平的閥值時,主器件就以為完成了一個總線動作的話,那么通訊肯定是不能進(jìn)行。
如果想盡可能降低功耗,那么就要盡量增大電阻以最大可能的減小電路各部分消耗電流。從而實現(xiàn)整體降低功耗!但不可能無限大,否則充電時間會很成問題。
本文針對電路中上拉電阻是否必要的問題進(jìn)行了探討,總的來看,電路中是否需要添加上拉電阻主要需要參考實際電路設(shè)計情況,希望大家在閱讀過本篇文章之后能夠有所收獲。