首页 » 通讯 » 简单好用的ISD1820语音录放芯片_按键_按下

简单好用的ISD1820语音录放芯片_按键_按下

admin 2024-12-21 12:23:02 0

扫一扫用手机浏览

文章目录 [+]

· 学习STM32 GPIO的输入输出

· 按键扫描功能实现

简单好用的ISD1820语音录放芯片_按键_按下 简单好用的ISD1820语音录放芯片_按键_按下 通讯

芯片特点

1. 事情电压3~5V;

简单好用的ISD1820语音录放芯片_按键_按下 简单好用的ISD1820语音录放芯片_按键_按下 通讯
(图片来自网络侵删)

2. 单段录放掌握大略;

3. 带发话器放大直通功能——可用作喊话器模块;

4. 边沿/电平触发放音;

5. 内置8Ω喇叭驱动放大电路,即可直接驱动8欧0.5W小喇叭;

6. 无需单片机参与即可实现录放音功能;

7. 取样率和录放音韶光可以由外部振荡电阻调节。
外接电阻调度录音韶光,可以实现8~20秒语音录放。
录入的韶光越短音质越好,录入的韶光越长音质越差;

振荡电阻(ROSC): 此端接振荡电阻至VSS,由振荡电阻的阻值决定录放音的韶光。

推举运用电路

运用处景

· 录音喊话器

· 录音门铃

· 留言

· 播放固定欢迎语

封装及引脚功能:

· 1脚为录音端(REC),高电平有效。
只要REC变高电平(不管芯片处在节电状态还是正在放音),芯片即开始录音。
录音期间,REC必须保持为高电平。
REC变低电平或内存录满后,录音周期结束,芯片自动写入一个信息结束标志(EOM),使往后的重放操作可以及时停滞。

如果用户只须要电路做放音用,可以在芯片录好音测试无误后,将芯片的REC端长期接地,取消REC按键,这样可以防止意外抹音。

· 2脚为边沿触发放音端(PLAYE),此端涌现上升沿时,芯片开始放音。
放音持续到EOM标志或内存结束。
开始放音后,可以开释PLAYE。

· 3脚为电平触发放音端(PLAYL),此端从低电平变高电平时,芯片开始放音。
放音持续至此端回到低电平,或碰着EOM标志,或内存结束。

· 4脚为发话器输入端(MIC)。

· 5脚为发话器参考端(MICREF)。

· 6脚为自动增益掌握端(AGC)。
常日4.7μF的电容器在多数场合下可得到满意的效果。

· 7脚、9脚为喇叭输出端(SP+、SP-),这对输出端可直接驱动8Ω以上的喇叭。

ISD1820能够直接推动喇叭,但音量不是很大。
如果用户须要更大音量的输出,可以外加集成功率放大器。

· 8脚、14脚为地线(VSSA,VSSD),芯片内部的仿照和数字电路的不同地线汇合在这两个引脚。

· 10脚为振荡电阻端(ROSC),此端接振荡电阻至VSS,由振荡电阻的阻值决定录放音的韶光。

· 11脚为电源端(VCC),芯片内部的仿照和数字电路利用的不同电源总线在此引脚汇合,这样使得噪声最小。
去耦电容应只管即便靠近芯片。

· 12脚为直通模式端(FT),此端许可接在MIC输入真个外部语音旗子暗记经由芯片内部的AGC电路、滤波器和喇叭驱动器而直接到达喇叭输出端,形成发话器扩音机功能。
平时FT端为低电平,要实现直通功能,需将FT端接高电平,同时REC、PLAYE和PLAYL保持低电平。

· 13脚为录音指示端(/RECLED),处于录音状态时,此端为低电平,可驱动LED。
此外,放音碰着EOM标志时,此端输出一个低电平脉冲。
此脉冲可用来触发PLAYE,实现循环放音。

录放音掌握办法

按键掌握或者单片机IO掌握;

实例剖析实现的功能

· 按下松开按键PLAYE可以边沿触发播放语音;

· 持续按下按键PLAYL可以电平触发播放语音;

· 持续按下按键REC实现录音;

以上功能实现不须要单片机参与。

· 按下松开按键REC,LED1点亮,相称于指示有录音留言;

· 按下松开按键PLAYE,LED1熄灭,相称于指示留言已读。

事理图

代码实现

· 按键BTN_PLAYE和BTN_REC初始化

//按键初始化函数//PB12 设置成输入void KEY_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOC, &GPIO_InitStructure);}

·按键声明

#define BTN_PLAYE GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11)#define BTN_REC GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)#define BTN_PLAYE_PRES 1#define BTN_REC_PRES 2

· 实现按键扫描函数

//按键处理函数//返回按键值//mode:0,不支持连续按;1,支持连续按;//返回值://0,没有任何按键按下//BTN_PLAYE_PRES,BTN_PLAYE按下//BTN_REC_PRES,BTN_REC按下//把稳此函数有相应优先级,PLAYE>REC!!u8 KEY_Scan(u8 mode){ static u8 key_up=1;//按键按松开标志 if(mode) key_up=1; //支持连按 if(key_up&&(BTN_PLAYE==1||BTN_REC==1)) { delay_ms(10);//去抖动 key_up=0; if(BTN_PLAYE==1)return BTN_PLAYE_PRES; else if(BTN_REC==1)return BTN_REC_PRES; } else if(BTN_PLAYE==0&&BTN_REC==0) { key_up=1; } return 0;// 无按键按下}

· LED1声明

#define LED1 PAout(15) // PA15

· LED1初始化,根据事理图设计,LED1为低电平的时候,LED1亮。

//LED IO初始化void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_15);}

· 主函数实现,实现按键扫描,当得到BTN_PLAYE按键按下后,LED1熄灭;当得到BTN_REC按键按下后,LED1点亮。

#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "key.h"int main(void){ u8 key=0XFF; uart_init(115200); delay_init(); LED_Init(); KEY_Init(); //主循环 while(1) { key = KEY_Scan(0); if(key) { switch(key) { case BTN_PLAYE_PRES: { LED1 = 1; printf("BTN_PLAYE_PRES \r\n"); } break; case BTN_REC_PRES: { LED1 = 0; printf("BTN_REC_PRES \r\n"); } break; } } delay_ms(10); }}

推举阅读:

STM32单片机最小系统详解

STM32F103 串口的利用方法

STM32中精确延时函数的实现

DHT11及DHT21温湿度传感器时序图解析(STM32)

LD3320语音识别模块:LDV7模块利用详解

基于STM32固件库的MDK5工程建立

修正Keil工程名称并添加其他模块文件

Keil环境下STM32工程加入cJSON

常用电路板制作方法

让步进电机动起来——L298N驱动步进电机

喜好请关注微信公众年夜众号:程序员小哈

公众年夜众号内容面向在校大学生、电子爱好者、嵌入式工程师;

涉及电子制作、模块利用、单片机技能、物联网干系知识分享;

玩模块,学硬件,带你从0走到1

若以为本次分享的文章对您有帮助,随手关注、收藏并转发分享,也是对我的支持。

标签:

相关文章

MU5737请回答_记载器_珠海

事件发生后,中国民用航空局、中国东方航空、应急管理部消防接济总局、广西消防接济总队第一韶光启动了应急机制,并派出事情组赶赴现场。民...

通讯 2024-12-24 阅读0 评论0