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系列语音芯片驱动程序注意事项相关推荐

  1. ISD1700系列语音芯片使用注意事项

    ISD1700系列语音芯片使用注意事项 课程设计使用到了ISD1760录放音芯片,网上的相关资源差不多看了个遍,这里稍作总结.(英文手册比较好找,中文的需要积分下载,英语好的可以忽略) 硬件连接 软件 ...

  2. ISD系列语音芯片电路介绍及其应用

    ISD系列语音芯片电路介绍及其应用 语音芯片简介:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:o ...

  3. 详解ISD1700系列语音芯片的使用方法

    日常生活中,语音提示系统随处可见,如语音门铃.语音时钟.ATM存取款机.公交车报站等,语音功能越来越多应用在电子系统中. ISD1700系列是华邦公司推出的一块优质语音录放芯片,用来替代已经停产的IS ...

  4. 唯创知音WTV系列语音芯片再启程,传承经典

    声音,与我们的日常生活密不可分,而语音芯片,则是人与产品之间沟通的重要桥梁.早在2004年,唯创知音推出第一颗OTP语音芯片WTV系列,并陆续推出上位机软件与编程器,制定了语音芯片的行业标准规范,广泛 ...

  5. KT404A/C系列语音芯片参考程序硬件设计注意事项

    目录 1.概述 1.1 简介 KT404A是一个提供串口的语音芯片,完美的集成了MP3.WAV的硬解码.同时软件支持工业级别的串口通信协议,以SPIFLASH作为存储介质,用户可以灵活的选用其中的任何 ...

  6. 九齐ny3p系列语音芯片替代国产方案KT148A性价比更高420秒长度

    目录 一.简介 2.1 九齐ny3p的简介 2.2 KT148A芯片的简介 一.简介 九齐ny3p语音芯片替代方案国产KT148A性价比更高420秒长度 九齐ny3p语音芯片是台湾九齐公司于2013年 ...

  7. WT系列语音芯片-带您走进千家万户,畅享“智慧家居”生活

    语言为万物命名,给自然立法,我们有了和现实世界互动和沟通的工具.语言越发达,我们对于现实的理解也就越加丰富和深入,而原本杂乱无章的事物,就会随着语言的发展而变得井然有序.因为语言通过符号和法则,能够将 ...

  8. 基于WT588F02B语音芯片的智能语音感应洗手液器设计方案

    随着人类文明的进步,人们对健康卫生越来越重视,特别是在当前新冠疫情的情景下,出门戴口罩,回家消毒洗手尤为重要,其中洗手已经成为人们日常生活中必不可少的一个环节.这就诞生了很多与洗手有关的产品,这里主要 ...

  9. 智能宠物喂食器语音芯片应用设计方案(基于唯创语音芯片WT588E02-8S(C001)功能拓展)

    智能宠物喂食器语音芯片应用设计方案(基于唯创语音芯片WT588E02-8S(C001)功能拓展) 概述 本文主要通过使用唯创知音语音芯片扩展目录进行选型微定制,达到节省成本快速选型开发目的的应用介绍. ...

最新文章

  1. 按拼音模糊匹配查询条件的生成类
  2. 项目中WebService使用Spring容器的配置
  3. Exchange Technical community discussion group
  4. 【数学和算法】初识卡尔曼滤波器(四)
  5. 解决android应用程序适用新老android系统版本方法
  6. 一个游戏美术写给策划的快速入门
  7. 项目实战中如何使用抽象类和接口
  8. 酷派起诉小米:你竟敢侵我的权?
  9. matlab2c使用c++实现matlab函数系列教程-factorial函数
  10. 3850x5服务器装系统,IBM X3850 X5服务器ESXi 5安装配置全过程——安装
  11. Web安全扫描器Netsparker v3.5发布
  12. 视频转rtmp流及搭建视频流服务器
  13. R语言探索性因子分析练习
  14. P2141 珠心算测验
  15. erlang 学习ets表-2
  16. 天津美术学院2021级专升本新生报到前后相关要求
  17. 团队协作常见问题分析与解决
  18. 纽约州立大学环境与林业学院计算机科学专业,纽约州立大学环境科学与林业学院...
  19. 企业微信可以取消实名认证吗?如何操作
  20. 流畅的python 14章可迭代的对象、迭代器 和生成器

热门文章

  1. Java并发编程与技术内幕:ConcurrentHashMap源码解析
  2. 装机防忽悠征文]对付不良商家,攒机知识。
  3. 关于打码机色带应用及其调整方法
  4. elasticSearch的安装与使用
  5. 毕业生档案、户籍、三方协议等问答
  6. c语言万能搜索器,非索引搜索工具(CSearcher)
  7. NIST加密标准是什么意思?
  8. 用springboot jpa 报:No property yer found for type OrderMaster错
  9. OpenGL硬件加速判断
  10. 组图:广州一战士救人牺牲 轻生者后悔大哭