又色又爽的视频-天天插伊人-黄色短视频免费观看,中文字幕精品亚洲无线码二区,精品久久91,欧美色就是色

[玩轉(zhuǎn)Atlas 200 DK之案例開(kāi)發(fā)系列]外設(shè)GPIO使用

[玩轉(zhuǎn)Atlas 200 DK之案例開(kāi)發(fā)系列]外設(shè)GPIO使用

[玩轉(zhuǎn)Atlas 200 DK之案例開(kāi)發(fā)系列]外設(shè)GPIO使用

一、開(kāi)發(fā)板對(duì)外輸出腳說(shuō)明

l 開(kāi)發(fā)板輸出管腳

Atlas 200 DK開(kāi)發(fā)板共有40個(gè)管腳輸出,其中有7個(gè)GPIO腳供用戶控制使用。

GPIO0 GPIO1 GPIO3 GPIO4 GPIO5 GPIO6 GPIO7

開(kāi)發(fā)板管腳數(shù)字對(duì)應(yīng)可以看開(kāi)發(fā)板40PIN 的兩邊板子標(biāo)記,有標(biāo)記哪個(gè)是1腳,哪個(gè)是40腳,然后和下圖對(duì)應(yīng)接IO口使用。

 

l GPIO管腳說(shuō)明

        直接從昇騰AI處理器引出的GPIO有:GPIO0、GPIO1。

        由PCA6416引出的GPIO有:GPIO3、GPIO4、GPIO5、GPIO6、GPIO7。

 

 

 

 

由于GPIO3,4,5,6,7是通過(guò)IO口擴(kuò)展芯片擴(kuò)展的IO口,控制是使用I2C方式控制PCA6416.讀取控制速度不如GPIO0,GPIO1,如果程序中有使用輸入口作為檢測(cè)使用(while(1)中一直監(jiān)控IO口輸入狀態(tài),例如按鍵檢測(cè))請(qǐng)優(yōu)先使用GPIO0,GPIO1.

二、GPIO軟件代碼控制使用

1. 獲取GPIO操作權(quán)限。

首先讓開(kāi)發(fā)板默認(rèn)用戶 HwHiAiUser 獲得開(kāi)發(fā)板硬件軟件控制權(quán)限,這個(gè)可以登錄開(kāi)發(fā)板在開(kāi)發(fā)板/etc/rc.local 中修改,增加如下語(yǔ)句

echo 504 >/sys/class/gpio/export

echo 444 >/sys/class/gpio/export

chown -R HwHiAiUser /sys/class/gpio/gpio444

chown -R HwHiAiUser /sys/class/gpio/gpio504

chown -R HwHiAiUser /sys/class/gpio/gpio444/direction

chown -R HwHiAiUser /sys/class/gpio/gpio504/direction

chown -R HwHiAiUser /sys/class/gpio/gpio444/value

chown -R HwHiAiUser /sys/class/gpio/gpio504/value

chown -R HwHiAiUser /dev/i2c-1

chown -R HwHiAiUser /dev/i2c-2

chown -R HwHiAiUser /dev/ttyAMA0

chown -R HwHiAiUser /dev/ttyAMA1

usermod -aG HwHiAiUser HwHiAiUser

 

以上指令總體上目的就是引出GPIO0,GPIO1,并且讓HwHiAiUser獲取GPIO0 ,GPIO1,I2C等硬件的軟件控制權(quán)限,如果rc.local已經(jīng)加上了這些指令,就不需要重新添加了。

 

 

2. 開(kāi)發(fā)板GPIO樣例代碼下載。

   到碼云上下載GPIO demo源碼,https://gitee.com/Atlas200DK 用MindStudio打開(kāi)使用。

   代碼中包含2個(gè)模塊,其中

GPIO文件夾封裝了一個(gè)GPIO類(lèi),封裝了3個(gè)接口函數(shù)。

 

3. GPIO模塊接口函數(shù)說(shuō)明。

GPIO 3個(gè)接口函數(shù)如下。

int gpio_set_direction(int pin,int direction);  

int gpio_set_value(int pin,int val);      

int gpio_get_value(int pin,int *val); 

 

int gpio_set_direction(int pin,int direction); 

這個(gè)函數(shù)是設(shè)置IO口的狀態(tài),輸入還是輸出。

參數(shù) pin 只能設(shè)置為(0,1,3,4,5,6,7),控制對(duì)應(yīng)的IO口。

參數(shù) direction 設(shè)置輸入還是輸出  0代表輸入,1代表輸出。

 

int gpio_set_value(int pin,int val); 

這個(gè)函數(shù)是設(shè)置IO口的輸出高電平還是低電平,前提是已經(jīng)用gpio_set_direction設(shè)置這個(gè)口為輸出口,否則無(wú)效。

參數(shù) pin 只能設(shè)置為(0,1,3,4,5,6,7),控制對(duì)應(yīng)的IO口。

參數(shù) val設(shè)置輸出高電平還是低電平  0代表低電平,1代表高電平。

 

int gpio_get_value(int pin,int *val); 

這個(gè)函數(shù)是獲取IO口的輸入高電平還是低電平,前提是已經(jīng)用gpio_set_direction設(shè)置這個(gè)口為輸入口,否則讀取數(shù)值不對(duì)。

參數(shù) pin 只能設(shè)置為(0,1,3,4,5,6,7),控制對(duì)應(yīng)的IO口。

參數(shù) val , int value ,將&value放入到函數(shù)中,獲取value值。Value 0代表低電平,1代表高電平。



 

4.Custom文件夾里面包含了如何調(diào)用這3個(gè)接口函數(shù)的樣例代碼。

 在Custom.cpp中。

 

以上就可以對(duì)Atlas 200 DK 的7個(gè)gpio口進(jìn)行軟件控制了。有其他疑問(wèn)可以到論壇咨詢(xún)。

其他接口

Atlas 200 AI加速模塊提供UART,I2C,SPI等其他接口,功能描述如下:

表3-9 Atlas 200 AI加速模塊連接器功能描述

模塊劃分 管腳名稱(chēng) 主功能 功能描述
UART0 UART0_RXD RXD UART0接收數(shù)據(jù)。調(diào)試、系統(tǒng)打印、外設(shè)擴(kuò)展等。
UART0_TXD TXD UART0發(fā)送數(shù)據(jù)。調(diào)試、系統(tǒng)打印、外設(shè)擴(kuò)展等。
I2C0 I2C0_SCL SCL I2C0總線時(shí)鐘。Atlas 200 AI加速模塊帶外管理接口。
用戶可以讀取Atlas 200 AI加速模塊的硬件ID、EEPROM信息。
Atlas  200 AI加速模塊內(nèi)有4.7K上拉電阻,Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
I2C0_SDA SDA I2C0總線數(shù)據(jù),Atlas 200 AI加速模塊帶外管理接口。
用戶可以讀取Atlas 200 AI加速模塊的硬件ID、EEPROM信息。
Atlas  200 AI加速模塊內(nèi)有4.7K上拉電阻,Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
I2C1 I2C1_SCL SCL I2C1總線時(shí)鐘。Atlas 200 AI加速模塊內(nèi)已串33Ω電阻,用戶板做外部上拉,使用用戶接口電源上拉。
I2C1_SDA SDA I2C1總線數(shù)據(jù)。Atlas 200 AI加速模塊內(nèi)已串33Ω電阻,用戶板做外部上拉,使用用戶接口電源上拉。
SPI1 SPI1_CS0_N CS0 SPI1片選0。SPI接口只支持MASTER mode。
SPI1_CS1_N GPIO65 SPI1片選1。
SPI1_CLK CLK SPI1時(shí)鐘。Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
SPI1_MOSI MOSI SPI 1 Master OUT/Slave IN,Atlas 200  AI加速模塊內(nèi)已串33Ω電阻。
復(fù)用上電strap功能,不使用要懸空,外部不能有上拉。
SPI1_MISO MISO SPI 1 Master IN/Slave Out。
SPI2 SPI2_CS_N CS SPI2片選0,SPI接口只支持MASTER mode。
SPI2_CLK CLK SPI2時(shí)鐘。Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
SPI2_MOSI/EMMC_SD_SEL MOSI SPI 2 Master OUT/Slave IN。Atlas 200  AI加速模塊內(nèi)已串33Ω電阻。
上電階段做strap功能:
EMMC與SD卡模式選擇信號(hào),由Atlas 200 AI加速模塊外部高低電平配置。0:EMMC,1:SD。
用戶板做外部上下拉,上拉電阻使用VBUCK8_1V8,不用MMC接口時(shí)可懸空。
SPI2_MISO MISO SPI 2 Master IN/Slave Out。
SPI3& I2C2 SDA SDA I2C2 SDA(復(fù)用功能:SPI3片選1-/SPI3_CS)Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
I2C/UART 用戶板做外部上拉;使用用戶接口電源上拉。
  I2C2  SCL SCL I2C2 SCL(復(fù)用功能:SPI3時(shí)鐘-SPI3_CLK)Atlas 200 AI加速模塊內(nèi)已串33Ω電阻。
  用戶板做外部上拉,使用用戶接口電源上拉。
  UART1_TXD TXD UART1 TXD(復(fù)用功能:SPI 3 Master OUT/Slave IN)
  UART1_RXD RXD UART1 RXD(復(fù)用功能:SPI 3 Master In/Slave Out)
上電 HOST_POWER_EN - Atlas 200 AI加速模塊上電控制,Atlas 200  AI加速模塊的電源使能信號(hào),高有效。拉高后5ms Atlas 200 AI加速模塊上電(內(nèi)部BOARD  ID與EEPROM電路為獨(dú)立供電,主電源上電后即工作)。
內(nèi)部有上拉電阻,不用可懸空,用戶不用做上拉。
信號(hào)要嚴(yán)格保證時(shí)序,建議使用OD接口控制。
HOST_RST_N HOST_RST_N - Atlas 200 AI加速模塊熱復(fù)位接口,1.8V,接到Ascend  310的復(fù)位管腳,復(fù)位時(shí)間大于150us。
信號(hào)需要用OD接口或用二極管隔離,防止倒灌。
信號(hào)要嚴(yán)格保證時(shí)序,默認(rèn)狀態(tài)要為高電平。內(nèi)部有上拉電阻,不用可懸空。作為Atlas 200  AI加速模塊的復(fù)位接口,必須預(yù)留該接口。
中斷輸出 INT_OUT GPIO69 發(fā)送給host的alert信號(hào),低有效。用戶板做外部上拉,上拉電阻使用VBUCK8_1V8。
中斷輸入 INT_IN GPIO1 host發(fā)送給Ascend 310中斷信號(hào),非下電接口,可用來(lái)喚醒Atlas 200  AI加速模塊。
用戶板做外部上拉,上拉電阻使用VBUCK8_1V8。
風(fēng)扇控制 PWM0 GPIO12 風(fēng)扇PWM控制信號(hào)1,可做普通GPIO使用。
PWM1 GPIO13 風(fēng)扇PWM控制信號(hào)2,可做普通GPIO使用,可做風(fēng)扇轉(zhuǎn)速檢測(cè)(中斷模式)。
GPIO GPIO73 GPIO73 通用GPIO,可做中斷輸入,不使用可以懸空。
GPIO2 GPIO2 通用GPIO模式:可做中斷輸入,不使用可以懸空。
低功耗模式:使用Atlas 200  AI加速模塊低功耗模式時(shí),需預(yù)留該管腳作為休眠狀態(tài)標(biāo)志位,GPIO2輸出高電平表示休眠狀態(tài),輸出低電平表示喚醒狀態(tài)。
GPIO6 GPIO6 通用GPIO模式:不使用可以懸空。
低功耗模式:使用Atlas 200  AI加速模塊低功耗模式時(shí),需預(yù)留該管腳作為使能信號(hào),用于控制模塊進(jìn)行休眠與喚醒,當(dāng)GPIO6輸入高電平,使能Atlas 200  AI加速模塊深度休眠,低電平使能喚醒。默認(rèn)需配置為低電平。
GPIO_RST_OUT GPIO_RST_OUT GPIO_RST_OUT 輸出給單板的復(fù)位信號(hào)。在SoC系統(tǒng)復(fù)位時(shí)輸出為低,直到軟件配置輸出為高,用于復(fù)位單板相關(guān)器件。
BOOT_MODE BOOT_MD0 GPIO95 上電過(guò)程做為strap功能,配置Atlas 200 AI加速模塊的BOOT模式。
用戶板做外部上下拉;上拉電阻使用VBUCK8_1V8。
000 on-chip-rom + SFC(xloader) + PCIe(UEFI, EP mode only)。
BOOT_MD1 GPIO96 001 on-chip-rom  + USB加載。
BOOT_MD2 GPIO97 010 on-chip-rom  + SFC(SPI Nor)加載(xloader+UEFI),缺省。
在位檢測(cè) P_DETECT_IN - Atlas 200  AI加速模塊在位檢測(cè)信號(hào)。2個(gè)pin腳分布在連接器兩端,并在Atlas 200 AI加速模塊內(nèi)部PCB連接在一起。
P_DETECT_OUT 其一接到host接口并做上拉,另外一個(gè)信號(hào)接到板外的下地電阻。上拉電源無(wú)特殊要求。
  多個(gè)Atlas 200  AI加速模塊場(chǎng)景可以把在位檢測(cè)串聯(lián)使用。
槽位ID SLOT_SEL1 ADC8 Atlas 200  AI加速模塊 ADC8信號(hào),多個(gè)Atlas 200 AI加速模塊場(chǎng)景下,區(qū)分Atlas 200 AI加速模塊槽位號(hào)。
單個(gè)ADC可支持10個(gè)檔位,2個(gè)SLOT可支持多Atlas 200 AI加速模塊。
Atlas  200 AI加速模塊內(nèi)部上拉100K電阻到ADC電源。用戶板接電阻分壓下地。電阻參考ID分壓表。如果只有一個(gè)Atlas 200  AI加速模塊使用,就統(tǒng)一都下拉,默認(rèn)為00。
SLOT_SEL0 ADC7 Atlas 200  AI加速模塊 ADC7信號(hào),多個(gè)Atlas 200 AI加速模塊場(chǎng)景下,區(qū)分Atlas 200 AI加速模塊槽位號(hào)。
單個(gè)ADC可支持10個(gè)檔位,2個(gè)SLOT可支持多Atlas 200 AI加速模塊。
Atlas  200 AI加速模塊內(nèi)部上拉100K電阻到ADC電源。用戶板接電阻分壓下地。電阻參考ID分壓表。
I2C地址選擇 ADD_SEL GPIO74 Atlas 200 AI加速模塊 I2C0地址選擇信號(hào),可支持2個(gè)Atlas 200 AI加速模塊共用I2C地址。
Atlas  200 AI加速模塊內(nèi)部采用1K上拉,默認(rèn)拉高。用戶板可用100Ω下拉電阻改變地址。
Ascend  310的I2C0地址通過(guò)槽位ID做區(qū)分。
Atlas  200 AI加速模塊內(nèi)部2個(gè)器件I2C地址(7bit):
EEPROM:ADD_SEL=1,1010001;ADD_SEL=0,1010000。
I2C擴(kuò)展IC:ADD_SEL=1,0100001;ADD_SEL=0,0100000。
預(yù)留接口 RSVD - 預(yù)留接口,懸空不接。
電源輸入 VSYS - 3.5-4.5V供電,典型值推薦3.8V,電流8A以上。
GND GND - 電源回流地。

 

GPIO接口電平特性

表3-10 GPIO電平參數(shù)表(VDDIO電壓范圍:+1.62 ~ +1.98V)

 

參數(shù) 符號(hào) 最小值 典型值 最大值 單位
輸入低電平 Vil -0.3 - 0.35*VDDIO V
輸入高電平 Vih 0.65*VDDIO - 1.98 V
門(mén)限值 Vt 0.87 0.97 1.07 V
內(nèi)部上拉電阻 Rpu 19k 26k 39k ohm
內(nèi)部下拉電阻 Rpd 18k 24k 34k ohm
輸出低電平 Vol - - 0.45 V
輸出高電平 Voh VDDIO-0.45 - - V

 

I2C接口電平特性

表3-11 I2C電平參數(shù)表(VDDIO電壓范圍:+1.62 ~ +1.98V)

 

參數(shù) 符號(hào) 最小值 典型值 最大值 單位
輸入低電平 Vil -0.3 - 0.35*VDDIO V
輸入高電平 Vih 0.65*VDDIO - 1.98 V
門(mén)限值 Vt 0.91 1.01 1.13 V
內(nèi)部上拉電阻 Rpu 32k 48k 79k ohm
內(nèi)部下拉電阻 Rpd 30k 44k 68k ohm
輸出低電平 Vol - - 0.45 V
輸出高電平 Voh VDDIO-0.45 - - V

 

訂閱快訊

通過(guò)快訊訂閱,您將及時(shí)收到我們的信息更新通知。