这里写目录标题
写在前面
WT588D在3年以前的一个比赛里曾经用过,但是当时自己并不是负责这一部分的人,所以也没有接触。但一直感觉应该挺简单的。
直到最近突然有一个项目需要用到,才买了芯片和下载器。本来以为水到渠成的事情,却把自己折腾的死去活来,今天晚上终于把东西调通了。回顾这一路,坑还是比较多的,还有自己的轻视态度。如果是第一次接触,可能中间花费的时间和精力会少很多。
趁着刚刚调通,把过程记录一下,也方便其他人。
正文
设备
1.16pWT588D
2.11键下载器
语音烧录
- 将模块放在下载器上
模块靠底放置,缺口对着锁紧座的摇杆。放反会导致模块芯片发热。
但质量还是不错的,我放反了好几次,以为会烧了,但一直没坏。 - 喇叭接在白色插槽上
上正下负 - 安装电脑上位机WT588D VioceChip软件
不要不信邪,这个软件只能在32位的win7(实测系统为旗舰版)上使用。
不要想着用虚拟机什么花里胡哨的,没用,xp,win7都不行。
具体是指 工具 下载 连接 时失败,弹出如下窗口
主界面有音频装载区和音频编辑区两个部分,这是重点 - 准备要播报的语音
推荐使用资料包里提供的“语音合成工具”,啥事没有。MP3可能需要转成WAV的格式,没有实测。 - 烧录语音的过程
1 新建工程
2 装载语音到音频装载区
3 音频编辑区每个地址序号插入一个音频装载区的语音
4 选择模式 按键模式
5 操作 编译并存为BIN
6 工具 下载 连接 下载到SPI存储区
7 按下下载器的按键,会播报对应序号的语音
嵌入式设备上的使用
- 为了能在嵌入式设备上使用,将模式改为三线串口模式,其他设置默认
- 操作 编译并存为BIN
- 工具 下载 连接 下载到SPI存储区
- 将芯片拔下来,与嵌入式设备进行连接
参考连线如下
软件设置:三线串口控制模式。
控制端口定义:P01 为 DATA,P02 为 CS,P03 为 CLK。由 MCU 发送信息对 WT588D 进行控制。
BUSY 输出:P17 为 BUSY 忙信号输出端,可从上位机软件端设置为播放状态输出为高电平或低电平。高电平时电压接近 VDD
供电电压。用于接发光二极管做放音状态指示或忙信号判断。
供电电压:VDD=DC2.8~5.5V,VCC=DC2.8~3.6V。采用 DC3.3V 供电时,可以直接短接 VDD 跟 VCC,采用 DC5V 供电时,
VDD 端接 5V,VCC 端需要从 VDD 端串接两个二极管以提供工作电压。VDD1 为 MCU 工作电压。如果 VDD1 跟 VDD 存在压差,需
要在 MCU 跟 WTW-16P 的通信线 DATA、CS、CLK 上串接电阻。
音频输出:PWM 输出方式,直接接扬声器。此种输出方式下,PWM+、PWM-均不能短接到地或者接电阻电容到地。
- 调用代码(STM32版本)
void voice_broadcast(unsigned char voice) //语音芯片三线发码子程序
{
unsigned char i;
RST_L;
delay_ms(10);
RST_H;
delay_ms(20); /* 20ms*/
CS_L;
delay_ms(5);
for(i=0;i<8;i++)
{
SCL_L;
if(voice & 1)
SDA_H;
else
SDA_L;
voice>>=1;
delay_us(100); /* 100us */
SCL_H;
delay_us(100);
}
CS_H;
}
写在最后
由于不是教程,所以很多不太重要的地方都省略掉了。
参考资料也不罗列了,就是WT588D资料包中的文档,很容易就能找到。
过程中的坑主要是两个
一是烧录软件找不到老电脑来安装
二是调用函数中的延时过小,导致程序不正常(因为以前在另外一块32上用过,程序没问题,所以感觉是个玄学。后来仔细看了参考资料,修改了复位后的延时,程序正常了)