1 Products Market
-產(chǎn)品市場
隨著家用電子設(shè)備的普及,各種智能化設(shè)備進入人們生活中,如洗地機、掃地機等,目前大多數(shù)掃地機和洗地機都加了音效提示音,以及人工提示音,但較為單一,且部分應(yīng)用無法隨時更換語音,針對部分客戶的特殊需求,去定制化語音方案。同時一些客戶端的工程師,會經(jīng)常感到主控MCU IO口不夠,需要驅(qū)動電機、溫度檢測、LCD或數(shù)碼管顯示、語音控制播報等。唯創(chuàng)知音WT2003H語音芯片,能用一個IO實現(xiàn)復(fù)雜功能需求,留出主控MCU更多的IO口,去實現(xiàn)更多交互功能。
本文以WT2003H0系列芯片+一顆外掛Flash為例,介紹WT2003H系列芯片即時更換語音功能,及唯創(chuàng)知音后續(xù)推出的擴展類,芯片語音播報+LCD驅(qū)動顯示作一些簡單介紹。
2-語音更新+語音播報+LCD驅(qū)動顯示
單片機MCU
語音更換:使用本司W(wǎng)T2003HX系列燒寫下載器+上位機,通過串口快速進行語音更換;
WT2003X系列:WT2003H0-24SS語音芯片;
LCD驅(qū)動顯示:唯創(chuàng)知音擴展類系列產(chǎn)品,本文這里僅對LCD12864作簡單概述;
3-芯片功能特點
注:COM(位)- IO口可擴展作為數(shù)碼管位選使用;
LED(段) - IO口可擴展作為數(shù)碼管段選使用;
Key(按鍵)- IO口可擴展作為按鍵使用。
工作電壓:2.0-5.2V;
內(nèi)置0.5W D類功放;
控制模式:一線、兩線單雙字節(jié)、UART串口控制、按鍵控制、SPI控制;
UART控制模式,默認(rèn)波特率9600,用戶也可發(fā)送波特率切換指令,自由選擇通信波特率,最大不超過1Mbps,帶有文件索引播放、插播、 單曲循環(huán)、所有曲目循環(huán)、隨機播放等功能。32 級音量可調(diào)、最大可以支持外掛 128Mbit 的 Flash;
支持語音高品質(zhì)音頻格式,支持MP3和WAV格式,(音頻碼率支持8kbps~320kbps)聲音優(yōu)美;
低功耗,芯片設(shè)置5S不播放,自動進入休眠模式,功耗可達5uA以下,如為電池類產(chǎn)品,可大大延長其使用壽命;
16 bit高精度ADC和DAC;
大功率IO驅(qū)動能力,最高可直接驅(qū)動64mA;
單芯片使用(使用內(nèi)置容量)時內(nèi)置語音需出廠前寫入,也可選擇WT2003H0+外掛Flash;
可重復(fù)燒寫芯片程序及語音;
搭配唯創(chuàng)知音上位機軟件,輕松制作語音bin文件,通過程序燒錄串口可自由更換語音;
4-語音播報通信控制介紹
#標(biāo)準(zhǔn)UART異步串口接口,屬于3.3V TTL電平接口。通訊數(shù)據(jù)格式是:起始位:1位;數(shù)據(jù)位:8位;奇偶位:無;停止位:1位。使用電腦串口調(diào)試助手,需要正確設(shè)置串口的參數(shù),設(shè)置如圖:
通信控制介紹
注意:“長度”是指長度+命令碼+參數(shù)+校驗和的長度,“累加和校驗”是指長度+命令碼+參數(shù)的累加和的低字節(jié)。
注意:Flash語音播放可以實現(xiàn)FLash索引播放,組合播放,插播等指令;
表4通信查詢命令
5 設(shè)計應(yīng)用案例
1)器件類型
2)設(shè)計原理圖
如上原理圖所示,LCD12864 的 8 位數(shù)據(jù)口與芯片IO口相連, LCD12864 的 RS、RW、EN 腳與語音芯片的 4、5、6 管腳連接,LCD片選腳CS與芯片第20腳相連
3)部分代碼展示
3.1語音芯片串口測試部分
extern u8 Rx_Buffer_t[UART_MAX_RX_BETY];
extern u32 Rx_Len_t;
extern u8 wt_uart_rx_flag_a;
static u8 test_mode = 0;
u8 Uart_Receive_Deal(void)
{
u16 Code_Sum_t = 0;
u32 code_num = 0;
code_num = Rx_Len_t;
put_buf(Rx_Buffer_t,Rx_Len_t);
if(Rx_Buffer_t[0] != CODE_HEAD)
{
//uart_buff();
return 0;
}
if(Rx_Buffer_t[code_num - 1] != CODE_TAIL)
{
//uart_buff();
return 0;
}
//累加和
for(u8 i=1; i<Rx_Buffer_t[1]; i++)
{
Code_Sum_t += Rx_Buffer_t[i];
}
//校驗
if(Rx_Buffer_t[code_num - 2] != (Code_Sum_t & 0xff))
{
//uart_buff();
return 0;
}
if(Rx_Buffer_t[2]==0xA1)
{
test_mode = Rx_Buffer_t[3];
test_set_mode(test_mode);
}
else
{
log_info("Comand Erro!n");
}
return 1;
}
3.2 LCD命令和數(shù)據(jù)寫入
void Lcd_WriteCmd(cmd) //寫入命令到LCD
{
LCD12864_CS = 0; //打開片選
LCD12864_RD = 1; //讀使能
LCD12864_RS = 0; //選擇命令
LCD12864_RW = 0; //選擇寫模式
_nop_();
_nop_();
_nop_();
DATA_PORT = cmd; //放置命令
_nop_();
_nop_();
_nop_();
LCD12864_RW = 1; //寫入命令
}
void Lcd_WriteData(dat) //寫入數(shù)據(jù)到LCD
{
LCD12864_CS = 0; //打開片選
LCD12864_RD = 1; //讀失能
LCD12864_RS = 1; //選擇數(shù)據(jù)
LCD12864_RW = 0; //選擇寫模式
_nop_();
_nop_();
DATA_PORT = dat; //放置數(shù)據(jù)
_nop_();
_nop_();
LCD12864_RW = 1; //寫數(shù)據(jù)
}
聯(lián)系方式:4008-122-919