WT588F/E系列语音芯片驱动程序注意事项
WT588F/E系列语音芯片驱动程序&注意事项
- 一、简介
- 二、硬件连接
- 三、驱动层
- 1、配置GPIO
- 2、发送数据函数
- 3、播放语音
- 4、是否在播放语音
- 5、语音&命令码地址表
- 四、应用层
- 1、连码播放demo
- 五、其他
- 1、在线下载器更换语音
开的这个专栏会一直记录自己用过的驱动,有触摸芯片,RFID芯片,语音芯片,显示屏驱动,ADC,各种通讯模块等等,感兴趣的可以一起交流学习
源码查询该文章
专栏地址
一、简介
WT588F区别于传统OTP(单次烧写)的语音芯片,可以通过配套的下载器在线更换芯片内部语音内容。支持6-32KHz的WAV文件,工作电压2.0-5.5V。
语音芯片的时长及采样率自己根据使用情况联系芯片厂家。
二、硬件连接
本次项目MCU用的是复旦微的FM33G026,内核是Cortex-M0。
芯片IO口,默认内部1M下拉。用的是两线串口控制的模式,两线串口控制方式具有较好的抗干扰能力。
引脚:
CLK:时钟信号;MCU_OUT
DATA:发送数据信号;MCU_OUT
BUSY:时钟信号,默认播放语音时忙脚低电平;MCU_IN
三、驱动层
1、配置GPIO
在头文件中宏定义,用的FM33G026的库供参考,其他MCU配置管脚大同小异。
/* data */#define WT588F_DATA_PORT GPIOE#define WT588F_DATA_PIN GPIO_Pin_2#define WT588F_DATA_OUT_CFG() (OutputIO(WT588F_DATA_PORT,WT588F_DATA_PIN,OUT_PUSHPULL))#define WT588F_DATA_OUT_H() (GPIO_SetBits(WT588F_DATA_PORT,WT588F_DATA_PIN))#define WT588F_DATA_OUT_L() (GPIO_ResetBits(WT588F_DATA_PORT,WT588F_DATA_PIN))/* busy */ #define WT588F_BUSY_PORT GPIOB#define WT588F_BUSY_PIN GPIO_Pin_14#define WT588F_BUSY_IPU_CFG() (InputtIO(WT588F_BUSY_PORT,WT588F_BUSY_PIN,IN_NORMAL))#define WT588F_BUSY_READIN() (GPIO_ReadInputDataBit(WT588F_BUSY_PORT,WT588F_BUSY_PIN))/* clk */ #define WT588F_CLK_PORT GPIOB#define WT588F_CLK_PIN GPIO_Pin_15#define WT588F_CLK_OUT_CFG() (OutputIO(WT588F_CLK_PORT,WT588F_CLK_PIN,OUT_PUSHPULL))#define WT588F_CLK_OUT_H() (GPIO_SetBits(WT588F_CLK_PORT,WT588F_CLK_PIN))#define WT588F_CLK_OUT_L() (GPIO_ResetBits(WT588F_CLK_PORT,WT588F_CLK_PIN))
初始化WT588F,注意:上电初始化要200ms
/********************************************************* @brief void WT588F_Init()* 初始化* @param* @arg:* @return* none* @note ******************************************************/
void WT588F_Init()
{WT588F_DATA_OUT_CFG();WT588F_BUSY_IPU_CFG();WT588F_CLK_OUT_CFG();delay_ms(200); WT588F_DATA_OUT_H();WT588F_CLK_OUT_L();
}
2、发送数据函数
tips:
1、 WT588F 语音芯片上电初始化时间大概 200ms,初始化期间无法响应指令。
2、一条指令最短时间为6.6ms(5ms+0.2ms*8=6.6ms)。
3、芯片 IO 口,默认内部1M下拉。因此在做低功耗休眠时,播放结束后可以将 CLK 和DATA 拉低,防止倒灌电流;若 CLK 拉低,发指令前需将 CLK 拉高大于 3ms 后再发送指令。
/********************************************************* @brief static void send_data()* 发送数据* @param* @arg:* @return* none* @note CLK高位数据有效******************************************************/
static void send_data(u8 data)
{u8 i;WT588F_CLK_OUT_L();WT588F_DATA_OUT_H();delay_ms(5); //发送一个字节数据前,时钟信号CLK拉低5msdelay_us(300); //时钟周期for(i=0;i<8;i++){if(data & 0x01){WT588F_DATA_OUT_H();}else{WT588F_DATA_OUT_L();}data >>= 1;WT588F_CLK_OUT_H(); //在时钟的上升沿接收数据delay_us(300);WT588F_CLK_OUT_L(); delay_us(300);}WT588F_DATA_OUT_H();WT588F_CLK_OUT_H();
}
3、播放语音
tips
1、低功耗休眠若 CLK 拉低,发指令前需将 CLK 拉高大于 3ms 后再发送指令。
/********************************************************* @brief void WT588F_Play(u8 addr)* 播放对应地址语音* @param* @arg:* @return* none* @note ******************************************************/
void WT588F_Play(u8 addr)
{WT588F_CLK_OUT_H();delay_ms(3); //做低功耗时CLK拉低,发指令前需将CLK拉高大于3ms后再发送指令。send_data(addr);
}
4、是否在播放语音
/********************************************************* @brief u8 WT588F_isBusy()* 是否在播放语音* @param* @arg:* @return* busy:低电平* @note ******************************************************/
u8 WT588F_isBusy()
{if(!WT588F_BUSY_READIN()){return 1;}return 0;
}
5、语音&命令码地址表
四、应用层
1、连码播放demo
tips
1、连码播放时 F3 指令和地址之间需留 2ms 的间隔时间,可参考下图。
/********************************************************* @brief void WT588F_ListPlay()* 连码播放* @param* @arg:* @return* none* @note ******************************************************/
void WT588F_ListPlay()
{WT588F_CLK_OUT_H();delay_ms(3); //做低功耗时CLK拉低,发指令前需将CLK拉高大于3ms后再发送指令。send_data(LOOP_EXTI); //F3delay_ms(2);send_data(ZERO); //01delay_ms(2);send_data(LOOP_EXTI); //F3delay_ms(2);send_data(ONE); //02delay_ms(2);send_data(LOOP_EXTI); //F3delay_ms(2);send_data(TWO); //03delay_ms(2);send_data(LOOP_EXTI); //F3delay_ms(2);send_data(THREE); //04
}
五、其他
1、在线下载器更换语音
如有用到下载器按下图连接
结语
该芯片比较简单,想不到太多展开,也有一线串口的使用方法,更加简单,有问题直接提问。
源码查询该文章
WT588F/E系列语音芯片驱动程序注意事项相关推荐
- ISD1700系列语音芯片使用注意事项
ISD1700系列语音芯片使用注意事项 课程设计使用到了ISD1760录放音芯片,网上的相关资源差不多看了个遍,这里稍作总结.(英文手册比较好找,中文的需要积分下载,英语好的可以忽略) 硬件连接 软件 ...
- ISD系列语音芯片电路介绍及其应用
ISD系列语音芯片电路介绍及其应用 语音芯片简介:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:o ...
- 详解ISD1700系列语音芯片的使用方法
日常生活中,语音提示系统随处可见,如语音门铃.语音时钟.ATM存取款机.公交车报站等,语音功能越来越多应用在电子系统中. ISD1700系列是华邦公司推出的一块优质语音录放芯片,用来替代已经停产的IS ...
- 唯创知音WTV系列语音芯片再启程,传承经典
声音,与我们的日常生活密不可分,而语音芯片,则是人与产品之间沟通的重要桥梁.早在2004年,唯创知音推出第一颗OTP语音芯片WTV系列,并陆续推出上位机软件与编程器,制定了语音芯片的行业标准规范,广泛 ...
- KT404A/C系列语音芯片参考程序硬件设计注意事项
目录 1.概述 1.1 简介 KT404A是一个提供串口的语音芯片,完美的集成了MP3.WAV的硬解码.同时软件支持工业级别的串口通信协议,以SPIFLASH作为存储介质,用户可以灵活的选用其中的任何 ...
- 九齐ny3p系列语音芯片替代国产方案KT148A性价比更高420秒长度
目录 一.简介 2.1 九齐ny3p的简介 2.2 KT148A芯片的简介 一.简介 九齐ny3p语音芯片替代方案国产KT148A性价比更高420秒长度 九齐ny3p语音芯片是台湾九齐公司于2013年 ...
- WT系列语音芯片-带您走进千家万户,畅享“智慧家居”生活
语言为万物命名,给自然立法,我们有了和现实世界互动和沟通的工具.语言越发达,我们对于现实的理解也就越加丰富和深入,而原本杂乱无章的事物,就会随着语言的发展而变得井然有序.因为语言通过符号和法则,能够将 ...
- 基于WT588F02B语音芯片的智能语音感应洗手液器设计方案
随着人类文明的进步,人们对健康卫生越来越重视,特别是在当前新冠疫情的情景下,出门戴口罩,回家消毒洗手尤为重要,其中洗手已经成为人们日常生活中必不可少的一个环节.这就诞生了很多与洗手有关的产品,这里主要 ...
- 智能宠物喂食器语音芯片应用设计方案(基于唯创语音芯片WT588E02-8S(C001)功能拓展)
智能宠物喂食器语音芯片应用设计方案(基于唯创语音芯片WT588E02-8S(C001)功能拓展) 概述 本文主要通过使用唯创知音语音芯片扩展目录进行选型微定制,达到节省成本快速选型开发目的的应用介绍. ...
最新文章
- 按拼音模糊匹配查询条件的生成类
- 项目中WebService使用Spring容器的配置
- Exchange Technical community discussion group
- 【数学和算法】初识卡尔曼滤波器(四)
- 解决android应用程序适用新老android系统版本方法
- 一个游戏美术写给策划的快速入门
- 项目实战中如何使用抽象类和接口
- 酷派起诉小米:你竟敢侵我的权?
- matlab2c使用c++实现matlab函数系列教程-factorial函数
- 3850x5服务器装系统,IBM X3850 X5服务器ESXi 5安装配置全过程——安装
- Web安全扫描器Netsparker v3.5发布
- 视频转rtmp流及搭建视频流服务器
- R语言探索性因子分析练习
- P2141 珠心算测验
- erlang 学习ets表-2
- 天津美术学院2021级专升本新生报到前后相关要求
- 团队协作常见问题分析与解决
- 纽约州立大学环境与林业学院计算机科学专业,纽约州立大学环境科学与林业学院...
- 企业微信可以取消实名认证吗?如何操作
- 流畅的python 14章可迭代的对象、迭代器 和生成器