会定时提醒的贴心提示板之核心语音芯片(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集语音播放、定时提醒、时钟功能于一身,通过单片机指令实现定制播报、任务提醒、任务计时、时间显示等功能,芯片支持喇叭直推,音质好,声音清脆无杂音,让你不会错过任何一个重要的安排。
方案原理图(WT588F02B部分):
控制指令:
协议命令格式:
WT588F02B-8S内置标准UART异步串口接口,属于3.3V TTL电平接口。通讯数据格式是:起始位:1位;数据位:8位;奇偶位:无;停止位:1位。使用电脑串口调试助手,需要正确设置串口的参数,设置如图:
指令格式
唤醒码 | 起始码 | 长度 | 命令码 | 参数 | 累加和校验 | 结束码 |
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
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !