WT588C语音芯片技术详解说明.docx
- 文档编号:516619
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:20
- 大小:236.44KB
WT588C语音芯片技术详解说明.docx
《WT588C语音芯片技术详解说明.docx》由会员分享,可在线阅读,更多相关《WT588C语音芯片技术详解说明.docx(20页珍藏版)》请在冰点文库上搜索。
WT588C语音芯片技术详解说明
WT588C语音芯片技术详解说明
1、产品特点
Ø可以重复烧写语音;
ØWT588C-16S容量可以选择4Mb、8Mb、16Mb、32Mb、64Mb、128Mb;
ØPWM和DAC两种音频输出方式;
Ø内部集成时钟振荡器;
Ø二线最多可以加载255段语音;
Ø触发防抖时间:
50us(串口)和10ms(按键);
Ø支持播放不同采样率的语音文件、WAV音频格式;
Ø支持BUSY状态输出功能;
Ø工作电压:
DC2.4~5.0V。
2、芯片选型
WT588C16-16S内置容量16Mbit,可以任意更换语音。
WT588C-16S外接SPI-flash,可以任意更换语音。
芯片控制方式有:
两线串口。
芯片输出方式有:
PWM输出(直接推动喇叭)、DAC输出(外接功放使用)。
下文有相应的参考电路。
3、应用范围
Ø汽车(防盗报警器、倒车雷达、GPS导航仪、电子狗、中控锁);
Ø智能家居系统;
Ø家庭防盗报警器;
Ø医疗器械人声提示;
Ø家电(电磁炉、电饭煲、微波炉);
Ø娱乐设备(游戏机、游乐机);
Ø学习模型(早教机、儿童有声读物);
Ø智能交通设备(收费站、停车场);
Ø通信设备(电话交换机、电话机);
Ø工业控制领域(电梯、工业设备);
Ø高级玩具。
4、管脚图
4.1、WT588C16-16S
D0
I/O
连接SPI-DI
SPI-DO
I/O
SPI-Flash的DO端口
SPI-CS
I/O
SPI-Flash的CS端口
P02
CLK
两线串口CLK
P01
DI
两线串口DI
P03
D0
两线串口DATAOUT
P04
REST
两线串口REST(高脉冲)
GND
GND
地线
SPI-DI
I/O
SPI-Flash的DI端口
VDDS
VDD
电源端口
PWM1
PWM
PWM输出音频口
PWM2
PWM/DAC
PWM输出音频口/DAC输出音频口
VDD
VDD
电源输入端口
VDDL
VDD
电源端口
VDDS
VDD
电源端口
SPI-CLK
I/O
SPI-Flash的CLK端口
4.2、WT588C-16S
SPI-DI
I/O
SPI-Flash的DI端口
SPI-DO
I/O
SPI-Flash的DO端口
SPI-CS
I/O
SPI-Flash的CS端口
P02
CLK
两线串口CLK
P01
DI
两线串口DI
P03
D0
两线串口DATAOUT
P04
RST
两线串口时可以设置为RESTE(高脉冲)
GND
GND
地线
P05
I/O
待定
P06
I/O
待定
PWM1
PWM
PWM输出音频口
PWM2
PWM/DAC
PWM输出音频口/DAC输出音频口
VDD
VDD
电源输入端口
VDDL
VDD
电源端口
VDDS
VDD
电源端口(3.3V输出,可以给SPI供电)
SPI-CLK
I/O
SPI-Flash的CLK端口
5、电气参数
环境温度25℃,工作电压DC3V
VDD
无
2.4
3
5.0
V
ISB
VDD=3V,没负载
3
4
5
uA
ISB
VDD=3V,没负载
1
1.5
3
uA
IOP
VDD=3V,没负载
600
uA
IOD
VDD=3V,VOUT=0.6V
10
mA
IOS
VDD=3V,VOUT=2.4V
30
mA
IOD
VDD=3V,VOUT=1.5V
200
mA
IOS
VDD=3V,VOUT=1.5V
200
mA
TOPR
-
-40~75
℃
6、两线串口控制模式
6.1、发送地址命令
两线串口控制模式由DI及CLK发送数据信号控制语音地址,同时由DO返回相关操作数据。
在发送DI前先将CLK拉高100us以唤醒芯片工作,继而发送周期为200us的CLK信号跟DI,在接收到DI数据100us后DO返回DI所发送的数据。
整个数据需要发送24bit,数据发送完成后200us,开始播放地址语音。
时钟周期的工作范围为50us~4000us。
备注:
在上电时,若CLK管脚有高脉冲或者高电平,则进入烧写模式,芯片无法正常工作,须给P04(RESET)一个10ms以上的高脉冲。
使用51系列MCU的客户需注意!
此类MCU复位后IO默认输出高电平,所以会导致WT588C芯片进入烧写模式。
因此、第一次发指令的时候、可以先给P04复位脚一个高脉冲复位一下芯片,然后发指令、CLK发送完后,建议把CLK拉低。
6.2、读取芯片工作状态
发送16bit的数据0×2200,可以通过读取DO返回的数据,知道芯片的当前状态。
由DO返回的D7数据,0代表语音停止,1代表芯片正在播放语音。
6.3、控制命令
初始化
DI
0×0A0140
24
每次上电后需要发送此命令,以唤醒芯片。
DO
播放
DI
0×18+语音地址
24
播放地址语音
DO
暂停
DI
0×0A0148
24
可以暂停正在播放的语音
DO
从暂停处播放
DI
0×0A0140
24
从暂停处恢复播放语音
DO
读取芯片状态
DI
0×2200
16
检验芯片是否处于停止状态,0为停止,1为播放。
DO
检验D7
休眠指令
DI
0x0A0100
24
直接进入休眠,可以打断正在播放的语音
DO
注意:
两线串口模式下不会自动进入休眠状态,需要低功耗可通过休眠指令让芯片进入休眠状态。
6.4、语音地址
WT588C在两线串口模式下最多可加载256段语音,注意由于语音总地址不一样,单片机发送给语音芯片的控制指令不一样。
当语音总地址小于100段时;地址所对应的命令如下:
(语音地址总个数为1~100)
可以发现规律、每个地址码按照20H累加。
1
0×1800C8
1
2
0×1800E8
2
3
0×180108
3
4
0×180128
4
5
0×180148
5
6
0×180168
6
……
……
……
97
0×180CA8
97
98
0×180CC8
98
99
0×180CE8
99
100
0×180D08
100
当语音总地址大于100段时;地址所对应的命令码如下:
可以发现规律、每个地址码按照08H累加。
1
0×1800C8
1
2
0×1800D0
2
3
0×1800D8
3
4
0×1800E0
4
5
0×1800E8
5
6
0×1800F0
6
……
……
……
252
0×1808A0
252
253
0×1808A8
253
254
0×1808B0
254
255
0×1808B8
255
256
0×1808C0
256
客户发送的是命令码就行了、比如说客户要播放第5个地址的语音。
即只需要发送指令0×1800E8即可。
7、应用电路
7.1、WT588C16-16S两线串口模式(PWM输出)
备注:
VDD电压范围可以选2.8~5.2V
芯片I/O口电压3.3V
7.2、WT588C16-16S两线串口模式(DAC输出)
备注:
VDD电压范围可以选2.8~5.2V
芯片I/O口电压3.3V
7.3、WT588C-16S两线串口模式(PWM输出)
备注:
VDD电压范围2.8~5.2V
芯片I/O口电压3.3V
7.4、WT588C-16S两线串口模式(DAC输出)
备注:
VDD电压范围2.8~5.2V
芯片I/O口电压3.3V
7.5、WT588C16-16S内置FLASH下载电路
备注:
1.PWM1要接上VDD
2.VDDS要接上VDD
3.芯片I/O口电压3.3V
8、程序范例
8.1、两线串口控制程序范例
//MCU:
STC10F04
//晶振:
22.1184MHz
#include“STC8051.h”/*STC8051definitions*/
#include
sbitWT_CLK=P2^0;
sbitWT_DI=P2^2;
sbitWT_DO=P2^3;
sbitLED_OUT=P4^6;//指示灯
sbitKEY1=P3^7;
sbitKEY2=P3^6;
sbitKEY3=P3^5;
sbitKEY4=P3^4;
unsignedcharVoiceAddr=0;//存储语音地址
/*--------------------------------------
;模块名称:
Delay_10us
;功能:
延时函数,STC10F0410us@22.1184MHz
;入参:
unsignedintn延时次数
;出参:
无
;-------------------------------------*/
voidDelay_10us(unsignedintn)
{
unsignedchari;
for(;n>0;n--)
{
for(i=40;i>0;i--)
{
_nop_();
}
}
}
/*--------------------------------------
;模块名称:
Delay_1ms
;功能:
延时函数,STC10F041ms@22.1184MHz
;入参:
unsignedintz延时次数
;出参:
无
;-------------------------------------*/
voidDelay_1ms(unsignedintz)
{
unsignedinti,j;
for(i=z;i>0;i--)
{
for(j=1700;j>0;j--);
}
}
/*--------------------------------------
;模块名称:
WTH_2L
;功能:
WTH二线串口通信函数,高位在前,发送24位数据
;入参:
发送的24位数据
;出参:
芯片返回的数据
;-------------------------------------*/
unsignedlongintWTH_2L(unsignedlongintdat)
{
unsignedchari;
unsignedlongintreturn_dat;
WT_CLK=1;
Delay_100us
(2);
for(i=0;i<24;i++)
{
WT_CLK=1;
if(dat&0x800000)WT_DI=1;
elseWT_DI=0;
dat<<=1;
Delay_10us(5);//50us
if(WT_DO)return_dat|=0x01;
elsereturn_dat&=~(0x01);
return_dat<<=1;
Delay_10us(5);//50us
WT_CLK=0;
Delay_10us(10);//100us
}
Delay_10us(5);//50us
if(WT_DO)return_dat|=0x01;
elsereturn_dat&=~(0x01);
return_dat&=0x7ffffe;//屏蔽前后无用的数据
returnreturn_dat;
}
/*--------------------------------------
;模块名称:
Play_voice
;功能:
WTH二线串口通信,WTH芯片播放语音
;入参:
播放的地址0~255
;出参:
0:
播放失败;1:
播放成功
;-------------------------------------*/
unsignedcharPlay_voice(unsignedcharaddr)
{
unsignedlongintdat;
dat=0x1800c8+(addr<<5);
if(WTH_2L(dat)==dat)return1;//播放成功
return0;//播放失败
}
/*--------------------------------------
;模块名称:
WTH_Check_sate
;功能:
WTH二线串口通信,查询WTH芯片状态,高位在前发送16位数据
;入参:
无
;出参:
0:
芯片未处于播放状态;1:
芯片正在播放状态
;-------------------------------------*/
unsignedcharWTH_Check_sate(void)
{
unsignedchari;
unsignedlongintdat=0x2200;
unsignedlongintreturn_dat;
WT_CLK=1;
Delay_100us
(2);
for(i=0;i<16;i++)
{
WT_CLK=1;
if(dat&0x8000)WT_DI=1;
elseWT_DI=0;
dat<<=1;
Delay_10us(5);//等待50us后才读取DO数据
if(WT_DO)return_dat|=0x01;
elsereturn_dat&=~(0x01);
return_dat<<=1;
Delay_10us(5);//50us
WT_CLK=0;
Delay_10us(10);//100us
}
if(WT_DO)return_dat|=0x01;
return_dat&=0xffff;
if(return_dat&0x80)//只判断第9位数据
return1;//正在播放
return0;//未播放
}
voidMain(void)
{
unsignedlonginttemp;
P2M0=0x00;
P2M1=(1<<3);//P22(DO)为高阻输入,其他为普通IO
WT_CLK=0;
WT_DI=0;
//如果是51系列单片机,请在在此时才给WTH芯片上电初始化。
P01=1;//打开WTH的电源控制
WTH_2L(0xa0140);//芯片初始化
while
(1)
{
if(P3!
=0xff)
{
if(KEY1==0)
{
Delay_1ms(20);
if(KEY1==0)
{
if(Play_voice(VoiceAddr));//每按一次播放下一曲
if(VoiceAddr<255)
{
VoiceAddr++;
}
}
while(KEY1==0);
}
if(KEY2==0)
{
Delay_1ms(20);
if(KEY2==0)
{
Play_voice(VoiceAddr);//每按一次播放上一曲
if(VoiceAddr)
{
VoiceAddr--;
}
}
while(KEY2==0);
}
if(KEY3==0)
{
Delay_1ms(20);
if(KEY3==0)
{
WTH_2L(0x1800c8);//手动播放某一指定地址,方便用于调试
}
while(KEY3==0);
}
if(KEY4==0)
{
Delay_1ms(20);
if(KEY4==0)
{
WTH_2L(0xa0140);//手动对芯片重新初始化,方便用于调试
}
while(KEY4==0);
}
}
Delay_1ms(30);
if(WTH_Check_sate())//检测芯片的状态
LED_OUT1=1;//正在播放语音
elseLED_OUT1=0;//未播放语音
}
}
9、封装尺寸图
9.1、WT588C-16S/WT588C16-16S封装尺寸图
单位:
mm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WT588C 语音 芯片 技术 详解 说明