芯片介绍

SPVXX系列芯片是一颗集高性能的AI Audio芯片,采用RISC-V CPU+uDSP+NPU多核异构架构,其中CPU为RISC-V D25F核,主频最高超过360MHz,uDSP和NPU为普林针对场景自研优化设计,满足音频场景高性能、高能效比的要求,集成了高性能的双路ADC、DAC、0V直驱耳机放大器和USB 高速2.0接口,其中ADC的动态范围达到105dB,THD+N低于-90dB, DAC的动态范围达到105dB,THD+N低于-90dB。同时具备丰富的外设接口,如UART,SPI,I2C等;配合普林自研的AI降噪算法、AI回声消除算法、AI啸叫抑制算法,非常适合话务降噪、游戏耳机、直播声卡的应用场景。

整体效果

产品选型表

型号SPV6040ASPV6040BSPV6040CSPV5068SPV7068B1SPV7068B4
应用方向耳机、音频DSP降噪耳机、音频DSP降噪耳机、音频DSPHIFI应用音频主控及DSP音频主控及DSP
封装QFN40QFN40QFN40QFN68QFN68QFN68
CPURISC-V D25FRISC-V D25FRISC-V D25FRISC-V D25FRISC-V D25FRISC-V D25F
NPU、DSP自研自研自研自研自研自研
主频360M400MHz360M360M360M400MHz
Flash1MB1MB1MB4MB4MB4MB
IRAM256KB256KB256KB256KB256KB256KB
DLM256KB256KB256KB256KB256KB256KB
AudioADC221222
AudioLine-out222111
HeadPhone支持支持支持支持支持支持
DMIC222444
USB2.0支持支持支持支持支持支持
UART222333
IIS111200
IIC111222
LRADC111333
GPIO988323232
规格书点击下载点击下载点击下载点击下载点击下载点击下载

关于DEMO板

demo板介绍

1.SPV6040B AI降噪核心板,方便在原机器上快速接入降噪等功能,作为效果评估或直接作为核心板贴片到主控板上量产使用。

1722331767556

模块资料预览【点我

2.SPV6040B AI降噪评估板,适合客户在原始SDK基础上开发自己的业务功能,实现产品个性化和差异化。

1722332814059

SPV6040B AI降噪评估板资料预览【点我

3.QFN100 EVB板,适用于将7060系列作为主控使用时,用户SD卡、屏幕驱动、USB、AUDIO 等等驱动接口学习和产品功能开发。

1722333313960

QFN100 EVB板 资料预览【点我

demo板获取

1.通过公司销售人员申请;

2.通过我司淘宝店铺采购;

bare编程开发资料

A2A & IIS应用

A2A应用主要针对非USB通路的降噪、回声消除、啸叫抑制等,用户可以实现使用上位机配置的方法调整ADC增益,降噪强度和输出音量等等,从而实现项目快速评估和量产落地。

整体效果

资料下载

在线烧录工具

点击下载A2A应用烧录工具【串口烧录工具】、【USB烧录工具】、【烧录说明文档】、【SPV6040B在线烧样片硬件资料】。

标准codec应用

提供AI降噪、稳态降噪、AEC、啸叫抑制等标准固件,通过上位机更改参数,通过IIC或者UART实时配置codec,实现项目快速落地。

标准AI降噪固件:

整体效果

序号功能算法模型配置系统延时功耗支持上位机配置输入输出固件下载
1AI降噪8K_24ms_单麦更新中更新中模拟进模拟出点我下载
2AI降噪8K_24ms_双麦更新中更新中模拟进模拟出点我下载
3AI降噪16K_37.5ms_单麦更新中更新中模拟进模拟出点我下载
4AI降噪16K_37.5ms_双麦更新中更新中模拟进模拟出点我下载
5AI降噪16K_48ms_单麦更新中更新中模拟进模拟出点我下载
6AI降噪16K_48ms_双麦更新中更新中模拟进模拟出点我下载

标准稳态降噪固件:

整体效果

序号功能算法模型配置系统延时功耗支持上位机配置输入输出固件下载
1稳态降噪8K_48ms_单声道更新中更新中模拟进模拟出点我下载
2稳态降噪16K_48ms_单声道更新中更新中模拟进模拟出点我下载
3稳态降噪48K_32ms_单声道更新中更新中模拟进模拟出点我下载
4稳态降噪8K_48ms_立体声更新中更新中模拟进模拟出点我下载
5稳态降噪16K_48ms_立体声更新中更新中模拟进模拟出点我下载
6稳态降噪48K_32ms_立体声更新中更新中模拟进模拟出点我下载

标准回声消除固件:

整体效果

序号功能算法模型配置系统延时功耗支持上位机配置输入输出固件下载
1回声消除8K _48ms更新中更新中模拟进模拟出点我下载
2回声消除+降噪8K _48ms更新中更新中模拟进模拟出点我下载
3回声消除16K _48ms更新中更新中模拟进模拟出 
        

 

标准啸叫抑制固件

整体效果

序号功能算法模型配置系统延时功耗支持上位机配置输入输出固件下载
1啸叫抑制16K_18ms更新中更新中模拟进模拟出点我下载
        

 

固件配置工具

点击下载A2A应用配置工具【配置工具】、【配置工具使用说明

固件通信协议

A2A应用标准固件CODEC配置通信协议【点我跳转】。

IIS应用相关

点击下载IIS应用标准固件【IIS AI降噪固件】、【IIS 回声消除固件】。

硬件参考设计

点击下载A2A_降噪硬件参考设计【SPV6040B核心板PCB工程】、【SPV6040B核心板PDF】。

点击下载A2A_AEC硬件参考设计【SPV6040B_AEC_LOGIC】。

点击下载音乐播放器参考设计【SPV7068 music player

点击下载硬件设计指南【硬件设计指南

关于SDK

点击下载SDK【SDK下载】、【集成开发环境下载】、【开发环境使用说明】、【用户编程指南】。

在线调试

点击查看【在线调试使用说明

提示音功能说明

当需要在芯片中内置提示音,比如按键提示音、降噪开关提示音等功能时,请参考该说明文档【点我跳转】。

开发者钉钉群

扫描下方二维码加入钉钉群,参与技术沟通。

整体效果

 

用户手册

GPIO复用功能表

PAD_NAMEFUN0FUN1FUN2FUN3FUN4FUN5FUN6FUN7FUN8FUN9FUN10FUN11FUN12
GPIO00GPIO00SPI0_SCKNOR0_SCKUART0_TXDI2C0_SCLDMIC0_CLKI2S0_SCKSDC_CLK PWM0CPU_TCKNOR1_SCKPGM_SCK
GPIO01GPIO01SPI0_NSSNOR0_NSSUART0_RXDI2C0_SDADMIC0_DATI2S0_WSSDC_CMD PWM1CPU_TMSNOR1_NSSPGM_NSS
GPIO02GPIO02SPI0_DAT0NOR0_DAT0UART1_TXDUART0_CTSI2S0_SDII2S0_SDOSDC_DAT0 PWM2CPU_TDONOR1_DAT0PGM_DAT0
GPIO03GPIO03SPI0_DAT1NOR0_DAT1UART1_RXDUART0_RTSI2S0_SDOI2S0_SDISDC_DAT1 PWM3CPU_TDINOR1_DAT1PGM_DAT1
GPIO04GPIO04SPI0_DAT2NOR0_DAT2UART2_TXDUART1_CTSDMIC1_CLKI2S1_SCKSDC_DAT2SPI0_SCKPWM4CPU_TCKNOR1_DAT2PGM_SCK
GPIO05GPIO05SPI0_DAT3NOR0_DAT3UART2_RXDUART1_RTSDMIC1_DATI2S1_WSSDC_DAT3SPI0_NSSPWM5CPU_TMSNOR1_DAT3PGM_NSS
GPIO06GPIO06SPI0_NSSUART0_RXDUART0_TXDI2C0_SCLI2S0_SDII2S1_SDOSDC_CLKSPI0_DAT0PWM6CPU_TDO PGM_DAT0
GPIO07GPIO07SPI0_NSSUART0_TXDUART0_RXDI2C0_SDAI2S0_SDOI2S1_SDISDC_CMDSPI0_DAT1PWM7CPU_TDI PGM_DAT1
GPIO08GPIO08SPI1_SCKUART1_RXDUART1_TXDI2C1_SCLIRTX_DATI2S0_SCKSDC_DAT0 PWM0CPU_TCKPSRAM_SCK 
GPIO09GPIO09SPI1_NSSUART1_TXDUART1_RXDI2C1_SDAIRRX_DATI2S0_WSSDC_DAT1 PWM1CPU_TMSPSRAM_NSS 
GPIO10GPIO10SPI1_DAT0UART2_RXDUART2_TXDSDC_DETIRTX_DATI2S0_SDOSDC_DAT2PWMC0PWM2CPU_TRSTPSRAM_DAT0 
GPIO11GPIO11SPI1_DAT1UART2_TXDUART2_RXDSDC_WPRIRRX_DATI2S0_SDISDC_DAT3PWMC1PWM3CPU_TRSTPSRAM_DAT1 
GPIO12GPIO12SPI1_DAT2IRTX_DAT UART2_CTSIRRX_DATI2S1_SCKSDC_CLKPWMC2PWM4 PSRAM_DAT2 
GPIO13GPIO13SPI1_DAT3IRTX_DAT UART2_RTSIRRX_DATI2S1_WSSDC_CMDPWMC3PWM5 PSRAM_DAT3 
GPIO14GPIO14SPI2_SCKUART0_RXDUART0_TXDI2C0_SCLDMIC2_CLKI2S1_SDOSDC_DAT0PWMC4PWM6   
GPIO15GPIO15SPI2_NSSUART0_TXDUART0_RXDI2C0_SDADMIC2_DATI2S1_SDISDC_DAT1PWMC5PWM7   
GPIO16GPIO16SPI2_DAT0UART1_RXDUART1_TXDI2C1_SCLDMIC3_CLKI2S0_SCKSDC_DAT2 PWM0   
GPIO17GPIO17SPI2_DAT1UART1_TXDUART1_RXDI2C1_SDADMIC3_DATI2S0_WSSDC_DAT3 PWM1   
GPIO18GPIO18SPI2_DAT2UART2_RXDUART2_TXDUART0_CTSDMIC0_CLKI2S0_SDOSDC_DETPWMC0PWM2   
GPIO19GPIO19SPI2_DAT3UART2_TXDUART2_RXDUART0_RTSDMIC0_DATI2S0_SDISDC_WPRPWMC1PWM3CPU_TRST  
GPIO20GPIO20SPI1_SCKUART3_RXDUART3_TXDI2C1_SCLDMIC1_CLKI2S1_SCKSDC_DETPWMC2 CPU_TCK  
GPIO21GPIO21SPI1_NSSUART3_TXDUART3_RXDI2C1_SDADMIC1_DATI2S1_WSSDC_WPRPWMC3 CPU_TMS  
GPIO22GPIO22SPI1_DAT0  UART3_CTSDMIC2_CLKI2S1_SDOSDC_DETPWMC4 CPU_TDO  
GPIO23GPIO23SPI1_DAT1  UART3_RTSDMIC2_DATI2S1_SDISDC_WPRPWMC5 CPU_TDI  
GPIO24GPIO24SPI0_SCKNOR0_SCKSPI0_DAT1NOR0_DAT1SPI0_SCKNOR0_SCK FAC_DAT1 FAC_SCK FAC_SCK
GPIO25GPIO25SPI0_NSSNOR0_NSSSPI0_DAT0NOR0_DAT0SPI0_NSSNOR0_NSS FAC_DAT0 FAC_NSS FAC_NSS
GPIO26GPIO26SPI0_DAT0NOR0_DAT0SPI0_NSSNOR0_NSSSPI0_DAT0NOR0_DAT0 FAC_NSS FAC_DAT0 FAC_DAT0
GPIO27GPIO27SPI0_DAT1NOR0_DAT1SPI0_SCKNOR0_SCKSPI0_DAT2NOR0_DAT2 FAC_SCK FAC_DAT2 FAC_DAT1
GPIO28GPIO28SPI0_DAT2NOR0_DAT2SPI0_DAT3NOR0_DAT3SPI0_DAT1NOR0_DAT1 FAC_DAT3 FAC_DAT1 FAC_DAT2
GPIO29GPIO29SPI0_DAT3NOR0_DAT3SPI0_DAT2NOR0_DAT2SPI0_DAT3NOR0_DAT3 FAC_DAT2 FAC_DAT3 FAC_DAT3
GPIO30GPIO30  UART0_TXDI2C0_SCLDMIC0_CLKI2S0_SCKSDC_CLK PWM0CPU_TCK  
GPIO31GPIO31  UART0_RXDI2C0_SDADMIC0_DATI2S0_WSSDC_CMD PWM1CPU_TMS  
GPIO32GPIO32SPI0_SCKNOR0_SCK  PSRAM_SCK SDC_CLKSPI1_SCKPWM0 NOR1_SCKFAC_SCK
GPIO33GPIO33SPI0_NSSNOR0_NSS  PSRAM_NSS SDC_CMDSPI1_NSSPWM1 NOR1_NSSFAC_NSS
GPIO34GPIO34SPI0_DAT0NOR0_DAT0UART0_RXDUART0_TXDPSRAM_DAT0 SDC_DAT0SPI1_DAT0PWM2 NOR1_DAT0FAC_DAT0
GPIO35GPIO35SPI0_DAT1NOR0_DAT1UART0_TXDUART0_RXDPSRAM_DAT1 SDC_DAT1SPI1_DAT1PWM3 NOR1_DAT1FAC_DAT1
GPIO36GPIO36SPI0_DAT2NOR0_DAT2UART1_RXDUART1_TXDPSRAM_DAT2I2C0_SDASDC_DAT2SPI1_DAT2PWM4 NOR1_DAT2FAC_DAT2
GPIO37GPIO37SPI0_DAT3NOR0_DAT3UART1_TXDUART1_RXDPSRAM_DAT3I2C0_SCLSDC_DAT3SPI1_DAT3PWM5 NOR1_DAT3FAC_DAT3
GPIO38GPIO38  UART2_RXDUART2_TXDI2C1_SCLI2C1_SDA PWM0PWM6   
GPIO39GPIO39  UART2_TXDUART2_RXDI2C1_SDAI2C1_SCL PWM1PWM7   

SAR ADC复用功能表

LRADC(Low Rate ADC)是一个低功耗 SAR ADC, 拥有 12 通道 10 比特分辨率。 LRADC 可以用于电压检测、按键检测、音频采样 。

ChannelFunctionDescription
LRADC00SPIO00通用 ADC
LRADC01SPIO01通用 ADC
LRADC02SPIO02通用 ADC
LRADC03GPIO08通用 ADC
LRADC04GPIO09通用 ADC
LRADC05GPIO10通用 ADC
LRADC06GPIO11通用 ADC
LRADC07GMIC1麦克风制式检测
LRADC08GMIC0麦克风制式检测
LRADC09VRCMLRADC 偏差测量
LRADC10Thermal温度传感器
LRADC11MIC音频麦克风检测

 

rt-thread编程开发资料

快速开发指南

本文介绍珠海普林芯驰sp2cw3平台芯片基于RT-Thread的SDK使用,包括编译环境搭建、下载、驱动及应用开发等,使用SDK进行开发之前,请阅读本文。

RT-Thread 简介

RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。

RT-Thread有完整版和Nano版,对于资源受限的微控制器(MCU)系统,可通过简单易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本;而相对资源丰富的物联网设备,可使用RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。

RT-Thread 架构

RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件的物联网操作系统,架构如下: RT-Thread 架构

RT-Thread的特点

文档

RT-Thread 官方提供了丰富的开发说明和指南,具体可以参考如下RT-Thread官方相关资源链接:

RT-Thread文档中心 | RT-Thread编程指南

内核示例 | 设备示例代码 | 文件系统示例代码 | RT-Thread API参考手册

许可协议

RT-Thread系统完全开源,3.1.0 及以前的版本遵循 GPL V2 + 开源许可协议。从 3.1.0 以后的版本遵循Apache License 2.0开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。

/*
 * Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 

SDK快速开发介绍

代码目录

SDK根目录主控包括如下文件夹及内容:

文件夹描述
env_released_1.3.5RT-Thread env 工具包,sp2cw3 SDK使用RTT官方的Env工具,使用scons命令行构建
spv2cw3-rttsp2cw3 平台基于RT-Thread SDK 源码,系统源码、驱动及各种应用代码
spv-tools专用配套工具,主要包括下载工具及EQ调试工具
toolchainsRSIC-v gcc 编译工具链

sp2cw3-rtt是SDK源码目录,编译及开发需要进入该目录进行:

文件夹描述
sspsp2cw3 soc系统核心代码,包括内存分布、中断、寄存器定义等。
driversp2cw3驱动,包括基于RT-Thread框架的驱动及HAL层驱动代码
documents相关文档,包括驱动移植、模块开发指南等
packages第三方库代码
projects产品工程板级配置及代码,包括工程配置及硬件PIN定义等
rtthreadRT-Thread系统相关代码,基于V4.0.5版本有修改,建议直接使用SDK提供的源码
application应用demo、测试相关代码
components相关组件,包括音频编解码、AI算法库等

SDK下的documents包括了sp2cw3平台的开发指南,包括了工具链、驱动、硬件设计等,文档目录的说明如下:

文件目录描述
bspsp2cw3 soc硬件模块及HAL驱动接口说明。
build_systemSDK构建系统及工具说明
coding_style代码风格格式说明
componentsRT-Thread组件使用说明
deviceRT-Thread设备驱动开发说明,包括各模块驱动开发
hardwaresp2cw3 硬件设计相关文档及参考设计
packages第三方库相关介绍和使用说明

产品相关的代码及配置在projects目录下,用户新建自己的工程文件,建议基于目录下已存在的工程复制。其文件列表如下:

|-- SConscript
|-- sp2cw3_evb
|   |-- SConscript
|   |-- board
|   |   |-- board.c           //板级硬件初始化代码
|   |   `-- board.h           //板级硬件配置
|   |-- image
|   |   |-- ai.mod             //AI模型文件,不用为空,文件保留
|   |   |-- ext.a              //用户数据,可以为空
|   |   `-- playback.dat       //音频播放文件
|   |-- rtconfig.h             //工程配置
|   `-- src
|       |-- SConscript
|       `-- main.c             //用户主程序入口

用户如果想在project中新建自己的工程,可以参考 | scons使用指南 中的新建工程章节说明。

SDK 编译

SDK支持scons编译,在RT-Thread 官方提供的env工具中用scons命令编译。env工具在env_released_1.3.5目录下,env和scons的详细使用介绍可以如下说明:

env使用指南 | scons使用指南

启动env,直接双击env.exe,启动env。为了方便后续使用,可以将ENV注册到右键,通过右键启动。在env工具上单击右键,选择"settings"界面,然后按如下2 step进行设置。

env注册

scons --launch   //选择编译的工程
scons -j8        //启动编译, -j8 是使用8线程编译

目前SDK默认有以下几个产品工程模板:

1: sp2cw3_denoiser //AI降噪工程参考
2: sp2cw3_evb      //标准EVB工程
3: sp2cw3_evb2     //SPV7068 EVB工程
4: sp2cw3_recorder //录音笔、MP3
5: sp2cw3_test     //测试工程

launch

launch

  scons --launch   //选择编译的工程
  menuconfig       //启动配置菜单
  scons --save     //保存配置到对应的工程目录

Note
注:配置参数如果没有手动执行scons --save进行保存,编译成功后会自动更新到project下对应的工程文件夹。

menuconfig

固件下载

PC工具下载

编译成功后,固件保存在SDK的output目录,文件名为:xxx.bin。

固件需要专用上位机工具进行烧录,目前支持PC上位机工具通过uart或者usb进行下载,工具路径为:\spv-tools\ODT\spv40_odt_vxxx.zip

下载之前,需要先进入下载模式。需要先按住目标板ON_OFF键上电,芯片将进入下载模式

下载界面

下载成功

scons 命令行下载

可以直接在ENV工具通过命令行直接下载,命令行只支持USB下载,当前USB速度比较慢。

  scons --updatecpu   //更新CPU程序
  scons --updateapp   //更新整体固件程序,包括模型及用户数据等

系统上电

下载上电成功,会在串口输出启动log,同时进入MSH命令行,等待命令执行及测试。 MSH默认使用调试串口uart0,波特率设置:1500000,8N1; 上电

EVB硬件介绍

SP2CW3(EVB)使用QFN100封装芯片,板子支持USB、UART、调试器三种烧录方式。音频相关接口支持line-out,headphone,AMIC、DMIC、IIS、USB等等。同时支持电池供电和USB供电方式,板载电池管理单元。

EVB的使用说明参考如下文档:SP2CW3 EVB使用说明

嵌入式音频系统组成

 

SDK下载

点击下载SDK和说明文档