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配置成開漏輸出的模式。