简单好用的ISD1820语音录放芯片
喜欢请关注微信公众号:嵌入式从0到1
公众号内容面向在校大学生、电子爱好者、嵌入式工程师;
涉及电子制作、模块使用、单片机技术、物联网相关知识分享;
软硬件全栈工程师,玩模块,学硬件,带你从0走到1
文章目录
- 学习目标
- 芯片特点
- 推荐应用电路:
- 应用场景
- 封装及引脚功能:
- 录放音控制方式:
- 实例分析
- 实现的功能
- 原理图
- 代码实现
学习目标
- 学习ISD1820语音芯片的使用方法
- 学习STM32 GPIO的输入输出
- 按键扫描功能实现
芯片特点
- 工作电压3~5V;
- 单段录放控制简单;
- 带话筒放大直通功能——可用作喊话器模块;
- 边沿/电平触发放音;
- 内置8Ω喇叭驱动放大电路,即可直接驱动8欧0.5W小喇叭;
- 无需单片机参与即可实现录放音功能;
- 取样率和录放音时间可以由外部振荡电阻调节。外接电阻调整录音时间,可以实现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); }}
从六月份开始,每个月会制作一个毕业设计难度的DIY作品,
前期作品以模块组合的形式搭建,降低门槛,方便大家一起跟着做;
DIY过程只在微信公众号中分享,大家没关注的,赶紧关注哈。
每个月时间大致安排:
- 上个月25号,公布DIY作品名称;
- 每月1日公布作品功能点及所需要的功能模块链接;
- 每月10日前绘制完模块配合的线路板;
- 每月15日之前硬件搭建完毕,之后按模块撰写代码,调试,随时公众号更新进展;
- 每月月底开源整个作品的源码和PCB工程文件。
题目选取原则:
- 公众号每个月20日发起投票,25号截止,票数最多的作为下个月的DIY内容;
- 投票的备选项大家可以后台留言给我,我会选出五种留言最多的作为选项;
- 每个月的DIY内容尽量与上个月分享的文章有一定的相关度,起到温故知新的作用。
有什么想法或者建议,留言给我哈。
下个月的每月一练内容已经在公众号中开启投票了,感兴趣请关注哈!
喜欢请关注微信公众号:嵌入式从0到1
简单好用的ISD1820语音录放芯片相关推荐
- ISD1820c语言程序,DIY制作ISD1820语音录放/喊话器,附原理图/PCB/BOM/程序
本设计分享的是DIY制作ISD1820语音录放/喊话器全套资料,见附件下载其原理图/PCB/BOM/单片机控制ISD1820录放模块程序等.ISD1820语音录放/喊话器可用51单片机控制,使用方便的 ...
- ISD1820语音模组的使用
ISD1820语音模组的使用 ISD1820芯片 主要特性 引脚信息 ISD1820语音模组 电路图 简略的使用方法 ISD1820芯片 ISD1820是美国ISD公司于2001年最新推出一种单片8〜 ...
- Android中实现蓝牙录放音
环境:Android4.2.2 基层应用:SoundRecorder 蓝牙一般有两种语音相关的模式是A2DP和SCO,前者是高质量音乐播放(俗称:只进不出),后者是语音通话(俗称:有进有出).要实现语 ...
- python在线朗读-简单的python代码实现语音朗读
简单的python代码实现语音朗读 昨天女友生日,因为她一直对生日无感,所以我也就没有准备什么礼物.想起元旦前写的自动测试的脚本,添加了语音来提示测试和报告错误.灵机一动,为什么不用这个语音来庆祝她生 ...
- FFmpeg基础到工程-多路H265监控录放开发学习笔记
多路H265监控录放开发学习笔记 课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等.包括:音视频.流媒体.直播.Android.视频监控28181.等. 具体 ...
- Flutter简单聊天界面布局及语音录制播放
目录 前言: 注意事项: 用到的部分组件依赖及版本: 遇到的坑 遇到的坑1: 遇到的坑2: 遇到的坑3: 遇到的坑4: Fluuter语音录制及播放组件生命周期 Flutter录音组件生命周期图: F ...
- 使用一片通用四运放芯片LM324组成电路(采用Multisim 进行的仿真)
使用一片通用四运放芯片LM324组成电路(采用Multisim 进行的仿真) 一.题目说明 二.理论分析及电路分析 2.1三角波产生电路 2.2加法器电路 2.3滤波器电路 2.4比较器电路 三仿真电 ...
- 基于STM32单片机的语音播报超声波测距系统【ISD1820录放模块继电器蜂鸣器扬声器】
系统功能 使用STM32开发板,先用红外测试是否有遮挡,如果有,则使用超声波测距.如果是0-80cm之间,则打开蜂鸣器.灯.喇叭播放"当心车门开启",震动马达震动(以上持续1分钟) ...
- S3C2440 IIS操作 uda134x录放音
IIS(Inter-IC Sound)由飞利浦公司开发.是一种经常使用的音频设备接口,主要用于CD.MD.MP3等设备. s3c2440一共同拥有5个引脚用于IIS:IISDO.IISDI.IISSC ...
最新文章
- 阚凯力:四核终端发展需软硬件相互促进
- java学习笔记2--数据类型、数组
- Linux中如何安装MySQL详细步骤
- Cadence原理图导出智能PDF(带图页、位号与网络名书签且文本可搜索)
- html课表插件,课程表插件Timetables(原创)
- 基于MATLAB的turbo码代码,一种基于Simulink的Turbo码仿真实现
- PATH和path,傻傻分不清
- JAVA设置流中当前位置_Java程序来标记此输入流中的当前位置
- MTK Modem编译
- 易辅客栈网页游戏脚本实战(绝世仙王)
- 关于APP界面布局设计的八种优缺点
- 陈睿提供2009-06-19
- python kivy 控件(小部件)的属性集合
- sqlserver中的常见函数用法
- 想凭勤奋逆风翻盘?如今靠运气才有更大赢面
- “ConnectionString属性尚未初始化”问题解析
- 2018年7月23日安全快讯
- 《项目管理》高项十大管理知识点整理(一)
- Python函数之迭代器
- 谷歌翻译工具新改版,支持全球51种语言翻译功能
热门文章
- kaldi教程_kaldi中特征变换
- html5 strokestyle,HTML canvas strokeStyle 属性 - JavaScript 参考手册 - 自强学堂
- 【天光学术】财务管理论文:信息一体化系统在房地产企业财务管理中的运用分析(节选)
- SlideLive:提供小清新风格PPT模板下载
- Win10-ODI12安装以及本地简单映射测试
- c语言apply函数,R语言apply()函数用法(示例代码)
- 2018中兴通讯合作伙伴大会开幕:以开放生态再创行业共赢
- 复合函数求导经典例题_简单复合函数求导法则(最经典).ppt
- Ubuntu12.04虚拟机下安装USB转串口驱动(PL2303)
- 陈天桥雒芊芊伉俪助阵盛大 “爱心传递”慈善拍卖,捐出丰子恺爱女画作