要回答以上問題,需要先了解MCU內(nèi)部的I/O結(jié)構(gòu),
(本圖來源于STM32F103參考手冊)
當(dāng)輸出高電平1時(shí),I/O內(nèi)部VDD經(jīng)過PMOS流向I/O引腳,如下圖紅色箭頭所示,
這時(shí)驅(qū)動(dòng)能力是指,在輸出電流小于等于最大輸出電流的情況下,I/O引腳可以正常的輸出邏輯1。
P-MOS管的源極(S)接VDD,當(dāng)MCU輸出1時(shí),P-MOS管導(dǎo)通,電流從源極(S)流向漏極(D)。I/O引腳外接負(fù)載大小不同,流過P-MOS管的電流、VDS(源漏電壓)就會(huì)不同。輸出電流越大,VDS越大,I/O電壓就越小。當(dāng)電壓低到Voh時(shí)的這個(gè)輸出電流,就表示驅(qū)動(dòng)能力。
當(dāng)輸出低電平0時(shí),I/O引腳經(jīng)過N-MOS流向I/O內(nèi)部VSS,如下圖紅色箭頭所示
這時(shí)驅(qū)動(dòng)能力是指,在小于等于最大輸入電流的情況下,I/O引腳可以正常的輸出邏輯0。道理同上,流過N-MOS電流越大,N-MOS產(chǎn)生壓降越大,I/O口電壓越大。當(dāng)電壓達(dá)到邏輯0的最高電壓Vol時(shí),這時(shí)的電流就表示驅(qū)動(dòng)能力。
以上看明白后,文章開頭的3個(gè)問題也就有了答案,
1)I/O驅(qū)動(dòng)能力是指在同時(shí)滿足Voh(輸出引腳為邏輯1時(shí)的最小電壓值) 和 Vol(輸出引腳為邏輯0時(shí)的最大電壓值)前提下,最大可以輸出和吸收的電流大小。Voh和Vol的值在芯片數(shù)據(jù)手冊中可以查到。
2)如果某I/O的驅(qū)動(dòng)能力是5mA,并不是表示它輸出不了超過5mA的電流,只是當(dāng)輸出電流超過5mA之后,它的輸出電壓會(huì)下降,電壓會(huì)小于Voh。
3)I/O驅(qū)動(dòng)能力的差異來源于MOS管自身的特性,要想過電流能力大,MOS管體積就要大,芯片所需的面積就會(huì)更大,成本自然也會(huì)更高。所以通常MCU只是一部分I/O具有高驅(qū)動(dòng)能力,并不是每一個(gè)I/O都做成了高驅(qū)動(dòng)能力。
說了這么多,其實(shí)可以用下面這個(gè)簡單的電路來解釋,
MCU的IO引腳上外接一個(gè)電阻到GND,只要這個(gè)電阻不是太小,那么IO引腳的電壓是基本不變的,只是微小的下降。電阻很小、電流較大時(shí),電壓會(huì)明顯下降。
感興趣的可以實(shí)際測試下,不過要注意別把電流整太大燒壞IO哦。
關(guān)注公眾號,掃碼加入嵌入式交流群: