日韩专区一区,亚洲va综合va国产va中文,黄色精品国产,欧美黑人一级视频

[玩轉Atlas 200 DK之案例開發系列]外設GPIO使用

[玩轉Atlas 200 DK之案例開發系列]外設GPIO使用

[玩轉Atlas 200 DK之案例開發系列]外設GPIO使用

一、開發板對外輸出腳說明

l 開發板輸出管腳

Atlas 200 DK開發板共有40個管腳輸出,其中有7個GPIO腳供用戶控制使用。

GPIO0 GPIO1 GPIO3 GPIO4 GPIO5 GPIO6 GPIO7

開發板管腳數字對應可以看開發板40PIN 的兩邊板子標記,有標記哪個是1腳,哪個是40腳,然后和下圖對應接IO口使用。

 

l GPIO管腳說明

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

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

 

 

 

 

由于GPIO3,4,5,6,7是通過IO口擴展芯片擴展的IO口,控制是使用I2C方式控制PCA6416.讀取控制速度不如GPIO0,GPIO1,如果程序中有使用輸入口作為檢測使用(while(1)中一直監控IO口輸入狀態,例如按鍵檢測)請優先使用GPIO0,GPIO1.

二、GPIO軟件代碼控制使用

1. 獲取GPIO操作權限。

首先讓開發板默認用戶 HwHiAiUser 獲得開發板硬件軟件控制權限,這個可以登錄開發板在開發板/etc/rc.local 中修改,增加如下語句

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等硬件的軟件控制權限,如果rc.local已經加上了這些指令,就不需要重新添加了。

 

 

2. 開發板GPIO樣例代碼下載。

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

   代碼中包含2個模塊,其中

GPIO文件夾封裝了一個GPIO類,封裝了3個接口函數。

 

3. GPIO模塊接口函數說明。

GPIO 3個接口函數如下。

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); 

這個函數是設置IO口的狀態,輸入還是輸出。

參數 pin 只能設置為(0,1,3,4,5,6,7),控制對應的IO口。

參數 direction 設置輸入還是輸出  0代表輸入,1代表輸出。

 

int gpio_set_value(int pin,int val); 

這個函數是設置IO口的輸出高電平還是低電平,前提是已經用gpio_set_direction設置這個口為輸出口,否則無效。

參數 pin 只能設置為(0,1,3,4,5,6,7),控制對應的IO口。

參數 val設置輸出高電平還是低電平  0代表低電平,1代表高電平。

 

int gpio_get_value(int pin,int *val); 

這個函數是獲取IO口的輸入高電平還是低電平,前提是已經用gpio_set_direction設置這個口為輸入口,否則讀取數值不對。

參數 pin 只能設置為(0,1,3,4,5,6,7),控制對應的IO口。

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



 

4.Custom文件夾里面包含了如何調用這3個接口函數的樣例代碼。

 在Custom.cpp中。

 

以上就可以對Atlas 200 DK 的7個gpio口進行軟件控制了。有其他疑問可以到論壇咨詢。

其他接口

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

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

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

 

GPIO接口電平特性

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

 

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

 

I2C接口電平特性

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

 

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

 

訂閱快訊

通過快訊訂閱,您將及時收到我們的信息更新通知。