接入U盘
Python脚本
开发者套件支持接入USB音频设备,如麦克风或扬声器并调用Python脚本进行录音和播放,Python脚本可集成至其他使用USB音频设备的场景,方便用户进行二次开发。
:::note 说明 开发者套件默认仅root用户可访问声卡,普通用户若需使用,请通过root用户将普通用户添加到对应用户组,以HwHiAiUser用户为例。
usermod -a -G audio HwHiAiUser
:::
准备依赖
-
Ubuntu22.04镜像:
pip3 install sounddevice soundfileapt-get install libportaudio2 -
OpenEuler22.03镜像:
pip3 install sounddevice soundfileyum install portaudio portaudio-devel
录音设备样例代码
-
编写录音样例代码。
import sounddevice as sdfrom scipy.io import wavfile# 设置录音时长(以秒为单位)duration = 5# 设置采样率,采样率根据设备而定,常见采样率有44100, 48000,16000等sample_rate = 16000# 录音设备ID,即对应 arecord -l 回显中每个设备的card编号device_index = 0# 录音通道数,根据设备而定,常见通道数为1,2channels = 1# 设置输出音频文件名称output_file = "output.wav"# 开始录音print("Recording started...")audio = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=channels, blocking=True, device=device_index)print("Recording finished.")# 将录音保存为wav格式的文件wavfile.write(output_file, sample_rate, audio)print("Audio saved to", output_file) -
执行脚本录制音频。
python3 record.py回显如下:
Recording started...Recording finished.Audio saved to output.wav
播放设备样例代码
-
编写播放音频样例代码。
import sounddevice as sdimport soundfile as sf# 播放设备ID,即对应 aplay -l 回显中每个设备的card编号device_index = 0# 设置录音文件路径filepath = "output.wav"# 读取录音数据和采样率data, sample_rate = sf.read(filepath)print("Playing recorded audio...")sd.play(data, samplerate=sample_rate, blocking=True, device=device_index)print("Playback finished.") -
执行脚本播放音频。
python3 play.py回显如下:
Playing recorded audio...Playback finished.
父主题: 对接USB音频设备
对接USB拓展坞
当前开发者套件的USB接口仅支持扩展USB 3.0 Type-A的拓展坞 ,不支持扩展以太网口、HDMI、USB Type-C接口等其他接口。
图1 拓展坞样例图

接入U盘
接口介绍
Atlas 200I DK A2 开发者套件对外提供两个Type A接口类型USB接口,兼容USB 3.0(SuperSpeed),USB 2.0(HighSpeed)通信协议,可外接U盘。
接口示例
图1 USB 3.0 Type-A接口

:::note 说明 图示USB 3.0 Type-A接口从上到下分别为USB 3.0 Type-A接口1与USB 3.0 Type-A接口2。 :::
接口调用命令
开发者套件支持接入U盘作为外接存储介质,本节介绍如何接入并测试U盘。
-
将U盘接入开发者套件任意一个空余USB接口。
-
以root用户登录开发者套件,执行lsusb命令,可以通过回显看到USB接口接入的U盘。
Bus 007 Device 006: ID 0781:5571 xxxDisk Corp. Cruzer Fit -
执行以下命令查看U盘在系统生成的挂载点。
cd /dev
ll
新生成的挂载点如下所示:
brw-rw---- 1 root disk 8, 0 Sep 9 19:35 sdabrw-rw---- 1 root disk 8, 1 Sep 9 19:35 sda1
父主题: 对接存储
接入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表1 打印信息说明
字段 描述 /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接口
在线提单