40Pin接口介绍
接入M.2 Key M硬盘
接口介绍
- M.2 Key M连接器支持用户配置NVMe SSD。
- 默认选择NVMe模式,支持2280规格形态。
接口示例
-
M.2 Key M接口安装硬盘时,先将硬盘倾斜30度左右,再将硬盘插入M.2 Key M接口,如图1所示。
图1 插入硬盘

-
最后使用M3.0十字螺丝刀拧紧1个M3x4的螺钉,使硬盘与开发者套件的底板平行,如图2红框标注所示。
图2 M.2 Key M接口外接硬盘

接口调用命令
-
使用root用户登录开发者套件。
-
执行以下命令,查看硬盘是否插入开发者套件并被正确识别。
fdisk -l
Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectorsDisk model: xxx SSD 980 500GBUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 16384 bytes / 131072 bytesDisklabel type: dosDisk identifier: 0xf5a897e4Device Boot Start End Sectors Size Id Type/dev/nvme0n1p1 2048 976773167 976771120 465.8G 83 Linux字段 描述 /dev/nvme0n1 NVMe硬盘挂载位置及内存信息 Disk model 磁盘型号 Units 柱面单元大小 Sector size (logical/physical) 扇区大小(逻辑/物理) I/O size (minimum/optimal) IO大小(最小/最佳) Disklabel type 磁盘标签类型 Disk identifier 磁盘标识符 Device 分区名称 Boot 是否允许标准DOS PC主引导记录引导该分区(该标记对Linux的GRUB引导装载程序没有意义) Start 起始柱面 End 结束柱面 Sectors 扇区个数 Size 分区大小 ID 分区的预期用途
- 82:交互分区
- 83:数据分区Type 分区类型
父主题: 对接存储
40Pin连接器定义
表1 40Pin连接器定义
| 管脚号 | 名称 | 电平 | 管脚 | 名称 | 电平 |
|---|---|---|---|---|---|
| 1 | 3.3V | 3.3V | 2 | 5.0V | 5V |
| 3 | I2C7_SDA | 3.3V | 4 | 5.0V | 5V |
| 5 | I2C7_SCL | 3.3V | 6 | GND | - |
| 7 | GPCLK0 | 3.3V | 8 | UART0_TX | 3.3V |
| 9 | GND | - | 10 | UART0_RX | 3.3V |
| 11 | GPIO17 | 3.3V | 12 | PCM CLK | 3.3V |
| 13 | GPIO27 | 3.3V | 14 | GND | - |
| 15 | GPIO22 | 3.3V | 16 | GPIO23 | 3.3V |
| 17 | 3.3V | 3.3V | 18 | GPIO24 | 3.3V |
| 19 | SPI0_MOSI | 3.3V | 20 | GND | - |
| 21 | SPI0_MISO | 3.3V | 22 | GPIO25 | 3.3V |
| 23 | SPI0_SCLK | 3.3V | 24 | SPI0_CS0 | 3.3V |
| 25 | GND | - | 26 | GPIO7 | 3.3V |
| 27 | I2C6_SDA | 3.3V | 28 | I2C6_SCL | 3.3V |
| 29 | GPCLK1 | 3.3V | 30 | GND | - |
| 31 | GPIO6 | 3.3V | 32 | PWM0 | 3.3V |
| 33 | GPIO13 | 3.3V | 34 | GND | - |
| 35 | PCM FS | 3.3V | 36 | GPIO16 | 3.3V |
| 37 | GPIO26 | 3.3V | 38 | PCM DIN | 3.3V |
| 39 | GND | - | 40 | PCM DOUT | 3.3V |
:::note 说明
- NC插针在板内无连接。
- 1.8V输出电流最大为500mA,3.3V输出电流最大为500mA,5V输出电流最大为1A。 :::
UART
UART0是8脚和10脚,用于Ascend AI处理器的默认调试串口(console),波特率115200。
UART2是26脚和31脚,可以用于扩展及与其他模块通信。
图1 调试串口示意图
SPI
SPI-CS0、SPI-CLK、SPI-MISO、SPI-MOSI四线SPI接口可以外接各种传感器,只支持master模式。
I2C
I2C2-SCL和I2C2-SDA组成I2C接口,40Pin连接器共有I2C6和I2C7两组接口,可以用来外接传感器,与其他模块通信等,速率最高支持400KHz。
GPIO
GPIO0、GPIO1、GPIO2管脚作为输出管脚,必须外置上拉电阻增加驱动能力,建议上拉电阻的值为1K~10K。
开发者套件有9个独立的GPIO管脚可以使用。
父主题: 使用40Pin接口
40Pin接口介绍
开发者套件提供了40Pin低速GPIO接口,包括UART、SPI、I2C等接口,40Pin接口的管脚名称、电平、功能描述、复用关系如表1所示。
表1 40Pin扩展接口定义
| 管脚号 | 名称 | 电平 | 默认功能描述 | GPIO位号 | 复用信号1 | 复用信号2 | 复用信号3 | 复用信号4 | 复用信号5 | 复用信号6 | 复用信号7 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 3V3 POWER | 3.3V | 3V3电源 | - | - | - | - | - | - | - | - |
| 2 | 5V POWER | 5V | 5V电源 | - | - | - | - | - | - | - | - |
| 3 | I2C7_SDA | 3.3V | I2C7数据信号,内部上拉4.7K | GPIO2 | SDA7 | SPI6_SDO | GPIO2_12 | UCTS2 | - | - | - |
| 4 | 5V POWER | 5V | 5V电源 | - | - | - | - | - | - | - | - |
| 5 | I2C7_SCL | 3.3V | I2C7时钟信号,内部上拉4.7K | GPIO3 | SCL7 | SPI6_SCLK | GPIO2_11 | URTS2 | - | - | - |
| 6 | GND | - | GND | - | - | - | - | - | - | - | - |
| 7 | GPCLK0 | 3.3V | 通用时钟输出0 | GPIO4 | I2S0_MCLK | GPCLK0 | GPIO7_02 | UTXD7 | SPI7_CSN | - | - |
| 8 | UART0_TX | 3.3V | UART数据发送 | GPIO14 | UTXD0 | DDR_UTXD | SDA6 | GPIO0_14 | SPI5_SDO | - | - |
| 9 | GND | - | GND | - | - | - | - | - | - | - | - |
| 10 | UART0_RX | 3.3V | UART数据接收 | GPIO15 | URXD0 | DDR_UTXD | SCL6 | GPIO0_15 | SPI5_SCLK | - | - |
| 11 | GPIO17 | 3.3V | 通用GPIO管脚17 | GPIO17 | URXD2 | CAN_RX3 | GPIO2_18 | - | - | - | - |
| 12 | PCM CLK | 3.3V | PCM CLK数据时钟信号 | GPIO18 | I2S0_BCLK_TX | SPI8_CSN | GPIO7_03 | - | - | - | - |
| 13 | GPIO27 | 3.3V | 通用GPIO管脚27 | GPIO27 | PWR_SEQ4 | INT_TPM_N | GPIO1_06 | TRAP_RSV11 | - | - | - |
| 14 | GND | - | GND | - | - | - | - | - | - | - | - |
| 15 | GPIO22 | 3.3V | 通用GPIO管脚22 | GPIO22 | UTXD1 | GPIO2_15 | - | - | - | - | - |
| 16 | GPIO23 | 3.3V | 通用GPIO管脚23 | GPIO23 | URXD1 | GPIO2_16 | - | - | - | - | - |
| 17 | 3.3V POWER | 3.3V | 3V3电源 | - | - | - | - | - | - | - | - |
| 18 | GPIO24 | 3.3V | 通用GPIO管脚24 | GPIO24 | PWM1_DET | GPIO0_25 | TRAP_RSV13 | - | - | - | - |
| 19 | SPI0_MOSI | 3.3V | SPI0主机输出,从机输入 | GPIO10 | SPI2_SDO | SPI5_SDO | GPIO0_22 | MDC_DC_MD1 | - | - | - |
| 20 | GND | - | GND | - | - | - | - | - | - | - | - |
| 21 | SPI0_MISO | 3.3V | SPI0主机输入,从机输出 | GPIO9 | SPI2_SDI | SPI5_SDI | SCL10 | GPIO0_23 | - | - | - |
| 22 | GPIO25 | 3.3V | 通用GPIO管脚25 | GPIO25 | PERST2_N | GPIO0_02 | TRAP_RSV1 | - | - | - | - |
| 23 | SPI0_SCLK | 3.3V | SPI0时钟信号 | GPIO11 | SPI2_SCLK | SPI5_SCLK | GPIO0_20 | MDC_DC_MD0 | - | - | - |
| 24 | SPI0_CS0 | 3.3V | SPI0片选信号 | GPIO8 | SPI2_CSN | SPI5_CSN | SDA10 | GPIO0_21 | - | - | - |
| 25 | GND | - | GND | - | - | - | - | - | - | - | - |
| 26 | GPIO7 | 3.3V | 通用GPIO管脚07 | GPIO7 | URTX2 | CAN_RX2 | GPIO2_19 | - | - | - | - |
| 27 | I2C6_SDA | 3.3V | I2C6数据信号,内部上拉4.7K | - | - | - | - | - | - | - | - |
| 28 | I2C6_SCL | 3.3V | I2C6时钟信号,内部上拉4.7K | - | - | - | - | - | - | - | - |
| 29 | GPCLK1 | 3.3V | 通用时钟输出1 | GPIO5 | I2S1_MCLK | I2S_MCLK_DBG | GPCLK1 | GPIO7_07 | URXD7 | SPI7_SDI | - |
| 30 | GND | - | GND | - | - | - | - | - | - | - | - |
| 31 | GPIO6 | 3.3V | 通用GPIO管脚06 | GPIO6 | UCTS2 | CAN_TX2 | GPIO2_20 | - | - | - | - |
| 32 | PWM0 | 3.3V | PWM0信号,预留功能,可用于调节Sensor光圈 | GPIO12 | PWM3 | DDR_URXD | GPIO1_01 | - | - | - | - |
| 33 | GPIO13 | 3.3V | 通用GPIO管脚13 | GPIO13 | GPIO4_00 | USB0_OVRCYR | PRB_B[47] | - | - | - | - |
| 34 | GND | - | GND | - | - | - | - | - | - | - | - |
| 35 | PCM FS | 3.3V | PCM FS帧同步时钟信号 | GPIO19 | I2S0_WS_TX | SPI8_SDI | GPIO7_04 | - | - | - | - |
| 36 | GPIO16 | 3.3V | 通用GPIO管脚16 | GPIO16 | UTXD2 | CAN_TX3 | GPIO2_17 | - | - | - | - |
| 37 | GPIO26 | 3.3V | 通用GPIO管脚26 | GPIO26 | PERST3_N | GPIO0_03 | TRAP_RSV2 | - | - | - | - |
| 38 | PCM DIN | 3.3V | PCM DIN接收数据信号 | GPIO20 | I2S0_SD_RX | SPI8_SDO | GPIO7_06 | GPCLK0 | - | - | - |
| 39 | GND | - | GND | - | - | - | - | - | - | - | - |
| 40 | PCM DOUT | 3.3V | PCM DOUT发送数据信号 | GPIO21 | I2S0_SD_TX | SPI8_SCLK | GPIO7_05 | GPCLK1 | - | - | - |
:::note 说明
- NC插针在板内无连接。
- 3.3V输出电流最大为500mA,5V输出电流最大为1A。
- 表格中包括复用寄存器基地址,各个GPIO管脚对应寄存器的偏移地址,以及各管脚可以复用的功能。
- 40Pin接口配置复用功能时需查询本表格,找到对应管脚的地址,修改寄存器后即可配置成功。 :::
UART
UART0是8脚和10脚,用于昇腾AI处理器的默认调试串口(console),波特率115200。
图1 调试串口示意图
SPI
SPI-CS0、SPI-CLK、SPI-MISO、SPI-MOSI四线SPI接口可以外接各种传感器。
I2C
I2C2-SCL和I2C2-SDA组成I2C接口,40Pin连接器共有I2C6和I2C7两组接口,可以用来外接传感器,与其他模块通信等,速率最高支持400KHz。
PCM
PCM-CLK、PCM FS、PCM DIN、PCM DOUT四线PCM接口可以外接各种音频设备。
GPIO
Atlas 200I DK A2 开发者套件有11个管脚默认为GPIO。
父主题: 使用40Pin接口
40Pin接口复用关系
开发者套件的40Pin接口中共有26个功能管脚可复用,复用关系如表1所示。
开发者套件的40Pin扩展接口涉及4组复用寄存器组,每组的复用寄存器基地址以及对应的管脚号、GPIO位号、复用寄存器取值等信息如表1所示。
其中Pad信号是端口的引脚名称,复用信号X是该端口所支持的复用功能。
表1 复用寄存器信息
复用寄存器基地址 | 管脚号 | GPIO位号 | 控制器偏移地址 | Pad信号 | 复用寄存器取值:复用信号1 | 复用寄存器取值:复用信号2 | 复用寄存器取值:复用信号3 | 复用寄存器取值:复用信号4 | 复用寄存器取值:复用信号5 | 复用寄存器取值:复用信号6 | 复用寄存器取值:复用信号7 |
|---|---|---|---|---|---|---|---|---|---|---|---|
0x00C4000000 | 32 | GPIO12 | 0x0D0 | PWM3 | 0x0:pad_pwm3 | 0x1:pad_ddr_urxd | 0x3:pad_gpio1_01 | 0x7:pad_prb_a[29] | - | - | - |
8 | GPIO14 | 0x0B4 | UTXD0 | 0x0:pad_utxd0 | 0x1:pad_ddr_utxd | 0x2:pad_sda6 | 0x3:pad_gpio0_14 | 0x4:pad_spi5_sdo | 0x7:pad_prb_a[22] | - | |
10 | GPIO15 | 0x0B8 | URXD0 | 0x0:pad_urxd0 | 0x1:pad_ddr_urxd | 0x2:pad_scl6 | 0x3:pad_gpio0_15 | 0x4:pad_spi5_sclk | 0x7:pad_prb_a[23] | - | |
18 | GPIO24 | 0x100 | PWM1_DET | 0x0:pad_pwm1_det | 0x3:pad_gpio0_25 | 0x6:pad_trap_rsv13 | 0x7:pad_prb_a[40] | - | - | - | |
22 | GPIO25 | 0x018 | PERST2_N | 0x0:pad_perst2_n | 0x3:pad_gpio0_02 | 0x6:pad_trap_rsv1 | 0x7:pad_prb_a[2] | - | - | - | |
37 | GPIO26 | 0x01C | PERST3_N | 0x0:pad_perst3_n | 0x3:pad_gpio0_03 | 0x6:pad_trap_rsv2 | 0x7:pad_prb_a[3] | - | - | - | |
13 | GPIO27 | 0x0F4 | PWR_SEQ4 | 0x0:pad_pwr_seq4 | 0x2:pad_int_tpm_n | 0x3:pad_gpio1_06 | 0x6:pad_trap_rsv11 | 0x7:pad_prb_a[37] | - | - | |
0x0082320000 | 24 | GPIO8 | 0x064 | SPI0_CSN | 0x0:pad_spi0_csn | 0x2:pad_sda11 | 0x3:pad_gpio2_26 | 0x4:pad_utxd3 | 0x7:pad_prb_e[15] | - | - |
23 | GPIO11 | 0x060 | SPI0_SCLK | 0x0:pad_spi0_sclk | 0x2:pad_scl12 | 0x3:pad_gpio2_25 | 0x4:pad_urts3 | 0x7:pad_prb_e[14] | - | - | |
19 | GPIO10 | 0x068 | SPI0_SDO | 0x0:pad_spi0_sdo | 0x2:pad_sda12 | 0x3:pad_gpio2_27 | 0x4:pad_ucts3 | 0x7:pad_prb_e[16] | - | - | |
21 | GPIO9 | 0x06C | SPI0_SDI | 0x0:pad_spi0_sdi | 0x2:pad_scl11 | 0x3:pad_gpio2_28 | 0x4:pad_urxd3 | 0x7:pad_prb_e[17] | - | - | |
31 | GPIO6 | 0x04C | UCTS2 | 0x0:pad_ucts2 | 0x1:pad_can_tx2 | 0x3:pad_gpio2_20 | 0x7:pad_prb_e[9] | - | - | - | |
26 | GPIO7 | 0x048 | URTS2 | 0x0:pad_urts2 | 0x1:pad_can_rx2 | 0x3:pad_gpio2_19 | 0x7:pad_prb_e[8] | - | - | - | |
3 | GPIO2 | 0x02C | SDA7 | 0x0:pad_sda7 | 0x1:pad_spi6_sdo | 0x3:pad_gpio2_12 | 0x4:pad_ucts2 | 0x7:pad_prb_e[1] | - | - | |
5 | GPIO3 | 0x028 | SCL7 | 0x0:pad_scl7 | 0x1:pad_spi6_sclk | 0x3:pad_gpio2_11 | 0x4:pad_urts2 | 0x7:pad_prb_e[0] | - | - | |
36 | GPIO16 | 0x040 | UTXD2 | 0x0:pad_utxd2 | 0x1:pad_can_tx3 | 0x3:pad_gpio2_17 | 0x7:pad_prb_e[6] | - | - | - | |
11 | GPIO17 | 0x044 | URXD2 | 0x0:pad_urxd2 | 0x1:pad_can_rx3 | 0x3:pad_gpio2_18 | 0x7:pad_prb_e[7] | - | - | - | |
15 | GPIO22 | 0x038 | UTXD1 | 0x0:pad_utxd1 | 0x3:pad_gpio2_15 | 0x7:pad_prb_e[4] | - | - | - | - | |
16 | GPIO23 | 0x03C | URXD1 | 0x0:pad_urxd1 | 0x3:pad_gpio2_16 | 0x7:pad_prb_e[5] | - | - | - | - | |
0x0400140000 | 7 | GPIO4 | 0x030 | I2S0_MCLK | 0x0:pad_i2s0_mclk | 0x2:pad_gpclk0 | 0x3:pad_gpio7_02 | 0x4:pad_utxd7 | 0x5:pad_spi7_csn | 0x7:pad_prb_d[2] | - |
29 | GPIO5 | 0x044 | I2S1_MCLK | 0x0:pad_i2s1_mclk | 0x1:pad_i2s_mclk_dbg | 0x2:pad_gpclk1 | 0x3:pad_gpio7_07 | 0x4:pad_urxd7 | 0x5:pad_spi7_sdi | 0x7:pad_prb_d[7] | |
12 | GPIO18 | 0x034 | I2S0_BCLK_TX | 0x0:pad_i2s0_bclk_tx | 0x2:pad_spi8_csn | 0x3:pad_gpio7_03 | 0x7:pad_prb_d[3] | - | - | - | |
35 | GPIO19 | 0x038 | I2S0_WS_TX | 0x0:pad_i2s0_ws_tx | 0x2:pad_spi8_sdi | 0x3:pad_gpio7_04 | 0x7:pad_prb_d[4] | - | - | - | |
40 | GPIO21 | 0x03C | I2S0_SD_TX | 0x0:pad_i2s0_sd_tx | 0x2:pad_spi8_sclk | 0x3:pad_gpio7_05 | 0x4:pad_gpclk1 | 0x7:pad_prb_d[5] | - | - | |
38 | GPIO20 | 0x040 | I2S0_SD_RX | 0x0:pad_i2s0_sd_rx | 0x2:pad_spi8_sdo | 0x3:pad_gpio7_06 | 0x4:pad_gpclk0 | 0x7:pad_prb_d[6] | - | - | |
0x00A0140000 | 33 | GPIO13 | 0x0BC | GPIO4_00 | 0x0:pad_gpio4_00 | 0x2:pad_usb0_ovrcur | 0x7:pad_prb_b[47] | - | - | - | - |
父主题: 使用40Pin接口
准备
获取源码
- 下载[软件包](https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.RC3/Ascend-hdk-310b-sdk-soc_23.0.rc3.zip)。
- 解压后获取工具链安装包toolchain.tar.gz与源码包Ascend310B-source tar.gz。
环境准备
- 一台带网络端口且操作系统为Ubuntu 22.04的x86 Linux服务器。
- Linux服务器已安装python、make、gcc、unzip、pigz、bison、flex、libncurses-dev、squashfs-tools、bc、device-tree-compiler、libssl-dev、cmake与交叉编译工具链。
:::note 说明
-
所有的依赖必须用root用户进行安装。
-
用户可以通过如下命令进行安装上述依赖。
apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake :::
工具链安装
-
登录Linux服务器。
-
执行如下命令,切换至root用户。
su - root
-
执行如下命令,创建/opt/compiler目录。
mkdir /opt/compiler
-
将交叉编译工具链包“toolchain.tar.gz”上传至/opt/compiler目录。详细操作请参见Windows与开发者套件的文件传输。
-
进入到/opt/compiler目录。
cd /opt/compiler
-
执行如下命令,解压交叉编译工具。
tar -xvf toolchain.tar.gz -C ./
-
在配置文件中增加交叉编译工具链路径。
echo "export PATH=/opt/compiler/toolchain/bin:$PATH: " >> /etc/profile
-
执行如下命令,使环境变量生效。
source /etc/profile
-
执行如下命令,查看交叉编译工具链版本。
aarch64-target-linux-gnu-gcc -v
显示有版本信息,则表明安装工具链成功。
父主题: 接口复用操作
在线提单