Skip to main content

接入U盘

Python脚本

开发者套件支持接入USB音频设备,如麦克风或扬声器并调用Python脚本进行录音和播放,Python脚本可集成至其他使用USB音频设备的场景,方便用户进行二次开发。

:::note 说明 开发者套件默认仅root用户可访问声卡,普通用户若需使用,请通过root用户将普通用户添加到对应用户组,以HwHiAiUser用户为例。

usermod -a -G audio HwHiAiUser

:::

准备依赖

  • Ubuntu22.04镜像:

    pip3 install sounddevice soundfile
    apt-get install libportaudio2
  • OpenEuler22.03镜像:

    pip3 install sounddevice soundfile
    yum install portaudio portaudio-devel

录音设备样例代码

  1. 编写录音样例代码。

    import sounddevice as sd
    from scipy.io import wavfile

    # 设置录音时长(以秒为单位)
    duration = 5
    # 设置采样率,采样率根据设备而定,常见采样率有44100, 48000,16000等
    sample_rate = 16000
    # 录音设备ID,即对应 arecord -l 回显中每个设备的card编号
    device_index = 0
    # 录音通道数,根据设备而定,常见通道数为1,2
    channels = 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)
  2. 执行脚本录制音频。

    python3 record.py

    回显如下:

    Recording started...
    Recording finished.
    Audio saved to output.wav

播放设备样例代码

  1. 编写播放音频样例代码。

    import sounddevice as sd
    import 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.")
  2. 执行脚本播放音频。

    python3 play.py

    回显如下:

    Playing recorded audio...
    Playback finished.

父主题: 对接USB音频设备

对接USB拓展坞

当前开发者套件的USB接口仅支持扩展USB 3.0 Type-A的拓展坞 ,不支持扩展以太网口、HDMI、USB Type-C接口等其他接口。

图1 拓展坞样例图

  1. 将拓展坞接入开发者套件任意一个空闲USB接口(USB 3.0 Type-A)。
  2. 参见对接USB摄像头对接USB音频设备将设备接入USB拓展坞,并验证设备是否可用。

接入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盘。

  1. 将U盘接入开发者套件任意一个空余USB接口。

  2. root用户登录开发者套件,执行lsusb命令,可以通过回显看到USB接口接入的U盘。

    Bus 007 Device 006: ID 0781:5571 xxxDisk Corp. Cruzer Fit
  3. 执行以下命令查看U盘在系统生成的挂载点。

    cd /dev

    ll

    新生成的挂载点如下所示:

    brw-rw---- 1 root disk 8, 0 Sep 9 19:35 sda
    brw-rw---- 1 root disk 8, 1 Sep 9 19:35 sda1

父主题: 对接存储

接入M.2 Key M硬盘

接口介绍

  • M.2 Key M连接器支持用户配置NVMe SSD。
  • 默认选择NVMe模式,支持2280规格形态。

接口示例

  1. M.2 Key M接口安装硬盘时,先将硬盘倾斜30度左右,再将硬盘插入M.2 Key M接口,如图1所示。

    图1 插入硬盘

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

    图2 M.2 Key M接口外接硬盘

接口调用命令

  1. 使用root用户登录开发者套件。

  2. 执行以下命令,查看硬盘是否插入开发者套件并被正确识别。

    fdisk -l

    Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectors
    Disk model: xxx SSD 980 500GB
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 16384 bytes / 131072 bytes
    Disklabel type: dos
    Disk identifier: 0xf5a897e4
    Device Boot Start End Sectors Size Id Type
    /dev/nvme0n1p1 2048 976773167 976771120 465.8G 83 Linux

    表1 打印信息说明

    字段描述
    /dev/nvme0n1NVMe硬盘挂载位置及内存信息
    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连接器定义

管脚号名称电平管脚名称电平
13.3V3.3V25.0V5V
3I2C7_SDA3.3V45.0V5V
5I2C7_SCL3.3V6GND-
7GPCLK03.3V8UART0_TX3.3V
9GND-10UART0_RX3.3V
11GPIO173.3V12PCM CLK3.3V
13GPIO273.3V14GND-
15GPIO223.3V16GPIO233.3V
173.3V3.3V18GPIO243.3V
19SPI0_MOSI3.3V20GND-
21SPI0_MISO3.3V22GPIO253.3V
23SPI0_SCLK3.3V24SPI0_CS03.3V
25GND-26GPIO73.3V
27I2C6_SDA3.3V28I2C6_SCL3.3V
29GPCLK13.3V30GND-
31GPIO63.3V32PWM03.3V
33GPIO133.3V34GND-
35PCM FS3.3V36GPIO163.3V
37GPIO263.3V38PCM DIN3.3V
39GND-40PCM DOUT3.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
13V3 POWER3.3V3V3电源--------
25V POWER5V5V电源--------
3I2C7_SDA3.3VI2C7数据信号,内部上拉4.7KGPIO2SDA7SPI6_SDOGPIO2_12UCTS2---
45V POWER5V5V电源--------
5I2C7_SCL3.3VI2C7时钟信号,内部上拉4.7KGPIO3SCL7SPI6_SCLKGPIO2_11URTS2---
6GND-GND--------
7GPCLK03.3V通用时钟输出0GPIO4I2S0_MCLKGPCLK0GPIO7_02UTXD7SPI7_CSN--
8UART0_TX3.3VUART数据发送GPIO14UTXD0DDR_UTXDSDA6GPIO0_14SPI5_SDO--
9GND-GND--------
10UART0_RX3.3VUART数据接收GPIO15URXD0DDR_UTXDSCL6GPIO0_15SPI5_SCLK--
11GPIO173.3V通用GPIO管脚17GPIO17URXD2CAN_RX3GPIO2_18----
12PCM CLK3.3VPCM CLK数据时钟信号GPIO18I2S0_BCLK_TXSPI8_CSNGPIO7_03----
13GPIO273.3V通用GPIO管脚27GPIO27PWR_SEQ4INT_TPM_NGPIO1_06TRAP_RSV11---
14GND-GND--------
15GPIO223.3V通用GPIO管脚22GPIO22UTXD1GPIO2_15-----
16GPIO233.3V通用GPIO管脚23GPIO23URXD1GPIO2_16-----
173.3V POWER3.3V3V3电源--------
18GPIO243.3V通用GPIO管脚24GPIO24PWM1_DETGPIO0_25TRAP_RSV13----
19SPI0_MOSI3.3VSPI0主机输出,从机输入GPIO10SPI2_SDOSPI5_SDOGPIO0_22MDC_DC_MD1---
20GND-GND--------
21SPI0_MISO3.3VSPI0主机输入,从机输出GPIO9SPI2_SDISPI5_SDISCL10GPIO0_23---
22GPIO253.3V通用GPIO管脚25GPIO25PERST2_NGPIO0_02TRAP_RSV1----
23SPI0_SCLK3.3VSPI0时钟信号GPIO11SPI2_SCLKSPI5_SCLKGPIO0_20MDC_DC_MD0---
24SPI0_CS03.3VSPI0片选信号GPIO8SPI2_CSNSPI5_CSNSDA10GPIO0_21---
25GND-GND--------
26GPIO73.3V通用GPIO管脚07GPIO7URTX2CAN_RX2GPIO2_19----
27I2C6_SDA3.3VI2C6数据信号,内部上拉4.7K--------
28I2C6_SCL3.3VI2C6时钟信号,内部上拉4.7K--------
29GPCLK13.3V通用时钟输出1GPIO5I2S1_MCLKI2S_MCLK_DBGGPCLK1GPIO7_07URXD7SPI7_SDI-
30GND-GND--------
31GPIO63.3V通用GPIO管脚06GPIO6UCTS2CAN_TX2GPIO2_20----
32PWM03.3VPWM0信号,预留功能,可用于调节Sensor光圈GPIO12PWM3DDR_URXDGPIO1_01----
33GPIO133.3V通用GPIO管脚13GPIO13GPIO4_00USB0_OVRCYRPRB_B[47]----
34GND-GND--------
35PCM FS3.3VPCM FS帧同步时钟信号GPIO19I2S0_WS_TXSPI8_SDIGPIO7_04----
36GPIO163.3V通用GPIO管脚16GPIO16UTXD2CAN_TX3GPIO2_17----
37GPIO263.3V通用GPIO管脚26GPIO26PERST3_NGPIO0_03TRAP_RSV2----
38PCM DIN3.3VPCM DIN接收数据信号GPIO20I2S0_SD_RXSPI8_SDOGPIO7_06GPCLK0---
39GND-GND--------
40PCM DOUT3.3VPCM DOUT发送数据信号GPIO21I2S0_SD_TXSPI8_SCLKGPIO7_05GPCLK1---

:::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接口

在线提单