首先, 要區(qū)分?jǐn)?shù)字信號(hào)與模擬信號(hào)!!!!并且還有是輸入還是輸出.其次,大家要知道不論在交叉開(kāi)關(guān)的設(shè)置如何,端口I/O引腳的狀態(tài)總是可以被讀到相應(yīng)的端口鎖存器.
本文引用地址:http://butianyuan.cn/article/201611/319613.htm即:不管引腳被分配給數(shù)字外設(shè)還是作為通用I/O端口,總是可以通過(guò)讀相應(yīng)的數(shù)據(jù)寄存器得到I/O端口引腳的狀態(tài).
再次
當(dāng)一個(gè)引腳被配置為模擬輸入時(shí),它的弱上拉、數(shù)字驅(qū)動(dòng)器和數(shù)字接收器都被禁止,這可以節(jié)省功耗并減小模擬輸入的噪聲。
當(dāng)一個(gè)引腳被配置為數(shù)字輸入時(shí),設(shè)為漏開(kāi),并向端口寫(xiě)‘1’,引腳為高阻,按照I/O結(jié)構(gòu)原理圖,初始化有弱上拉。引腳與施密特連接,所以在引腳上的電平狀態(tài)是可以讀進(jìn)端口寄存器的,而且經(jīng)過(guò)試驗(yàn)驗(yàn)證,5v的邏輯電平也可以分辨出來(lái),但是建議加上拉電阻。不加也可以。
有一個(gè)網(wǎng)友:“作為數(shù)字輸入時(shí),輸出方輸出特性千差萬(wàn)別,對(duì)于輸出阻抗高的器件可以不加上拉,對(duì)于輸出阻抗低的器件就要用上拉電阻,否則無(wú)法輸出高電平”。
PDF上說(shuō)“ 交叉開(kāi)關(guān)分配的輸入引腳(例如NSS或/INT0)是漏極開(kāi)路或推挽并不重要, 這些引腳被配置為輸入而與相應(yīng)端口配置寄存器的設(shè)置無(wú)關(guān)。為了將一個(gè)通用I/O引腳配置為輸入與這一引腳相關(guān)的端口配置寄存器位必須被清0。這樣即可選擇該引腳為漏極開(kāi)路輸出方式另外與該引腳相關(guān)的端口位必須被置1這樣使該引腳處于高阻態(tài)。或在XBR2中的WEAKPUD被清0時(shí)弱上拉為高電平,這是端口引腳的復(fù)位配置。”
好像可以解釋為輸入狀態(tài)?。?!
當(dāng)一個(gè)引腳被配置為數(shù)字輸出時(shí),設(shè)為推挽即可,寫(xiě)1,寫(xiě)0就能輸出3.3和0v左右電平,而且電流驅(qū)動(dòng)力強(qiáng),驅(qū)動(dòng)5vTTL電平是可以,因?yàn)樗倪壿嫺叩淖畹烷T(mén)限為2v。但是驅(qū)動(dòng)5vCMOS電平就不行了,5V-cmos電平的邏輯高的最低門(mén)限為3.5v,所以此時(shí)需要上拉電阻進(jìn)行拉高電平,并可以將推挽暫時(shí)禁止。就是設(shè)為漏開(kāi)。直接由外部上拉電阻驅(qū)動(dòng)。
輸入: TTL和CMOS都可以,兼容的。
輸出: TTL可以,3.6V以下CMOS可以。3.6V to 5V CMOS加外部上拉電阻到+5V,禁止推挽輸出。5V以上 CMOS不能驅(qū)動(dòng)。
評(píng)論