WT2003H0系列语音芯片远程更换语音bin功能解析

WT2003H0系列语音芯片远程更换语音bin功能解析,第1张

基于 WT2003H0语音芯片在扫地机/智能桌游等产品更换语音bin应用设计方案介绍

一、产品市场

随着家用电子设备的普及,各种智能化设备进入人们生活中,如洗地机、扫地机、共享单车、智能门锁、智能桌游、智能网关等,客户想方便快捷的更换替换产品的音频文件。针对部分客户自主更换语音内容的需求,定制化的语音方案,唯创知音WT2003H0系列语音芯片远程更换语音bin的功能无疑是一个很好的选择。

本文以WT2003H0系列语音芯片为例,与唯创知音其余的WT2003H系列串口更新语音bin(bin文件包含运行程序+语音)不同,唯创知音新推出的这款芯片功能,为直接替换语音bin文件,由MP3、WAV格式合成,不包含运行程序。

二、产品应用框图 WT2003H0系列语音芯片远程更换语音bin功能解析,poYBAGKmq5-AN5RkAAAxwzNjWt0321.jpg,第2张

语音更换

三、芯片功能特点

(1)工作电压:2.0-5.2V;

(2)内置0.5W D类功放;

(3)可支持控制模式:一线、两线单双字节、UART串口控制、按键控制、SPI控制;

(4)默认通信波特率9600,用户可通过波特率切换指令,自由切换波特率设置,最高可达1Mbps;

(5)支持语音高品质音频格式,支持MP3和WAV格式,(音频码率支持8kbps~320kbps)声音优美;

(6)包含所有标准控制指令的同时,更设置有串口更新音频指令,用户可自由选择进入低功耗模式,功耗

(7)高精度ADCDAC

(8)大功率IO驱动能力,最高可直接驱动64mA;

(9)制作语音bin文件,搭配客户MCU通过串口自由更换语音;

(10)用户可提前预留出语音bin文件下载更新口pin点,方便后续更换音频+程序;

四、语音更新 *** 作流程图 WT2003H0系列语音芯片远程更换语音bin功能解析,pYYBAGKmq8CAHKeoAAAfT7tIhmM240.jpg,第3张 五、相关控制指令预览介绍 WT2003H0系列语音芯片远程更换语音bin功能解析,poYBAGKmq_yAJqVbAAC0uOalN8g646.jpg,第4张WT2003H0系列语音芯片远程更换语音bin功能解析,poYBAGKmrAyAfiL4AAEmfTWoME0250.jpg,第5张 六、设计应用案例

1) 器件选型

WT2003H0系列语音芯片远程更换语音bin功能解析,poYBAGKmrBmAG8oFAAEhs96SqEo452.jpg,第6张 2)设计原理图 WT2003H0系列语音芯片远程更换语音bin功能解析,pYYBAGKmrDqAVbaxAAF-2ol_p_g442.jpg,第7张

A.串口更新语音说明

1.串口通信电平为3.3V TTL电平。

2.MCU TX与语音芯片RX之间需反接一个二极管,负极一端靠近MCU TX,目的是为了防止串口电平导致芯片未正常复位重启。

3.下载过程中,确保语音IC的TX和RX脚不会受到干扰,建议断开MCU的TX/RX与语音IC之间的连接或MCU不发送数据给到语音芯片。

4.离线下载时,确保烧写器中已烧录合成的bin文件,此时方可进行烧录,语音bin文件不要超过flash的容量,否则导致下载失败。

注:此款功能目前可支持MCU通过串口更新语音,后续如客户需替换整个语音及功能程序,可搭配本司下载器进行替换,因此建议提前预留出语音bin烧录口,如上图所示

B. 外挂Flash及功放电路说明

WT2003H0系列语音芯片远程更换语音bin功能解析,pYYBAGKmrE-AA-xUAAD6v_Hj4OA046.jpg,第8张 七、程序范例

/*本例程主要介绍,从文件系统读取一个文件,并将文件数据传输到WT2003HX的过程,客户也可通过其他方式

获取文件数据,进而实现数据传输*/

#define SECTOR_SIZE 512 //本例程按照最大512字节一包数据传输

extern u8 decext_buf[SECTOR_SIZE]; //缓存文件数据的BUFF

extern u8 uart_rx_buffer[SECTOR_SIZE]; //缓存串口接收数据的BUFF

 

u32 exspi_msc_fsize = 0; //文件大小

u32 exspi_msc_len = 0; //文件长度计数

 

void wt2003h_updata_file()

{

u16 delay_wait = 0;

u8 sum; //数据校验和

 

uart0_put_char(0x7e); //停止播放播放命令

uart0_put_char(0x03);

uart0_put_char(0xAB);

uart0_put_char(0xAE);

uart0_put_char(0xef);

delay_5ms(10);

 

uart0_put_char(0x7e); //创建文件名wt2003h.mp3命令

uart0_put_char(0x0B);

uart0_put_char(0xF1);

uart0_put_char(0x77);

uart0_put_char(0x74);

uart0_put_char(0x32);

uart0_put_char(0x30);

uart0_put_char(0x30);

uart0_put_char(0x33);

uart0_put_char(0x68);

uart0_put_char(0x2e);

uart0_put_char(0x6d);

uart0_put_char(0X70);

uart0_put_char(0x33);

uart0_put_char(0X55);

uart0_put_char(0Xef);

delay_5ms(40);

 

exspi_msc_len = 0;

 

fs_open_num(1); //文件系统接口,打开需要传输的文件

fs_lseek(0, 0);

exspi_msc_fsize = fs_get_file_size(); //文件系统接口,获取需要传输的文件大小

exspi_msc_fsize = ((exspi_msc_fsize + 511)/SECTOR_SIZE)*SECTOR_SIZE;//转换文件大小单位为一个SECTOR大小

 

sum = 0x05 + (u8)(exspi_msc_fsize>>24)+(u8)(exspi_msc_fsize>>16)+(u8)(exspi_msc_fsize>>8)+(u8)(exspi_msc_fsize);

 

 

uart0_put_char(0x7e); //发送文件信息命令

uart0_put_char(0x08);

uart0_put_char(0xfd);

uart0_put_char(0x00);

uart0_put_char(exspi_msc_fsize>>24);

uart0_put_char(exspi_msc_fsize>>16);

uart0_put_char(exspi_msc_fsize>>8);

uart0_put_char(exspi_msc_fsize);

uart0_put_char(sum);

uart0_put_char(0xef);

delay_5ms(20);

 

UINT len;

 

while(FR_OK == fs_read(decext_buf,SECTOR_SIZE,&len)) //文件系统接口,按顺序一包包读取需要传输的文件数据,记住,实际一包数据不满SECTOR_SIZE,需要补0处理

{

//发送文件数据命令

uart0_put_char(0x7e);

uart0_put_char(0x00);

uart0_put_char(0xf0);

uart0_put_char(0x02);

uart0_put_char(0x00);

sum = 0xf2;

for(u16 i = 0;i<512;i++)

{

uart0_put_char(decext_buf[i]);

sum+=decext_buf[i];

}

uart0_put_char(sum);

uart0_put_char(0xef);

 

 

delay_wait = 0;

uart_rx_cnt=0;

uart_rx_buffer[0] = 0xff;

uart_rx_buffer[1] = 0xff;

uart_rx_buffer[2] = 0xff;

uart_rx_buffer[3] = 0xff;

delay_5ms(20);

 

 

while(1)

{

/* 等待中断接收数据缓存到uart_rx_buffer 客户也可通过查询方式获取返回码数据*/

delay_us(100);

if((uart_rx_buffer[2] == 0xf0)&&(uart_rx_buffer[3] == 0x00))

{

 

delay_5ms(2);

break; //下载一包数据返回成功

}

 

if((uart_rx_buffer[1] == 0x08)&&(uart_rx_buffer[2] == 0xfd)&&(uart_rx_buffer[3] == 0x00))

{

 

WDT_EN();

WDT_CLR();

return true; //下载文件返回成功

}

delay_wait++;

if(delay_wait >= 20000) //设置2S超时

{

delay_wait = 0;

exspi_msc_len = 0;

WDT_EN();

WDT_CLR();

return false; //下载数据无响应,返回错误

}

}

exspi_msc_len++;

if(exspi_msc_len*SECTOR_SIZE>=exspi_msc_fsize)

{

return false; //文件读取完毕,未收到成功返回码,下载返回错误

}

}

}

关于我们

唯创知音作为一家专注于语音技术研究的高新技术企业,始终坚持以“服务好工程师”为目标,以行业语音交互器件标准化为方向,致力于让复杂变简单,提供快捷的语音、智能物联网应用解决方案。

WT588F系列应用设计方案,在智能闹钟、智能水杯、雾化加湿器等消费电子行业领域内已有成熟的应用案例。消费类电子产品应用是公司重要的发展领域,未来,唯创知音将在更多行业推出标准化语音芯片,进一步提升工程师的设计体验,为消费类电子行业标准化赋能。

 审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2420002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存