新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM8 通用輸入輸出口--GPIO

STM8 通用輸入輸出口--GPIO

作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
簡介

通用輸入/ 輸出口用于芯片和外部進(jìn)行數(shù)據(jù)傳輸。一個IO端口可以包括多達(dá)8 個引腳,每個引腳可以被獨(dú)立編程作為數(shù)字輸入或者數(shù)字輸出口。另外部分口還可能會有如模擬輸入,外部中斷,片上外設(shè)的輸入/ 輸出等復(fù)用功能。但是在同一時刻僅有一個復(fù)用功能可以映射到引腳上。復(fù)用功能的映射是通過選項(xiàng)字節(jié)控制的。請參考數(shù)據(jù)手冊關(guān)于選項(xiàng)字節(jié)的描述。
每個端口都分配有一個輸出數(shù)據(jù)寄存器,一個輸入引腳寄存器,一個數(shù)據(jù)方向寄存器,一個選擇寄存器,和一個配置寄存器。一個I/O 口工作在輸入還是輸出是取決于該口的數(shù)據(jù)方向寄存器的狀態(tài)。

本文引用地址:http://m.butianyuan.cn/article/201611/316708.htm

GPIO主要功能
● 端口的各個位可以被單獨(dú)配置
● 可選擇的輸入模式:浮動輸入和帶上拉輸入
● 可選擇的輸出模式:推挽式輸出和開漏輸出
● 數(shù)據(jù)輸入和輸出采用獨(dú)立的寄存器
● 外部中斷可以單獨(dú)使能和關(guān)閉
● 輸出擺率控制用以減少EMC噪聲
● 片上外設(shè)的I/O 功能復(fù)用
● 當(dāng)作為模擬輸入時可以關(guān)閉輸入施密特觸發(fā)器來降低功耗
● 在數(shù)據(jù)輸出鎖存時支持讀-修改-寫
● 輸入兼容 5V 電壓
● I/O 口工作電壓范圍為1.6 V 到V DDIOmax

I/O 的配置和使用
每一個端口都有一個輸出數(shù)據(jù)寄存器 (ODR),一個引腳輸入寄存器 (IDR) 和一個數(shù)據(jù)方向寄存器 (DDR) 總是同相關(guān)的。
控制寄存器1(CR1)和控制寄存器2(CR2)用于對輸入/ 輸出進(jìn)行配置。任何一個I/O 引腳可以通過對DDR,ODR,CR1 和CR2寄存器的相應(yīng)位進(jìn)行編程來配置。
寄存器中的位n對應(yīng)于口的引腳 n 。
各種不同配置總結(jié)。
IO 口配置表

輸入模式
將DDRx 位清零就選擇了輸入模式。在該模式下讀IDR 寄存器的位將返回對應(yīng)I/O 引腳上的電平值。
來了解關(guān)于模擬輸入,外部中斷,和施密特觸發(fā)使能/ 關(guān)閉的細(xì)節(jié)。
理論上可以通過軟件配置得到四種不同的輸入模式:懸浮不帶中斷輸入,懸浮帶中斷輸入,上拉不帶中斷輸入和上拉帶中斷輸入。但是在實(shí)際情況下不是所有的口都具有外部中斷能力和上拉,用戶應(yīng)參考數(shù)據(jù)手冊中關(guān)于每個引腳的實(shí)際硬件性能描述來了解更多細(xì)節(jié)。

輸出模式
將DDRx 位置1就選擇了輸出模式。在該模式下向ODR寄存器的位寫入數(shù)據(jù)將會通過鎖存器輸出對應(yīng)數(shù)字值到I/O 口。讀IDR 的位將會返回相應(yīng)的I/O 引腳電平值。通過軟件配置CR1,CR2寄存器可以得到不同的輸出模式:上拉輸出,開漏輸出。
復(fù)位后的默認(rèn)配置
復(fù)位之后,所有的引腳都是懸浮輸入模式。

沒有使用的引腳
沒有使用的I/O 引腳必須連接到一個固定的電平值?;蛘呤巧侠蛘呤窍吕?/p>

功耗模式
低功耗模式對GPIO口的影響

輸入模式的詳述
復(fù)用功能輸入
部分I/O 口可以被用作復(fù)用功能輸入。例如:可以被用來作為輸入到定時器的輸入捕捉口。復(fù)用的輸入功能是不會自動選擇的,用戶可以通過寫相應(yīng)的外設(shè)寄存器的控制位來選擇復(fù)用功能。

對于復(fù)用功能的輸入,用戶必須通過配置DDR和CR1 寄存器設(shè)置將對應(yīng)的I/O 口設(shè)為為懸浮或是上拉輸入。

中斷功能
用戶可以在I/O 引腳為輸入模式時通過設(shè)置Px_CR2 寄存器的相應(yīng)位來配置某個I/O 作為外部輸入中斷模式。在該配置下,I/O 引腳上的一個信號沿或是低電平會產(chǎn)生一個中斷請求。
在EXTI_CR[2:1]寄存器中對于每一個中斷向量都可以獨(dú)立編程為上升沿或下降沿觸發(fā)。
外部中斷只有在對應(yīng)I/O 口被設(shè)置為輸入模式下才有效。
中斷屏蔽
可以通過對Px_CR2 寄存器的相應(yīng)位進(jìn)行編程來單獨(dú)使能/ 關(guān)閉外部中斷功能。復(fù)位后外部中斷是關(guān)閉的。

模擬通道
DC外設(shè)可以選擇某些I/O 口作為模擬輸入通道。如下面一節(jié)描述,當(dāng)使用模擬通道的時候,DC_TDR 寄存器的輸入施密特觸發(fā)器必須被關(guān)閉。
推薦的和不推薦的模擬輸入配置

施密特觸發(fā)器
部分I/O 口包括一個內(nèi)嵌的輸入施密特觸發(fā)器??梢酝ㄟ^ADC_TDR 施密特觸發(fā)器禁止寄存器來使能/ 禁止施密特觸發(fā)器。

輸出模式詳述
復(fù)用功能的輸出
復(fù)用輸出功能為外設(shè)輸出到外部或者I/O 引腳提供一個方便的操作方法。當(dāng)復(fù)用功能使能時,復(fù)用功能模塊接管了輸出鎖存寄存器(Px_ODR) 并強(qiáng)制Px_ODR 相應(yīng)的位為1。
復(fù)用輸出功能可以是上拉或者開漏輸出,取決于外設(shè)本身和控制寄存器1(Px_CR1) ,輸出擺率取決于控制寄存器2 (Px_CR2)的值。
例如:
考慮到要達(dá)到最佳性能,SPI輸出引腳必須設(shè)置為上拉,快速擺率。UART_Tx可以被配置為或者是上拉或者是開漏帶外部上拉來實(shí)現(xiàn)多從機(jī)的配置。

擺率控制
輸出擺率可以使用CR2 的相應(yīng)位通過軟件控制。置位CR相應(yīng)位選擇為10MHz的輸出頻率。該功能既可以用在開漏也可以用在帶上拉的輸出模式I/O 口,輸出類型為O3 或者O4。請參考引腳描述表來了解每個口的輸出類型。



關(guān)鍵詞: STM8輸入輸出口GPI

評論


技術(shù)專區(qū)

關(guān)閉