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

发布时间:2023-06-13  

一、产品市场

随着家用电子设备的普及,各种智能化设备进入人们生活中,如洗地机、扫地机、共享单车、智能门锁、智能桌游、智能网关等,客户想方便快捷的更换替换产品的音频文件。针对部分客户自主更换语音内容的需求,定制化的语音方案,唯创知音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; //文件读取完毕,未收到成功返回码,下载返回错误

}

}

}


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

相关文章

    于实时性要求比较高。本文引用地址:市场上低功耗的受用户的喜爱度更深,因为它可以降低电子设备的功耗和成本,满足用户的需求。BLE有以下特点:低能耗具备经典蓝牙芯片的自适应AFH技术,可稳定低能耗蓝牙芯片的传输,因此低能耗蓝牙芯片......
    N8700蓝牙音乐芯片在无线音箱的应用;蓝牙音箱指的是内置蓝牙芯片,以蓝牙连接取代传统线材连接的音响设备,通过与手机平板电脑和笔记本等蓝牙播放设备连接,达到方便快捷的目的。蓝牙......
    深入解析主动降噪ANC蓝牙芯片技术;上下班通勤路上戴上耳机听听音乐缓解一天工作的疲惫已成为一种常态。可是道路上汽车的引擎声,地铁轨道里列车呼啸而过的轰鸣声影响着用户的体验。为此,现在很多无线耳机厂商在耳机里加入降噪芯片......
    高通LE Audio蓝牙芯片模块方案;高通LE Audio蓝牙芯片模块方案新功能 新出高通LE Audio蓝牙芯片,DSP由原120MHz提升到240MHz,QCC3071为单核、QCC5171为双......
    国产Wi-Fi/蓝牙芯片,谁家最好用?;经历过Wi-Fi 5后的十年沉寂,国产无线芯片正在追回“失去的十年”。如今,随着市场竞争加剧,出现了许多性能强大的国产Wi-Fi、蓝牙芯片。 目前,对工......
    主机能够单独工作和免提通话尽在掌握。真正无线耳机可实现单双耳佩戴。TWS耳机主要包括两个无线耳机和一个充电盒,从零组件构成来看,无线耳机主要包括主控蓝牙芯片、存储芯片、音频解码器、各种传感器、柔性电路板FPC和电池等;充电......
    智能跳绳蓝牙芯片MS1656解决方案;智能跳绳的手柄上有一块能够自动地显示记录的运动次数、时长和卡路里消耗等数据的隐形式的屏幕。智能跳绳运用低功耗蓝牙芯片通过电磁感应计数核心配合精确算法,保证......
    重要的是,低功耗音频还为Auracast™广播音频的应用提供了基础,带来了全新的音频体验。当前大部分蓝牙芯片厂商的产品都支持经典蓝牙或者低功耗蓝牙,例如瑞昱的RTL8762E全系列支持2.4GHz私有及低功耗蓝牙......
    MESH。正因为蓝牙有如此广泛的应用,所以蓝牙芯片厂商也非常多,中低端竞争激烈,特别是在国内,32位的蓝牙芯片零售价能达到2元以内。 今天要介绍的开发板是来自的RSL15-EVB,搭载的是RSL15......
    眼镜等单品也受到了消费者的青睐,成为具备潜力的可穿戴细分市场。终端市场的增长给上游蓝牙芯片厂商带来了成长机会。电子发烧友网整理了恒玄科技、杰理科技、中科蓝讯、泰凌微、炬芯科技这五家企业的业绩情况,由此......

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

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

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

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

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

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

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