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