GPIO(General-purpose input/output 通用目的輸入/輸出埠) 電壓(A模擬量)與電平(D數字量) GPIO 8種工作模式(輸入四種、輸出四種) 1、GPIO_Mode_AIN 模擬輸入 2、GPIO_Mode_IN_FLOATING 浮空輸入 3、GPIO_Mode_ ...
GPIO(General-purpose input/output 通用目的輸入/輸出埠)
電壓(A模擬量)與電平(D數字量)
GPIO 8種工作模式(輸入四種、輸出四種)
1、GPIO_Mode_AIN 模擬輸入
2、GPIO_Mode_IN_FLOATING 浮空輸入
3、GPIO_Mode_IPD 下拉輸入
4、GPIO_Mode_IPU 上拉輸入
5、GPIO_Mode_Out_OD 開漏輸出
6、GPIO_Mode_Out_PP 推輓輸出
7、GPIO_Mode_AF_OD 復用開漏輸出
8、GPIO_Mode_AF_PP 復用推輓輸出
一、模擬輸入
黃色高亮部分表示數據的傳輸通道,陰影的部分不工作。
模擬輸入是指傳統方式的輸入.數字輸入是輸入PCM數字信號,即0,1的二進位數字信號,通過數模轉換,轉換成模擬信號,經前級放大進入功率放大器,功率放大器還是模擬的。
二、浮空輸入
圖中施密特觸發器是打開的,上下拉電阻斷開,IO口的狀態可以直接送到輸入寄存器中,CPU可以直接讀取輸入寄存器。
三、下拉輸入
下拉輸入與前面的浮空輸入模式相比,僅僅是在數據通道下部,接入一個下拉電阻,STM32中,該下拉電阻的阻值介於30-50K。
下拉輸入就是把電壓拉低,拉到GND。與上拉原理相似。
四、上拉輸入
上拉輸入與前面的浮空輸入模式相比,僅僅是在數據通道上部,接入一個上拉電阻,STM32中,該上拉電阻的阻值介於30-50K。
上拉就是把電位拉高,比如拉到VDD。上拉就是將不確定的信號通過一個電阻嵌位在高電平!電阻同時起限流作用!弱強只是上拉電阻的阻值不同,沒有什麼嚴格區分
五、開漏輸出
如圖,輸出控制電路控制信號來源於CPU,當輸出信號1,則PMOS不被激活,NMOS高阻,輸出埠的電平由外部的上下拉電阻決定,當接上拉電阻,則埠為高電平,當接下拉電阻,則埠為低電平;當輸出控制電路輸出0,則PMOS不被激活,NMOS導通,則埠電平拉低到VSS上。
輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內).
簡言之:
輸出 0 時,N-MOS 導通,P-MOS 不被激活,輸出0。
輸出 1 時,N-MOS 高阻, P-MOS 不被激活,輸出1(需要外部上拉電路);可以讀IO輸入電平變化,此模式可以把埠作為雙向IO使用。
六、推輓輸出
可以輸出高,低電平,連接數字器件; 推輓結構一般是指兩個三極體分別受兩互補信號的控制,總是在一個三極體導通的時候另一個截止。高低電平由IC的電源低定。
簡言之:
輸出 0 時,N-MOS 導通,P-MOS 高阻,輸出0。
輸出 1 時,N-MOS 高阻,P-MOS 導通,輸出1(不需要外部上拉電路)。
七、八、復用開漏輸出/復用推輓輸出
可以理解為GPIO口被用作第二功能時的配置情況(即並非作為通用IO口使用)。
復用功能的推輓輸出_AF_PP ——片內外設功能(I2C的SCL,SDA)(8)復用功能的開漏輸出_AF_OD——片內外設功能(TX1,MOSI,MISO.SCK.SS)
如圖,輸出控制電路信號來源於片上外設模塊,當輸出信號1,則PMOS導通,NMOS截止,輸出埠的電平由外部的上下拉電阻決定,當接上拉電阻,則埠為高電平,當接下拉電阻,則埠為低電平;當輸出控制電路輸出0,則PMOS截止,NMOS導通,則埠電平拉低到VSS上。
輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內).
輸入保護電路
當輸入信號電壓為正時,且超過(VDD)+0.7V,D1導通,導通後,輸入端的電壓就穩定在(VDD)+0.7V了,而不會因輸入信號電壓增加而增加,就起到了保護作用。
同理,當輸入信號電壓為負時,且超過了(VSS)-0.7V,D2導通,輸入端的電壓也穩定在(VSS)-0.7V。
這樣,只要設置VDD,VSS的電壓大小,就可以確定運放輸入端的保護電壓大小
推輓和開漏可以參考該文章:https://blog.csdn.net/qq_27016651/article/details/83096126