基于WT588F02B-8S芯片带语音播放和闹钟提醒的的手写提示板方案

描述

会定时提醒的贴心提示板之核心语音芯片(WT588F02B)和闹钟部件

0 1 概述

你是不是经常忘记做某些事情?你是不是经常沉浸在自己的工作中而错过了其他的工作?你是否想要一个没有手机干扰但是也不会错过任何事情的环境?这款基于WT588F02B-8S芯片带语音播放和闹钟提醒的的手写提示板方案或许能帮到你。

核心部件方案功能说明

0 2

1、带时钟功能,可以提供准确时间信息;

2、在到设定的时间后进行语音提示;

3、任务计时功能;

4、兼顾声音播报功能,配合单片机可以提供时间显示;

5、支持设定20组提醒。

WT588F02B芯片是一款高性能语音播放芯片,芯片内部有183K byte 的存储空间,最大支持223段语音或170S语音播放,支持数据反复擦写,更换不同提示音,满足不同客户需求。

目前该芯片广泛应用于门铃、门锁、电饭煲等家电,以及各类广播提示器、测温仪等各类日常使用的语音播放产品当中,得到客户的广泛认可和一致好评。

0 3 核心部件的方案优势

WT588F02B-8S内置标准UART异步串口接口,用户用单片机通过指令控制,可以很方便的实现对应的时间获取,语音播放、报时,任务提醒等功能,使用简单,响应迅速。

同时WT588F02B在接收完指令之后还会返回相关操作数据,避免误操作,有利于产品开发。

内置语音更换功能,生产时可以根据不同的场景、不同语言更换不同的语音。满足用户不同需求。

芯片功能简述

0 4

1. 16位DSP语音芯片、32Mhz内部振荡;

2. 工作电压2.0~5.5V;建议电压:2.2~4.0V(由于串口使用TTL电平通信)

3. 16bit的PWM/DAC输出、可直接驱动8R 0.5W喇叭;

4. 支持6K~32Khz的WAV文件;

5. 客户可以通过配套下载测试板在线更换芯片内部语音内容;

6. 带语音提示功能(完整的WT588F标准播放功能);

7. 支持223段地址,有更多需求可以扩展;

8. 芯片内部有183K byte 的存储空间(不包括主控程序)。

9. 芯片主控程序和内置存储数据均可擦除再烧写。

10. 读取当前时钟信息: 年、月、日、时、分、秒、周

11. 设置当前时间信息: 年、月、日、时、分、秒

12. 设置报警信息:列表 20组报警

13. 放置用户数据(读写):256个字节 放在FLASH里面

14. 低电压检测功能,当电压低于3.3V时,不播放语音,并将低电压标志位置1,此时语音芯片还是正常工作,只是不播放语音,以避免播放时电压波动导致产品复位。

方案介绍

 WT588F02B集语音播放、定时提醒、时钟功能于一身,通过单片机指令实现定制播报、任务提醒、任务计时、时间显示等功能,芯片支持喇叭直推,音质好,声音清脆无杂音,让你不会错过任何一个重要的安排。

TTL电平

方案原理图(WT588F02B部分):

TTL电平

控制指令:

协议命令格式:

WT588F02B-8S内置标准UART异步串口接口,属于3.3V TTL电平接口。通讯数据格式是:起始位:1位;数据位:8位;奇偶位:无;停止位:1位。使用电脑串口调试助手,需要正确设置串口的参数,设置如图:

TTL电平

指令格式

唤醒 起始码 长度 命令码 参数 累加和校验 结束码
0X00 0X7E 见下文 见下文 见下文 见下文 0XEF

返回格式

起始码 长度 命令码 参数 累加和校验 结束码
0X7E 04 见下文 见下文 见下文 0XEF

语音类串口指令:只有指令长度和校验是正确的,才会判断命令;命令不存在时,没有返回值,参数过多也没有返回值,参数错误返回01

时钟类串口指令:按照其表描述的返回一致就行,只有长度和校验是正确的,才会判断命令;命令不存在,没有返回值,参数过多也没有返回值,参数错误返回01;

注意:“长度”是指长度(1字节)+命令码(若干字节)+参数(若干字节)+校验和(1个字节)的长度(字节数);

“累加和校验”是指长度+命令码+参数的累加和的低字节;

返回参数(XX) 含义
00 代表成功
01 代表失败

管脚说明

封装形式 管脚
PC2 PI0
SOP8/DIP8 TXD RXD

语音播放指令

命令码 功能 备注
A0 播放对应地址语音  
AE 音量调节 00为静音,1F为最大音量,共32级音量调节
AF 循环播放当前语音 循环播放可被AB、B0指令打断并失效
AB 停止播放当前语音  
B0 连码播放  

指令格式

唤醒码 起始码 长度 命令码 参数1 参数2 .... 参数end 效验码 结束码
00 00 7E XX 0xAX Adr 1 Adr 2 .. Adr End XX 0xEF

播放对应地址语音(A0)

唤醒码 起始码 长度 命令码 地址(高两位) 地址(低两位) 校验码 结束码
00 7E 05 A0 XX XX XX EF
数据(十六进制)(XX XX) 功能
00 00H 播放第0段语音
00 01H 播放第1段语音
00 02H 播放第2段语音
……. ......
7F FDH 播放第32,765段语音
7F FEH 播放第32,766段语音
7F FFH 播放第32,767段语音

注意:1.可以播放32,767段语音;

音量调节指令(AE)

唤醒码 起始码 长度 命令码 音量调节 校验码 结束码
00 7E 04 AE XX XX EF

注意:

1.音量调节共有32级(00~1F),其中00音量最小,1F音量最大;

2.在语音播放结束、播放过程中或者待机状态发此命令调节音量;

循环播放当前语音(AF)

唤醒码 起始码 长度 命令码 地址 校验码 结束码
00 7E 04 AF XX XX EF

注意:

1.地址----表示01或者00;01:单曲循环;00:取消单曲循环;

2.执行此命令可循环播放当前段语音,可在语音播放时发送。循环指令执行过程中,可被AB命令、普通地址指令、B0组合指令打断,并失效,需先发播放指令,再发循环播放指令;

停止当前语音播放(AB)

唤醒码 起始码 长度 命令码 校验码 结束码
00 7E 03 AB AE EF

连码播放(B0)

唤醒码 起始码 长度 命令码 固定码 固定码 地址1 地址1 ... 地址n 地址n 校验码 结束码
00 7E XX B0 FF NN X1_H X1_L .... Xn_H Xn_L XX EF

注意:

1.FF/NN----固定码,预留,暂时没有作用,可以直接用00 00替代(不可缺);

2.示例:假如我们要让芯片依次播放01/01/02地址的语音内容,即连码指令播放;

指令是:00 7E 0B B0 00 00 00 01 00 01 00 02 BF EF.

命令码 功能 命令码详解 备注
FF 01 01 获取当前时钟 FF 01 01+R1 R2 R3 R4 R5 R6 R7 R8
R1:年 千位和百位;
R2:年 十位和个位;
R3:月;     R4:日;
R5:时;     R6:分;
R7:秒;     R8:星期;
数据都为16进制
00:星期日
01:星期一
02:星期二
03:星期三
04:星期四
05:星期五
06:星期六
FF 01 02
R1 R2 R3
R4 R5 R6
R7
设置当前时钟信息 R1:年 千位和百位;
R2:年 十位和个位;
R3:月;     R4:日;
R5:时;     R6:分;
R7:秒;    
数据都为16进制
 
FF 01 03
X1 X2 X3
X4 X5 X6
设置报警/闹钟信息 命令后接 6个数据,分别代表:
X1:报警组,
X2:报警状态,bit7=1,该报警组使能
X3:星期,bit7=1,星期使能
X4:日期,bit7=1,日期使能
X5:时,bit7=1,小时使能
X6:分,bit7=1,分钟使能
若设置报警组1每天7:30报警则发:7E 0B FF 01 03 01 80 00 00 87 9E B4 EF
星期和日期二选一使能且只能设置每周某一个星期使能
20组报警组
X1从0x01~0x14
注意:X2的bit0~bit6用户可自定义状态,系统不会改变它的值;
FF 01 04 获取当前报警信息 有报警,则反馈:FF 01 04 +如上6个信息 查询正在发生的报警。
FF 01 05
XX
清除对应定时 XX:报警组 FF代表全部
FF 01 06 查询多少组定时 反馈:FF 01 06+报警组数  
FF 01 07
XX
查询XX组定时信息 反馈:FF 01 07 X1 X2 X3 X4 X5 X6  
FF 01 08 清除报警跟倒计时中断信号   成功返回00,失败返回01
FF 01 09
X1 X2 X3
X4
设置倒计时 X1 :倒计时控制寄存器
bit7=1,倒计时使能
bit6=1,倒计时重载数据使能
X2:倒计时计数器H
X3:倒计时计数器M
X4:倒计时计数器L
最大支持4660小时倒计时,计时单位秒,
若想停止计时器,则让X1的bit7≠1。
FF 01 0A 查询倒计时 反馈:FF 01 0A 查询倒计时剩余秒数
FF 01 0B 查询状态寄存器 发送: 00 7E 05 FF 01 0B 10 EF
返回: 7E 05 FF 01 0B X1 X2
X1:  bit7=1,有报警信号;
     bit6=1,有倒计时信号;
     bit5=1,低电压信号;
     bit4=1,正在播放;
     bit3~0,预留
X2: 预留
 

存储指令:

FF 01 0C 读取存储数据 FF 01 0C adr0 adr1+adr19
adr0:表示要读取地址(00~255)
最多一次读20个byte数据
返回:FF 01 0C data0 data1+data19
对应地址上放对应数据值(data0)
例如:读取位置00/01/02/03/04的值00 7E 0A FF 01 0C 00 01 02 03 04 20 EF
返回:7E 0A FF 01 0C A0 A1 A2 A3 A4
40 EF
注意:掉电不记忆
FF 01 0D 写存储数据 FF 01 0D adr0 data0 adr1 data1+adr19 data19
adr0:要写入地址(00~255);
data0:前面地址要写入的数据;
地址+数据成组出现
注意:最多一次可以写入20个byte数据
例如:在位置00/01/02/03/04写入A0/A1/A2/A3/A4
00 7E 0F FF 01 0D 00 A0 01 A1 02 A2 03 A3 04 A4 50 EF

存储指令:

指令格式

唤醒码 起始码 长度 命令码 参数 校验码 结束码
00 7E XX FF 01 XX XX XX EF

返回格式

起始码 长度 命令码 参数 校验码 结束码
0x7E 04 XX XX XX EF

注意:

返回参数(XX) 含义
00 代表成功
01 代表失败

功能编号指令:

查询功能编号指令(90)

唤醒码 起始码 长度 命令码 校验码 结束码
00 7E 03 90 93 EF

注意:1.返回格式:

起始码 长度 命令码 功能编号 校验码 结束码
7E 06 90 Cx xx xx xx EF

2.例如返回:7E 06 90 C0 01 01 58 EF






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分