金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上

GPIO信號完整性測試,GPIO電源完整性測試,GPIO時(shí)序測試,GPIO時(shí)鐘測試

單價(jià): 面議
發(fā)貨期限: 自買(mǎi)家付款之日起 天內發(fā)貨
所在地: 直轄市 北京
有效期至: 長(cháng)期有效
發(fā)布時(shí)間: 2023-12-17 04:51
最后更新: 2023-12-17 04:51
瀏覽次數: 92
采購咨詢(xún):
請賣(mài)家聯(lián)系我
發(fā)布企業(yè)資料
詳細說(shuō)明

GPIO_InitTypeDef structure

GPIO_InitTypeDef定義于文件“stm32f10x_gpio.h”: 

typedef struct  {

u16 GPIO_Pin;

GPIOSpeed_TypeDef GPIO_Speed;  

GPIOMode_TypeDef GPIO_Mode;  

}

GPIO_InitTypeDef;

GPIO_Pin

該參數選擇待設置的GPIO管腳,使用操作符“|”可以一次選中多個(gè)管腳??梢允褂孟卤碇械娜我饨M合。 

GPIO_Pin_None:   無(wú)管腳被選中  

GPIO_Pin_x:          選中管腳x(0--15)

GPIO_Pin_All:        選中全部管腳

GPIO_Speed  

GPIO_Speed:

用以設置選中管腳的速率。 

GPIO_Speed_10MHz: 輸出速率10MHz 

 GPIO_Speed_2MHz:  輸出速率2MHz

GPIO_Speed_50MHz: 輸出速率50MHz

GPIO_Mode

GPIO_Mode:

用以設置選中管腳的工作狀態(tài)。 

GPIO_Mode_AIN:                  模擬輸入

GPIO_Mode_IN_FLOATING: 浮空輸入  

GPIO_Mode_IPD:                  下拉輸入

GPIO_Mode_IPU:                  上 拉輸入  

GPIO_Mode_Out_OD:           開(kāi)漏輸出  

GPIO_Mode_Out_PP:             推挽輸出  

GPIO_Mode_AF_OD:            復用開(kāi)漏輸出  

GPIO_Mode_AF_PP:             復用推挽輸出

函數GPIO_StructInit

功能描述:把GPIO_InitStruct中的每一個(gè)參數按缺省值填入 例:

GPIO_InitTypeDef GPIO_InitStructure;  

GPIO_StructInit(&GPIO_InitStructure); 

GPIO_InitStruct:

GPIO_Pin:GPIO_Pin_All  

GPIO_Speed:GPIO_Speed_2MHz 

 GPIO_Mode:GPIO_Mode_IN_FLOATING

函數GPIO_ReadInputDataBit 

功能描述:讀取指定端口管腳的輸入 

例:

u8 ReadValue;

ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);

函數GPIO_ReadInputData

功能描述:讀取指定的GPIO端口輸入

u16 ReadValue;

ReadValue = GPIO_ReadInputData(GPIOC);

函數GPIO_ReadOutputDataBit 

功能描述:讀取指定端口管腳的輸出 

ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);

函數GPIO_ReadOutputData

功能描述:讀取指定的GPIO端口輸出 

ReadValue = GPIO_ReadOutputData(GPIOC);

函數GPIO_SetBits

功能描述:置位指定的數據端口位

例: 將端口GPIOA的第10、15腳置1(高電平) 

GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);

函數GPIO_ResetBits

功能描述:清除指定的數據端口位

例:將端口GPIOA的第10、15腳置0(低電平)

GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);

函數GPIO_WriteBit

功能描述:設置或者清除指定的數據端口位 

GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);

函數GPIO_Write

功能描述:向指定GPIO數據端口寫(xiě)入數據 

GPIO_Write(GPIOA, 0x1101);

函數GPIO_PinLockConfig

功能描述:鎖定GPIO管腳設置寄存器 

GPIO_PinLockConfig(GPIOA, GPIO_Pin_0|GPIO_Pin_1);

函數GPIO_EventOutputConfig

功能描述:選擇GPIO管腳用作事件輸出 例:

GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);

GPIO_PortSource

GPIO_PortSource用以選擇用作事件輸出的GPIO端口。

函數GPIO_EventOutputCmd

功能描述:使能或者失能事件輸出 例:

GPIO_EventOutputConfig(GPIO_PortSourceGPIOC, GPIO_PinSource6);  

GPIO_EventOutputCmd(ENABLE);

函數GPIO_PinRemapConfig 

功能描述:改變指定管腳的映射 例:

GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);

一.GPIO概述

1、共有8種模式,可以通過(guò)編程選擇:

1. 浮空輸入       2. 帶上拉輸入      3. 帶下拉輸入      4. 模擬輸入

5. 開(kāi)漏輸出——(此模式可實(shí)現hotpower說(shuō)的真雙向IO)       6. 推挽輸出

7. 復用功能的推挽輸出    8. 復用功能的開(kāi)漏輸出

模式7和模式8需根據具體的復用功能決定。      

2、專(zhuān)門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現對GPIO口的原子操作,即回避了設置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設置或清除I/O端口的操作不會(huì )被中斷處理打斷而造成誤動(dòng)作。

3、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統靈活設計。

4、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。這個(gè)速度是指I/O口驅動(dòng)電路的響應速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)(芯片內部在I/O口的輸出部分安排了多個(gè)響應速度不同的輸出驅動(dòng)電路,用戶(hù)可以根據自己的需要選擇合適的驅動(dòng)電路)。通過(guò)選擇速度來(lái)選擇不同的輸出驅動(dòng)模塊,達到的噪聲控制和降低功耗的目的。高頻的驅動(dòng)電路,噪聲也高,當不需要高的輸出頻率時(shí),請選用低頻驅動(dòng)電路,這樣非常有利于提高系統的EMI性能。當然如果要輸出較高頻率的信號,但卻選用了較低頻率的驅動(dòng)模塊,很可能會(huì )得到失真的輸出信號。  

    4.1各種接口的措施:      

       4.1.1對于串口,假如波特率只需115.2k,那么用2M的GPIO的引腳速度就夠了,既省電也噪聲小。

      4.1.2對于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引腳速度或許不夠,這時(shí)可以選用10M的GPIO引腳速度。

      4.1.3對于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引腳速度顯然不夠了,需要選用50M的GPIO的引腳速度。

    4.2 GPIO口設為輸入時(shí),輸出驅動(dòng)電路與端口是斷開(kāi),所以輸出速度配置無(wú)意義。   

    4.3 在復位期間和剛復位后,復用功能未開(kāi)啟,I/O端口被配置成浮空輸入模式。  

    4.4 所有端口都有外部中斷能力。為了使用外部中斷線(xiàn),端口必須配置成輸入模式。  

    4.5 GPIO口的配置具有上鎖功能,當配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復位才能解鎖。

5、所有I/O口兼容CMOS和TTL,多數I/O口兼容5V電平。

6、大電流驅動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。

7、具有獨立的喚醒I/O口。

8、很多I/O口的復用功能可以重新映射。

9、GPIO口的配置具有上鎖功能,當配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復位才能解鎖。此功能非常有利于在程序跑飛的情況下保護系統中其他的設備,不會(huì )因為某些I/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。

二.推挽結構

一般是指兩個(gè)三極管分別受兩互補信號的控制,總是在一個(gè)三極管導通的時(shí)候另一個(gè)截止.要實(shí)現線(xiàn)與需要用OC(open collector)門(mén)電路 .如果輸出級的有兩個(gè)三極管,始終處于一個(gè)導通、一個(gè)截止的狀態(tài),也就是兩個(gè)三級管推挽相連,這樣的電路結構稱(chēng)為推拉式電路或圖騰柱(Totem- pole)輸出電路(可惜,圖無(wú)法貼上)。當輸出低電平時(shí),也就是下級負載門(mén)輸入低電平時(shí),輸出端的電流將是下級門(mén)灌入T4;當輸出高電平時(shí),也就是下級負載門(mén)輸入高電平時(shí),輸出端的電流將是下級門(mén)從本級電源經(jīng) T3、D1 拉出。這樣一來(lái),輸出高低電平時(shí),T3 一路和 T4 一路將交替工作,從而減低了功耗,提高了每個(gè)管的承受能力。又由于不論走哪一路,管子導通電阻都很小,使RC常數很小,轉變速度很快。因此,推拉式輸出級既提高電路的負載能力,又提高開(kāi)關(guān)速度。供你參考。

推挽電路是兩個(gè)參數相同的三極管或MOSFET,以推挽方式存在于電路中,各負責正負半周的波形放大任務(wù),電路工作時(shí),兩只對稱(chēng)的功率開(kāi)關(guān)管每次只有一個(gè)導通,所以導通損耗小效率高。

輸出既可以向負載灌電流,也可以從負載抽取電流

三.開(kāi)漏電路

在電路設計時(shí)我們常常遇到開(kāi)漏(open drain)和開(kāi)集(open collector)的概念。所謂開(kāi)漏電路概念中提到的“漏”就是指MOSFET的漏極。同理,開(kāi)集電路中的“集”就是指三極管的集電極。開(kāi)漏電路就是指以MOSFET的漏極為輸出的電路。一般的用法是會(huì )在漏極外部的電路添加上拉電阻。完整的開(kāi)漏電路應該由開(kāi)漏器件和開(kāi)漏上拉電阻組成。

組成開(kāi)漏形式的電路有以下幾個(gè)特點(diǎn):

1. 利用 外部電路的驅動(dòng)能力,減少I(mǎi)C內部的驅動(dòng)。當IC內部MOSFET導通時(shí),驅動(dòng)電流是從外部的VCC流經(jīng)R pull-up ,MOSFET到GND。IC內部?jì)H需很下的柵極驅動(dòng)電流。如圖1。

2. 可以將多個(gè)開(kāi)漏輸出的Pin,連接到一條線(xiàn)上。形成 “與邏輯” 關(guān)系。如圖1,當PIN_A、PIN_B、PIN_C任意一個(gè)變低后,開(kāi)漏線(xiàn)上的邏輯就為0了。這也是I2C,SMBus等總線(xiàn)判斷總線(xiàn)占用狀態(tài)的原理。

3. 可以利用改變上拉電源的電壓,改變傳輸電平。如圖2, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了。     

4. 開(kāi)漏Pin不連接外部的上拉電阻,則只能輸出低電平(因此對于經(jīng)典的51單片機的P0口而言,要想做輸入輸出功能必須加外部上拉電阻,否則無(wú)法輸出高電平邏輯)。      

5. 標準的開(kāi)漏腳一般只有輸出的能力。添加其它的判斷電路,才能具備雙向輸入、輸出的能力。

應用中需注意:

1.   開(kāi)漏和開(kāi)集的原理類(lèi)似,在許多應用中我們利用開(kāi)集電路代替開(kāi)漏電路。例如,某輸入Pin要求由開(kāi)漏電路驅動(dòng)。則我們常見(jiàn)的驅動(dòng)方式是利用一個(gè)三極管組成開(kāi)集電路來(lái)驅動(dòng)它,即方便又節省成本。如圖3。

2. 上拉電阻R pull-up的 阻值 決定了 邏輯電平轉換的沿的速度 。阻值越大,速度越低功耗越小。反之亦然。

Push-Pull輸出就是一般所說(shuō)的推挽輸出,在CMOS電路里面應該較CMOS輸出更合適,應為在CMOS里面的push-pull輸出能力不可能做得雙極那么大。輸出能力看IC內部輸出極N管P管的面積。和開(kāi)漏輸出相比,push-pull的高低電平由IC的電源低定,不能簡(jiǎn)單的做邏輯操作等。 push-pull是現在CMOS電路里面用得多的輸出級設計方式。  at91rm9200 GPIO 模擬I2C接口時(shí)注意??!

四.OC、OD

集電極開(kāi)路門(mén)(集電極開(kāi)路 OC 或源極開(kāi)路OD)

open-drain是漏極開(kāi)路輸出的意思,相當于集電極開(kāi)路(open-collector)輸出,即ttl中的集電極開(kāi)路(oc)輸出。一般用于線(xiàn)或、線(xiàn)與,也有的用于電流驅動(dòng)。

open-drain是對mos管而言,open-collector是對雙極型管而言,在用法上沒(méi)啥區別。

開(kāi)漏形式的電路有以下幾個(gè)特點(diǎn):

1.利用外部電路的驅動(dòng)能力,減少I(mǎi)C內部的驅動(dòng)。 或驅動(dòng)比芯片電源電壓高的負載.      2. 可以將多個(gè)開(kāi)漏輸出的Pin,連接到一條線(xiàn)上。通過(guò)一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關(guān)系。這也是I2C,SMBus等總線(xiàn)判斷總線(xiàn)占用狀態(tài)的原理。如果作為圖騰輸出必須接上拉電阻。接容性負載時(shí),下降延是芯片內的晶體管,是有源驅動(dòng),速度較快;上升延是無(wú)源的外接電阻,速度慢。如果要求速度高電阻選擇要小,功耗會(huì )大。所以負載電阻的選擇要兼顧功耗和速度。

3.可以利用改變上拉電源的電壓,改變傳輸電平。例如加上上拉電阻就可以提供TTL/CMOS電平輸出等。

4.開(kāi)漏Pin不連接外部的上拉電阻,則只能輸出低電平。一般來(lái)說(shuō),開(kāi)漏是用來(lái)連接不同電平的器件,匹配電平用的。

5.正常的CMOS輸出級是上、下兩個(gè)管子,把上面的管子去掉就是OPEN-DRAIN了。這種輸出的主要目的有兩個(gè):電平轉換和線(xiàn)與。      6.由于漏級開(kāi)路,所以后級電路必須接一上拉電阻,上拉電阻的電源電壓就可以決定輸出電平。這樣你就可以進(jìn)行任意電平的轉換了。

7.線(xiàn)與功能主要用于有多個(gè)電路對同一信號進(jìn)行拉低操作的場(chǎng)合,如果本電路不想拉低,就輸出高電平,因為OPEN-DRAIN上面的管子被拿掉,高電平是靠外接的上拉電阻實(shí)現的。(而正常的CMOS輸出級,如果出現一個(gè)輸出為高另外一個(gè)為低時(shí),等于電源短路。)

8.OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點(diǎn),就是帶來(lái)上升沿的延時(shí)。因為上升沿是通過(guò)外接上拉無(wú)源電阻對負載充電,所以當電阻選擇小時(shí)延時(shí)就小,但功耗大;反之延時(shí)大功耗小。所以如果對延時(shí)有要求,則建議用下降沿輸出。

?五.線(xiàn)或邏輯與線(xiàn)與邏輯

在一個(gè)結點(diǎn)(線(xiàn))上, 連接一個(gè)上拉電阻到電源 VCC 或 VDD 和 n 個(gè) NPN 或 NMOS 晶體管的集電極 C 或漏極 D, 這些晶體管的發(fā)射極 E 或源極 S 都接到地線(xiàn)上, 只要有一個(gè)晶體管飽和, 這個(gè)結點(diǎn)(線(xiàn))就被拉到地線(xiàn)電平上.

因為這些晶體管的基極注入電流(NPN)或柵極加上高電平(NMOS), 晶體管就會(huì )飽和, 所以這些基極或柵極對這個(gè)結點(diǎn)(線(xiàn))的關(guān)系是或非 NOR 邏輯. 如果這個(gè)結點(diǎn)后面加一個(gè)反相器, 就是或 OR 邏輯.

注:個(gè)人理解:線(xiàn)與,接上拉電阻至電源。(~A)&(~B)=~(A+B),由公式較容易理解線(xiàn)與此概念的由來(lái) ;

如果用下拉電阻和 PNP 或 PMOS 管就可以構成與非 NAND 邏輯, 或用負邏輯關(guān)系轉換與/或邏輯.

注:線(xiàn)或,接下拉電阻至地。(~A)+(~B)=~(AB);

這些晶體管常常是一些邏輯電路的集電極開(kāi)路 OC 或源極開(kāi)路 OD 輸出端. 這種邏輯通常稱(chēng)為線(xiàn)與/線(xiàn)或邏輯, 當你看到一些芯片的 OC 或 OD 輸出端連在一起, 而有一個(gè)上拉電阻時(shí), 這就是線(xiàn)或/線(xiàn)與了, 但有時(shí)上拉電阻做在芯片的輸入端內.

順便提示如果不是 OC 或 OD 芯片的輸出端是不可以連在一起的, 總線(xiàn) BUS 上的雙向輸出端連在一起是有管理的, 同時(shí)只能有一個(gè)作輸出, 而其他是高阻態(tài)只能輸入

D0BB1430-7FF6-49FA-B873-29F085FC493D.pngE047D8E8-197E-458A-92A4-D896607BE9F1.png

相關(guān)信號產(chǎn)品
相關(guān)信號產(chǎn)品
相關(guān)產(chǎn)品
 
汶上县| 黄龙县| 洞头县| 任丘市| 健康| 永年县| 福鼎市| 博罗县| 当阳市| 祥云县| 西峡县| 宿迁市| 桃园市| 鸡泽县| 柳江县| 逊克县| 乐陵市| 宽城| 江山市| 遂溪县| 防城港市| 安龙县| 陇南市| 渭南市| 天全县| 蓝山县| 枞阳县| 潞西市| 肇州县| 临桂县| 沙田区| 无棣县| 红原县| 勐海县| 富平县| 西乡县| 射洪县| 龙岩市| 读书| 宁德市| 赤壁市|