基于 WT2003H0語音芯片在掃地機/智能桌游等產品更換語音bin應用設計方案介紹
一、產品市場
隨著家用電子設備的普及,各種智能化設備進入人們生活中,如洗地機、掃地機、共享單車、智能門鎖、智能桌游、智能網關等,客戶想方便快捷的更換替換產品的音頻文件。針對部分客戶自主更換語音內容的需求,定制化的語音方案,唯創知音WT2003H0系列語音芯片遠程更換語音bin的功能無疑是一個很好的選擇。
本文以WT2003H0系列語音芯片為例,與唯創知音其余的WT2003H系列串口更新語音bin(bin文件包含運行程序+語音)不同,唯創知音新推出的這款芯片功能,為直接替換語音bin文件,由MP3、WAV格式合成,不包含運行程序。
二、產品應用框圖
語音更換
三、芯片功能特點
(1)工作電壓:2.0-5.2V;
(2)內置0.5W D類功放;
(3)可支持控制模式:一線、兩線單雙字節、UART串口控制、按鍵控制、SPI控制;
(4)默認通信波特率9600,用戶可通過波特率切換指令,自由切換波特率設置,最高可達1Mbps;
(5)支持語音高品質音頻格式,支持MP3和WAV格式,(音頻碼率支持8kbps~320kbps)聲音優美;
(6)包含所有標準控制指令的同時,更設置有串口更新音頻指令,用戶可自由選擇進入低功耗模式,功耗
(8)大功率IO驅動能力,最高可直接驅動64mA;
(9)制作語音bin文件,搭配客戶MCU通過串口自由更換語音;
(10)用戶可提前預留出語音bin文件下載更新口pin點,方便后續更換音頻+程序;
四、語音更新操作流程圖
五、相關控制指令預覽介紹
六、設計應用案例
1) 器件選型
2)設計原理圖
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及功放電路說明
七、程序范例
/*本例程主要介紹,從文件系統讀取一個文件,并將文件數據傳輸到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系列應用設計方案,在智能鬧鐘、智能水杯、霧化加濕器等消費電子行業領域內已有成熟的應用案例。消費類電子產品應用是公司重要的發展領域,未來,唯創知音將在更多行業推出標準化語音芯片,進一步提升工程師的設計體驗,為消費類電子行業標準化賦能。
更多詳情可搜索:深圳唯創知音電子有限公司,與在線客服溝通,我們會發送一份選型表給到大家,芯片 與 模塊 還可以申請免費送樣服務,期待您的光臨。
-
語音芯片
+關注
關注
12文章
1764瀏覽量
36585 -
語音技術
+關注
關注
2文章
226瀏覽量
21292 -
唯創知音
+關注
關注
0文章
61瀏覽量
146
發布評論請先 登錄
相關推薦
評論