STM32之GPIO開漏(Push-pull)和推輓(open-drain)輸出
阿新 • • 發佈:2019-02-12
STM32GPIO介紹:
- 每一個GPIO包括4個32bit的控制暫存器(GPIOx_MODER,GPIOx_OTYPER,GPIOx_OSPEEDRandGPIOx_PUPDR);2個32bit的資料暫存器(GPIOx_IDR,GPIOx_ODR);1個32位的復位/置位暫存器(GPIOx_BSRR);1個32位的時鐘暫存器(GPIOx_LCKR);2個32位的複用功能暫存器(GPIOx_AFRH,GPIOx_AFRL).
- 在描述GPIO的時候有兩個名詞是開漏(Push-pull)和推輓(open-drain),以前也接觸過,但還是不明白,究其原理,今天抽出時間特來分析一下:
通過上圖我們可以看到在GPIO的輸出控制器有一個P-MOS和N-MOS的組合,用Multisim軟體進行模擬;
推輓輸出:
開漏輸出:
推輓輸出的特點:能夠真正輸出高電平和低電平,且驅動能力很強,不能實現線與功能,也不支援電平轉換。
開漏輸出的特點:開漏輸出想要輸出高電平必須由外部上拉提供,這種特性可以實現電平的轉換,可以實現線與功能,但是開漏輸出的低電平驅動能力很強。
具體要使用推輓還是開漏要視具體情況而設定。
下面是我參考學習的一些文件:
[1]http://blog.csdn.net/techexchangeischeap/article/details/72569999
[2]http://blog.csdn.net/lostand/article/details/70052918