沁恆 CH559 GPIO 功能詳解


CH559 GPIO 的使用

GPIO,中文名為 通用輸入輸出,是一種比較新的接口,用於取代傳統的 PIO。CH559 的 GPIO 包含多種模式和功能,較為復雜。掌握 GPIO 是實現單片機應用的第一步,否則之后的操作將寸步難行。

單片的 IO 口驅動條件大概分為以下幾種:
1. 使用單片機輸出信號,輸出設備是 LED、NPN、繼電器等簡單外設,而且需要一定的驅動電流的(大約幾個mA)。
2. 使用單片機接收信號,輸入信號為 按鍵開關、光電傳感器 等簡單外設,通常輸出一定電流的(大約幾個 mA)。
3. 使用單片機完成控制信號,接受設備有多個,或者發送設備有多個。比如 IIC 總線上掛兩個設備,這些設備的任何一個都需要發送和接受數據的。
4. 使用單片機完成一對一的信號交換,比如 DS1302、DS18B20 的芯片的控制等,這些芯片一般輸入阻抗較高,主要是電壓驅動,而不需要太大電流(小於 1mA)。

CH559 的 GPIO 滿足以上所有要求,可以使用 推挽輸出輸入較大的電流,可以開啟上拉電阻,可以設置為輸入或者輸出模式,等等等等。

GPIO 的電路圖如下:(GPIO 圖片來自 CH559 芯片手冊)

GPIO原理圖

由於功能多,GPIO 的引腳圖比較復雜,圖可以分為以下幾個部分:

在 GPIO 中,最多余也是最簡單是上拉電阻的配置。其實上拉電阻設置這個功能與單片機軟件功能無關,可配置的上拉電阻主要是方便 PCB 設計用的。使用上拉電阻,可以把懸空的引腳固定在高電平,而且在設計外圍電路時可以不加上拉電阻,簡化電路圖,上拉電阻部分詳解:

GPIO上拉電阻

上拉電阻使用一個 PU 寄存器來控制,原理也非常簡單,在之后的圖解中略去不提。

接下是模擬輸入和數字輸入的區別,CH559 的 GPIO 可以用來做模數轉化。模擬輸入部分見下圖:

模數轉換

模擬輸入也非常的簡單,而數字輸入和輸出就比較復雜了,首先數字輸入輸出分為推挽模式和開漏模式,首先看 開漏的輸入和輸出。

開漏模式下,上管 PMOS 是一直關閉着的,輸出通過一個開路的 NMOS 來輸出,類似三極管的集電極開路模式(OC,開漏模式)。
雖然芯片使用 MOS 管,但開漏的名稱還是保留了下來,開漏模式主要用在多個芯片之間的通訊,比如 1 對 2 的通信、總線通信等等,開樓模式下需要接一個上拉電阻用於鉗位,每個接入開漏信號的芯片均可以輸出低電平從而使整個信號線呈現低電平。開漏的輸出如下:

開漏輸出

盡管方向寄存器 DIR = 1,使用數字輸出,但是這個開漏模式也支持輸入信號的,讓方向寄存器 DIR = 0,使用輸入模式看看。
開漏模式下的輸入:

開漏輸入

可見,開漏模式下的輸出模式支持信號的輸入,但開漏模式下的輸入模式可不會輸出任何信息。

推挽模式,推挽模式的邏輯結構相當復雜,首先是推挽模式下的輸出模式,見下圖:

推挽模式

推挽模式只能夠輸出,而且輸入輸出可以承載較大的電流,但推挽模式不能夠接收數據,最后還有高阻模式:

高阻模式

高阻模式下只能接收信號,不能發送數據,而且需要提前把接收數據的引腳輸出 1。

w(゚Д゚)w,好多模式啊,終於全部搞清楚了。GPIO 的部分到此結束。(⊙﹏⊙)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM