> 文档中心 > 清洁机器人之音频方案 ISD2360 开发总结1

清洁机器人之音频方案 ISD2360 开发总结1

文章目录

  • 一. **ISD2360 音频方案**
  • 1.开发环境搭建篇
  • 2.常见开发问题
      • 2.1 **问:**QFN32 and SOP16 都可以供应?
      • 2.2 问:官方网站上的I2360SYI 就是这个ISD2360吧?
      • 2.3 问:芯片丝印 SYI YYI什么区别
      • 2.4 问:QFN 32 的封装多了这么PIN 脚?实际没看到功能差异啊
      • 2.5 问:8 kHz/4-bit ADPCM 这个是基于8K 8BIT的 PCM转?还是8K 16BIT的 PCM转?
      • 2.6 问:外面的音频录制文件 之前没有录制过8K 16BIT这种格式.你们有工具可以转?
      • 2.7 问:ADPCM 有2种 这个cool edit 转成microsoft 还是dia的? 还是DVI/IMA?
      • 2.8 问:这种ADPCM 的专业芯片 与MCU 直接进行软件ADPCM 解码再播放的优势是什么?
      • 集成音频功放 ,音频存储FLASH的综合成本低? 降低MCU CPU 占有率?
      • 2.9 问:喇叭的选择如何确定?选择多少阻抗 如8欧姆 1W 。供电电压不同的情况下,看手册可以支持到6V
      • 2.10问: SPI 接口可以配置成GPIO,这个GPIO啥作用?什么产品场景下使用?
      • 2.11 问:Audio streaming for up to 3 channels can be mixed and played back concurrently 这个3 channels 是什么含义?
      • 2.12 问:这个EXT模式对吗?是不是usb设备没识别 控制不了音频板子
      • 2.13 问:用安装目录下的工程,如何播放出声音?
      • 2.14 问:burn device 烧写数据?
      • 2.15 问:喇叭电源单独供电?3.3还是5V
      • 2.16 问:上位机控制音频播放方法
      • 2.17 问:上位机按照上图 无法播放出声音?USB 转接板+ISD2360全部链接好的
      • 2.18 手动安装驱动方法
      • 2.19 问:3.3V 下的供电 喇叭声音咋这么小 8欧姆 1W的喇叭 蚊子叫一样 很轻
      • 2.20 问: voice macros voice prompts 这个两个啥区别
      • 2.21 问:友商的芯片电源与喇叭电源也是共用一个? MCU是3.3V的供电 ,ISD 如果VDD 是5V ,两者SPI通信的电平不匹配
      • 2.22 问:ISD 支持音量控制吗?
      • 2.23 问:PWM 载波频率如何选?
      • 2.24 问:压缩算法如何选 ?不同的 voice propts
      • 2.25 问:生产的时候用什么烧写?
      • 2.26 问: 后续用MCU进行升级音频资源文件的话 ,用这几个命令
      • 2.27 问 :一拖八的量产烧录器---那我这边如何做出一个烧写文件
      • 2.28 问:有一拖八的量产烧录器--多少钱一个的 ?
      • 2.29问:其他友商是根据芯片下订单 直接找你们烧写吗?还是买芯片回来 用这个烧录器烧写?
      • 2.30 问:这个SPI CLK 按照手册 最小是60NS ,转换成频率的话是 16.67MHZ SPI 的频率并不高
      • 提供的代码的是GPIO 模式的,实际如果以SPI控制 一般用多少的频率
      • 2.31 问:录音棚的录音文件 一般是44.1KHZ 16BIT 或者48KHZ 这两种频率都可以作为输入?
      • 2.32 问:pin脚的功能 是可以通过上位机下载的程序直接配置好的吗?
      • 2.33 问:这个Play_Vp 函数的index参数如何传递
      • 2.33 问:单个音频播放完成如何判断?
      • 2.34 问:播放声音结束一直查状态?还是用INT B中断?用中断如何做 ,INTB中断 有时候不产生。
      • 2.35 问:Reset_Device 这个什么时候使用?
      • 2.36 问:上位机单独发送SPI命令 模拟MCU控制如何发送?
      • 2.37 问:Config_GPIO4_RDY函数 这个需要调用来配置RDY IO吧? 每次发命令前读取下 RDY状态?
      • 2.38 问:路径设置是去如何的?mem to pwm
      • 2.39 问: POI PU WAKEUP 是必须的VM?
      • 2.40 问:这个checksum软件算法是什么?后续需要通过SPI 升级 ,需要校验是否升级正确
      • 2.41 问:fletcher32_RevrseCalculate 函数参数的data --?传递的是结束地址?
      • 2.42 问:软件计算的 跟硬件计算的不一致?check sum配置 流程问题?
      • 2.43 问:进行check sum校验和之前 这个REG4 的BIT 4 写1 ?
      • 2.44 问:INT B 管脚的中断 请跟原厂确定一下 是否可用 ? 按道理可用啊 不然不是鸡肋啊. 没有中断 太麻烦 ,异常的时候什么时候出现都不知道
      • 2.45 问:播放静音 一般什么时候使用?
      • 2.46 问: WP RP CEP 的目的是什么?保护数据根本保护不了 啊 ,发个命令 写寄存器 去除保护就可以解除。这种意义是什么呢?
      • 2.47 问:这个device image iD是什么用途?能否指定位置?这个不能指定存储位置 ?
      • 2.48问:device image iD是什么用途? 看了BIN LAYOUT 存储在最后的256 字节开始处
      • 2.49问:自定义了VM 这个是十进制还是16进制?
      • 2.46 问: WP RP CEP 的目的是什么?保护数据根本保护不了 啊 ,发个命令 写寄存器 去除保护就可以解除。这种意义是什么呢?
      • 2.47 问:这个device image iD是什么用途?能否指定位置?这个不能指定存储位置 ?
      • 2.48问:device image iD是什么用途? 看了BIN LAYOUT 存储在最后的256 字节开始处
      • 2.49问:自定义了VM 这个是十进制还是16进制?

一. ISD2360 音频方案

1.开发环境搭建篇

ISD2360开发小板+USB 下载控制器+上位机软件+文档资料(手册+DEMO说明)

The ISD2360 evaluation kit consists of three parts:
- ISD-DEMO2360 (QFN or SOP)
- ISD-ES_MINI_USB: a small interface board providing USB connection to PC
- ISD-VPE2360: free downloadable GUI evaluation software for ISD2360.

在这里插入图片描述

  1. EN_ISD2360_Datasheet_Rev1-0.pdf

  2. EN_ISD2360_Design_Guide_Rev1.15.pdf

  3. EN_ISD-DEMO2360_User_Manual.pdf

  4. VPE2360_Win7-64bit_236.0010.zip

    其中VPE软件:用户名 Linpo SH 密码 47406216

2.常见开发问题

2.1 **问:**QFN32 and SOP16 都可以供应?

答:应该是sop16的,两个管脚功能是一样的,QFN不过是多了些NC空脚

2.2 问:官方网站上的I2360SYI 就是这个ISD2360吧?

在这里插入图片描述

答:是的

2.3 问:芯片丝印 SYI YYI什么区别

答:SYI --SOP

​ YYI-QFN32

2.4 问:QFN 32 的封装多了这么PIN 脚?实际没看到功能差异啊

答:是的,仅是封装差异

2.5 问:8 kHz/4-bit ADPCM 这个是基于8K 8BIT的 PCM转?还是8K 16BIT的 PCM转?

答:印象里是8k16bit

2.6 问:外面的音频录制文件 之前没有录制过8K 16BIT这种格式.你们有工具可以转?

答:cool edit

2.7 问:ADPCM 有2种 这个cool edit 转成microsoft 还是dia的? 还是DVI/IMA?

在这里插入图片描述

答:microsoft的

2.8 问:这种ADPCM 的专业芯片 与MCU 直接进行软件ADPCM 解码再播放的优势是什么?

集成音频功放 ,音频存储FLASH的综合成本低? 降低MCU CPU 占有率?

答:对,还有调试简单了

​ 音源按序号放入VPE软件,生成ISD2360固件下载到ISD2360中,MCU只要通过SPI 发送 播放哪一段音源或几段音源的组合即可播放音频。

2.9 问:喇叭的选择如何确定?选择多少阻抗 如8欧姆 1W 。供电电压不同的情况下,看手册可以支持到6V

答:是的,8Ω1W的

2.10问: SPI 接口可以配置成GPIO,这个GPIO啥作用?什么产品场景下使用?

在这里插入图片描述

答:一般demo模式下用,相当于按键触发播放。

2360两种触发方式,一个是按键触发,一个是MCU通过SPI 发送命令触发

VPE安装好后,在安装目录下有例程,一般都是按键触发的

2.11 问:Audio streaming for up to 3 channels can be mixed and played back concurrently 这个3 channels 是什么含义?

答:声音可以3通道播放,类似背景音的效果

就是说可以支持最多3个声道的含义,看手册说实际播放是时分复用模式

2.12 问:这个EXT模式对吗?是不是usb设备没识别 控制不了音频板子

在这里插入图片描述

在这里插入图片描述

答:看图片,插反了。demo板翻过来,芯片朝上

2.13 问:用安装目录下的工程,如何播放出声音?

答:我记得安装目录下的例程都是按键触发的

在这里插入图片描述

2.14 问:burn device 烧写数据?

在这里插入图片描述

答:对的,烧之前要先 。

在这里插入图片描述

2.15 问:喇叭电源单独供电?3.3还是5V

在这里插入图片描述

答:都可 。但是建议喇叭5V 不然 ,喇叭功率上不去。

2.16 问:上位机控制音频播放方法

答:
在这里插入图片描述

2.17 问:上位机按照上图 无法播放出声音?USB 转接板+ISD2360全部链接好的

​ 关掉,拔掉USB,然后重新插上打开,还是不行
在这里插入图片描述

答:是不是驱动没装好。安装好的电脑是

在这里插入图片描述

2.18 手动安装驱动方法

驱动安装选这个路劲
在这里插入图片描述

手动安装后如下:
在这里插入图片描述

2.19 问:3.3V 下的供电 喇叭声音咋这么小 8欧姆 1W的喇叭 蚊子叫一样 很轻

答:要达到1w的输出需要5.5v的驱动 然后声音的大小还有很多影响因素,比如音腔、音源本身、电压等等
在这里插入图片描述

2.20 问: voice macros voice prompts 这个两个啥区别

看index 是从0 开始的,voice macros 是0-B voice prompts 是C-12

答:简称VP是音源,VM是编辑过得,可能是几个VP的组合

2.21 问:友商的芯片电源与喇叭电源也是共用一个? MCU是3.3V的供电 ,ISD 如果VDD 是5V ,两者SPI通信的电平不匹配

PWM 供电这样的话 得单独供应才正确

答:可以把电源分开,VCCD给3.3,VCC_PWM给5v

2.22 问:ISD 支持音量控制吗?

支持音量控制的。
在这里插入图片描述

从这个寄存器看出,音量控制默认是0dB ,其他的控制都是减少音量.默认是最大音量

2.23 问:PWM 载波频率如何选?

这个不要动了,默认已经优化到最好了

2.24 问:压缩算法如何选 ?不同的 voice propts

在这里插入图片描述

根据你需求手动调整,单独不同的都是可以的.默认就是你声音导进来的时候按照默认的压缩算法

2.25 问:生产的时候用什么烧写?

就用这个调试器,或者有一拖八的量产烧录器,我们也提供付费代烧录服务

2.26 问: 后续用MCU进行升级音频资源文件的话 ,用这几个命令?

在这里插入图片描述

对的,其实和烧录spi flash一个道理

2.27 问 :一拖八的量产烧录器—那我这边如何做出一个烧写文件

mem文件

2.28 问:有一拖八的量产烧录器–多少钱一个的 ?

2000多RMB好像,要问下销售

2.29问:其他友商是根据芯片下订单 直接找你们烧写吗?还是买芯片回来 用这个烧录器烧写?

看具体芯片用量

2.30 问:这个SPI CLK 按照手册 最小是60NS ,转换成频率的话是 16.67MHZ SPI 的频率并不高

提供的代码的是GPIO 模式的,实际如果以SPI控制 一般用多少的频率

答:不高的,gpio模拟都可以实现

2.31 问:录音棚的录音文件 一般是44.1KHZ 16BIT 或者48KHZ 这两种频率都可以作为输入?

可以,上位机会自己转的,不过只有wav格式哦 。

2.32 问:pin脚的功能 是可以通过上位机下载的程序直接配置好的吗?

是的,芯片上电后自动执行POI VM。里面定义POI执行的动作。

2.33 问:这个Play_Vp 函数的index参数如何传递

void Play_Vp(unsigned int index)
{
Spi_Enable();
SendByte(Play_Vp_Code);
SendByte((unsigned char)(index>>8));
SendByte((unsigned char)index);
Spi_Disable();
}

播放单个音源的命令是a6,那么命令加上个16位的地址位这里是index号,那么就是发送比如a6 00 09就是播放第9号音源

2.33 问:单个音频播放完成如何判断?

查询状态

    while (1)    { ReadStatus(); printf("Device_status 0x%02x\r\n", Device_status[0]); printf("Device_status 0x%02x\r\n", Device_status[1]);if(Device_status[0] == 0x40 )break;else if(Device_status[0] == 0x60 && Device_status[1] == 0x01)//play end{ReadInt();//clear int statuscontinue;} Delay_10ms();    }

2.34 问:播放声音结束一直查状态?还是用INT B中断?用中断如何做 ,INTB中断 有时候不产生。

13 GPIO3/INTB O
Active low interrupt request pin.
This pin is an open-drain output

答:一般都是用的查询的方式,中断的目前不支持

查询的话可以在这个界面直观的看出来哪些状态位,中断位变化了
在这里插入图片描述

2.35 问:Reset_Device 这个什么时候使用?

软件复位 ,一般用不到吧。

备注:

JTAG直接下载程序不断电运行,与ISD2360重新断电上电启动的状态数值不一样。

需要硬件支持下 可控制ISD2360电源的通断,这样可做硬件复位。

2.36 问:上位机单独发送SPI命令 模拟MCU控制如何发送?

在这里插入图片描述

2.37 问:Config_GPIO4_RDY函数 这个需要调用来配置RDY IO吧? 每次发命令前读取下 RDY状态?

答:这个用来看命令是否忙状态,RDY高电平的时候命令才会接收

2.38 问:路径设置是去如何的?mem to pwm

答:默认就是

2.39 问: POI PU WAKEUP 是必须的VM?

答:power up的动作就会执行PU,里面就会有REG2的配置,配置了就好了 。这3个是默认的

2.40 问:这个checksum软件算法是什么?后续需要通过SPI 升级 ,需要校验是否升级正确

在这里插入图片描述

答:design guide里面有的
在这里插入图片描述

2.41 问:fletcher32_RevrseCalculate 函数参数的data --?传递的是结束地址?

unsigned int fletcher32_RevrseCalculate(unsigned char *data, size_t len){    int temp;    unsigned int sum1 = 0xffff, sum2 = 0xffff;    while (len)    { unsigned tlen = len> 360 ? 360 : len; len -= tlen; do {     sum1 += *data;     data--;

答:地址是结束地址

2.42 问:软件计算的 跟硬件计算的不一致?check sum配置 流程问题?

答:传入flash结束地址,计算出来的check sum也跟上位机计算出来的不一致

同一固件可几种计算。

上位机对固件 按照算法进行软件计算

MCU处理器运行算法按照软件计算

linux开发环境下 linux c运行算法按照软件计算

MCU发送计算checksum命令给ISD2360 进行硬件计算

2.43 问:进行check sum校验和之前 这个REG4 的BIT 4 写1 ?

byData = Read_CFG_REG(REG4);  printf("byData 0x%02x\r\n", byData);    byData |= 1<<4 ;  Write_CFG_REG(REG4,byData);

To recalculate the checksum with a different end address, the user must write register 1 followed
by 0 to CFG_REG4 bit-4 to clear the registers 0x10 – 0x13.

这句英文有点绕. 写BIT 4 为1 后 REG 0x10

答:checksum流程:

1、复位checksun寄存器,B8命令写04寄存器,先写10,再写00即可,命令为:B8 04 10,B8 04 00;
2、checksum命令 F2 +endaddress,命令为 F2 03 B7 FF;
3、依次读取checksum值寄存器10-13,命令为:BA 10 00,BA 11 00,BA 12 00,BA 13 00

04寄存器 BIT 4,需要先写1 再写0 。

2.44 问:INT B 管脚的中断 请跟原厂确定一下 是否可用 ? 按道理可用啊 不然不是鸡肋啊. 没有中断 太麻烦 ,异常的时候什么时候出现都不知道

答:不可用

2.45 问:播放静音 一般什么时候使用?

在这里插入图片描述

一般在组合的时候用,比如音源“今天的温度是”“三十”“二”“摄氏度”,为了调整中间的间隔会添加一些静音来使听感上舒服一些

VM编辑使用了

2.46 问: WP RP CEP 的目的是什么?保护数据根本保护不了 啊 ,发个命令 写寄存器 去除保护就可以解除。这种意义是什么呢?

在这里插入图片描述

答:只是为了误擦除操作而已,不是像MCU那种保护芯片的意思

2.47 问:这个device image iD是什么用途?能否指定位置?这个不能指定存储位置 ?

答:不可以

2.48问:device image iD是什么用途? 看了BIN LAYOUT 存储在最后的256 字节开始处

答:单独存放在256 字节开始处

2.49问:自定义了VM 这个是十进制还是16进制?

在这里插入图片描述

答:16进制

在这里插入图片描述

“摄氏度”,为了调整中间的间隔会添加一些静音来使听感上舒服一些

VM编辑使用了

2.46 问: WP RP CEP 的目的是什么?保护数据根本保护不了 啊 ,发个命令 写寄存器 去除保护就可以解除。这种意义是什么呢?

在这里插入图片描述

答:只是为了误擦除操作而已,不是像MCU那种保护芯片的意思

2.47 问:这个device image iD是什么用途?能否指定位置?这个不能指定存储位置 ?

答:不可以

2.48问:device image iD是什么用途? 看了BIN LAYOUT 存储在最后的256 字节开始处

答:单独存放在256 字节开始处

2.49问:自定义了VM 这个是十进制还是16进制?

在这里插入图片描述

答:16进制

在这里插入图片描述

安全期查询