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

发布时间:  

一、产品市场

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


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

二、产品应用框图

poYBAGKmq5-AN5RkAAAxwzNjWt0321.jpg

语音更换

三、芯片功能特点

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

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

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

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

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

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

(7)高精度ADC和DAC;

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

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

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

四、语音更新操作流程图

pYYBAGKmq8CAHKeoAAAfT7tIhmM240.jpg

五、相关控制指令预览介绍

poYBAGKmq_yAJqVbAAC0uOalN8g646.jpgpoYBAGKmrAyAfiL4AAEmfTWoME0250.jpg

六、设计应用案例

1) 器件选型

poYBAGKmrBmAG8oFAAEhs96SqEo452.jpg

2)设计原理图

pYYBAGKmrDqAVbaxAAF-2ol_p_g442.jpg

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及功放电路说明

pYYBAGKmrE-AA-xUAAD6v_Hj4OA046.jpg

七、程序范例

/*本例程主要介绍,从文件系统读取一个文件,并将文件数据传输到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; //文件读取完毕,未收到成功返回码,下载返回错误

}

}

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>