【導(dǎo)讀】在上一篇文章“單片機(jī)上拉電阻、下拉電阻的詳解和選取(一)”中,我們介紹了上拉電阻、下拉電阻的作用和應(yīng)用原則。在本文,我們將介紹上拉電阻、下拉電阻的阻值選擇原則。
在上一篇文章“單片機(jī)上拉電阻、下拉電阻的詳解和選取(一)”中,我們介紹了上拉電阻、下拉電阻的作用和應(yīng)用原則。在本文,我們將介紹上拉電阻、下拉電阻的阻值選擇原則。
四. 上拉電阻的阻值選擇原則
1、從節(jié)約功耗及芯片的灌電流能力考慮應(yīng)當(dāng)足夠大;電阻大、電流小。
2、從確保足夠的驅(qū)動電流考慮應(yīng)當(dāng)足夠??;電阻小,電流大。
3、對于高速電路,過大的上拉電阻可能是邊沿變平緩。
綜合考慮以上三點,通常在1k到10k之間選取。下拉電阻亦是如此。
對上拉電阻和下拉電阻的選擇應(yīng)結(jié)合開關(guān)管特性和下級電路的輸入特性進(jìn)行設(shè)定,主要考慮以下幾個因素:
1、驅(qū)動能力與功耗的平衡。以上拉電阻為例,一般來說,上拉電阻越小,驅(qū)動能力越強(qiáng),但功耗越大,設(shè)計時應(yīng)注意兩者之間的均衡。
2、下級電路的驅(qū)動需求。同樣以上拉電阻為例,當(dāng)輸出高電平時,開關(guān)管斷開,上拉電阻應(yīng)適當(dāng)選擇以能夠向下級電路提供足夠的電流。
3、高低電平的設(shè)定。不同電路的高低電平的門限電平會有不同,電阻應(yīng)適當(dāng)設(shè)定以確保能輸出正確的電平。以上拉電阻為例,當(dāng)輸出低電平時,開關(guān)管導(dǎo)通,上拉電阻和開關(guān)管導(dǎo)通電阻分壓值應(yīng)確保在零電平門限之下。
4、頻率特性。以上拉電阻為例,上拉電阻和開關(guān)管漏源極之間的電容和下級電路之間的輸入電容會形成“RC延遲”,電阻越大,延遲越大。上拉電阻的設(shè)定應(yīng)考慮電路在這方面的需求。
下拉電阻的設(shè)定原則和上拉電阻是一樣的。
OC門輸出高電平時是一個高阻態(tài),其上拉電流要由上拉電阻來提供,設(shè)輸入端每端口不大于100uA,設(shè)輸出口驅(qū)動電流約500uA,標(biāo)準(zhǔn)工作電壓是5V,輸入口的高低電平門限為0.8V(低于此值為低電平)、2V(高電平門限值)。
選上拉電阻時:500uAx8.4K= 4.2V,即選大于8.4K時,輸出端能下拉至0.8V以下,此為最小阻值,再小就拉不下來了。如果輸出口驅(qū)動電流較大,則阻值可減小,保證下拉時能低于0.8V即可。當(dāng)輸出高電平時,忽略管子的漏電流,兩輸入口需200uA,200uA x15K=3V,即上拉電阻壓降為3V,輸出口可達(dá)到2V,此阻值為最大阻值,再大就拉不到2V了。選10K可用(最大壓降/最大電流、最小壓降/最小電流)。
COMS門的可參考74HC系列。設(shè)計時管子的漏電流不可忽略,IO口實際電流在不同電平下也是不同的,上述僅僅是原理,一句話概括為:“輸出高電平時要喂飽后面的輸入口,輸出低電平不要把輸出口喂撐了”,否則多余的電流喂給了級聯(lián)的輸入口,高于低電平門限值就不可靠了。
此外,還應(yīng)注意以下幾點:
A、要看輸出口驅(qū)動的是什么器件,如果該器件需要高電壓的話,而輸出口的輸出電壓又不夠,就需要加上拉電阻。
B、如果有上拉電阻,那它的端口在默認(rèn)值為高電平,你要控制它必須用低電平才能控制,如三態(tài)門電路三極管的集電極或二極管正極去控制,把上拉電阻的電流拉下來成為低電平。
C、尤其用在接口電路中,為了得到確定的電平,一般采用這種方法來保證正確的電路狀態(tài),以免發(fā)生意外。比如在電機(jī)控制中,逆變橋上下橋臂不能直通,如果它們都用同一個單片機(jī)來驅(qū)動,必須設(shè)置初始狀態(tài),防止直通。
電阻在選用時,選用經(jīng)過計算后與標(biāo)準(zhǔn)值最相近的一個。
P0為什么要上拉電阻的原因包括:
1、P0口片內(nèi)無上拉電阻。
2、P0為I/O口工作狀態(tài)時,上方FET被關(guān)斷,從而輸出腳浮空,因此P0用于輸出線時為開漏輸出。
3、由于片內(nèi)無上拉電阻,上方FET又被關(guān)斷,P0輸出1時無法拉升端口電平。
P0是雙向口,其它P1、P2、P3是準(zhǔn)雙向口。之所以稱為“準(zhǔn)雙向口”是因為在讀外部數(shù)據(jù)時要先準(zhǔn)備一下。單片機(jī)在讀準(zhǔn)雙向口的端口時,先應(yīng)給端口鎖存器賦1,目的是使FET關(guān)斷,不至于因片內(nèi)FET導(dǎo)通使端口鉗制在低電平。上下拉一般選10k。