1. 程式人生 > >I/O口

I/O口

1.0 關於I/O  口

發現在Cortex-M3裡,對於GPIO的配置種類有8種之多:

(1)GPIO_Mode_AIN 模擬輸入                            //一般用用ad輸入
(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 複用推輓輸出

 

2、關於上下拉

上拉就是將不確定的訊號通過一個電阻嵌位在高電平!電阻同時起限流作用!下拉同理!

上拉和下拉電阻的作用就是:1、使IO口的電平穩定在高或低電平,2、為了增加IO口拉流的能力

上拉是對器件注入電流,下拉是輸出電流

上拉電阻R pull-up的阻值決定了邏輯電平轉換的沿的速度。阻值越大,速度越低功耗越小。反之亦然.一般1~10K阻值選擇。

 

3.0 關於推輓與開漏

 

 

                          開漏                                                                                        推輓

 

 

推輓輸出:既可以向負載灌電流,也可以從負載抽取電流.​

開漏輸出:完整的開漏電路應由開漏器件和開漏上拉電阻組成。這裡的上拉電阻R的阻值決定了邏輯電平轉換的上升/下降沿的速度。阻值越大,速度越低,功耗越小。因此在選擇上拉電阻時要兼顧功耗和速度。標準的開漏腳一般只有輸出的能力。新增其它的判斷電路,才能具備雙向輸入、輸出的能力。​

 

特點總結

開漏輸出:實現電平轉換,實現”線與“邏輯(I2C等介面匯流排應用中),利用外電路提高驅動能力,利用上拉電阻提供高電平,顯然,沒有上拉電阻只能輸出低電平。

推輓輸出:可以吸電流也可以灌電流,相對於開漏,輸出電平取決於IC電源。然而,一條總線上只能有一個推輓輸出期間。

如果你想要電平轉換速度快的話,那麼就選push-pull,但是缺點是功耗相對會大些。

如果你想要功耗低,且同時具有“線與”的功能,那麼就用open-drain的模式。

用途

根據開漏輸出和推輓輸出的特點,可以很容易判斷在以下應用中應當工作在推輓輸出模式(或者複用推輓輸出):

驅動應用中,驅動LED、蜂鳴器等

USART_TX、USART_CK、USART_RTS、MOSI、SPI主模式SCK、CAN_TX等需要較強驅動能力的場合

而在I2C等介面匯流排應用中,由於需要“線與”判斷匯流排佔用狀態,以及需要使用電平轉換的場合需要將I/O配置成開漏輸出的模式。