语音录放芯片ISD5116特点及应用

[09-12 17:55:58]   来源:http://www.88dzw.com  单片机学习   阅读:8415

文章摘要:ISD5116是ISD公司最新推出的语音录放芯片。它除了具有该公司以往4000和5000系列语音芯片的特点(音质好、语音录放时间长、低功耗、信息保持时间长等)以外,更是采用了增强型的5000系列结构;它采用I2C串行总线接口,与采用MWI(微总线)接口相比,与CPU的接口减少到2条线;它增加了对数字量的存储功能,可以将诸如电话号码、系统设置、语音地址指针等参数与语音信息一起存储在芯片内部;根据应用系统的要求,通过软件设定采样频率,可使芯片录放音时间最长达到17'28"。一、芯片封装形式及引脚功能ISD5116采用TSOP和SOIC的封装形式(见图1),还可根据需要提供BGA形

语音录放芯片ISD5116特点及应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
ISD5116是ISD公司最新推出的语音录放芯片。它除了具有该公司以往4000和5000系列语音芯片的特点(音质好、语音录放时间长、低功耗、信息保持时间长等)以外,更是采用了增强型的5000系列结构;它采用I2C串行总线接口,与采用MWI(微总线)接口相比,与CPU的接口减少到2条线;它增加了对数字量的存储功能,可以将诸如电话号码、系统设置、语音地址指针等参数与语音信息一起存储在芯片内部;根据应用系统的要求,通过软件设定采样频率,可使芯片录放音时间最长达到17'28"。
一、芯片封装形式及引脚功能
ISD5116采用TSOP和SOIC的封装形式(见图1),还可根据需要提供BGA形式封装。芯片的引脚根据功能分为数字、模拟和电源三部分。
数字部分:
SCL:I2C总线时钟信号线。
SCD:I2C总线数据信号线。
RAC:行地址时钟信号输出。
INT:中断信号输出端。当发生溢出(OVF)或遭遇到语音结束(EOM)标志时,该端变低并一直保持低电平状态,直至用"读状态"指令将其清除为止。
XCLK:外部时钟输入端。一般采用片内时钟,只需将此端与VSSD 相连;如必需外接时钟,则此端接一个4.096MHz的时钟源。
A0、A1:芯片I2C总线的从地址设置端。由于采用8位地址,而且最低地址位是读/写选择位(二进制形式为:1 0 0 0 0 A1 A0 ),故芯片的地址为80~87H。
模拟部分:
MIC+、MIC-:麦克风信号输入端。
ANA OUT+、ANA OUT-:语音信号输出端(注意:不使用此端时,不要将其接地)
ACAP:片内"自动增益控制器"电容接入端。一般接一个4.7F电容
SP+、SP-:外接扬声器端口。5116可以直接驱动一个8 扬声器,此时最大功率为23.5mW。
AUX OUT:语音信号辅助输出端。
ANA IN:语音信号输入端。
AUX IN:语音信号辅助输入端。
电源部分:
VCCA、VCCD:模拟和数字部分+3V电源输入端。
VSSA、VSSD:模拟和数字电源接地端。
NC:无需连接端。
二、芯片结构
1.内部寄存器
5116内部具有多个用于储存地址、芯片设置等信息的寄存器。其中两个16位的芯片"设置寄存器"(CF0、CF1)控制着芯片内部各部分的功能,如声音信号的流通路径、采样频率、各种增/减率、各功能块上电/掉电以及音量设置等等。
2.存储器的组织形式
语音信息和数字量均存储在芯片内部的闪存存储器中。5116的存储器由2048行(或页)、每行(或页)2048位共4194304位的阵列组成。
存储语音信息时,行是最小可寻址单位。总共2048个行通过11位地址选定。以8KHz采样频率为例,每行的录放音时间为256ms,因而芯片的记录时间为2048?56(ms)=8'44。存储数字量时,每页的2048位被组织成32个“块”,每个块为64位,块为最小可寻址单位
注意:每个行(或页)要么是全部记录语音,要么是全部记录数字量,不能混合记录。
状态字
芯片进行操作前,有时需要了解其当前的状态,这一般通过读取芯片的"状态字来实现。5116的状态字是一个8位字节。
命令字
使芯片实现上电、开始或停止录音、信息查找等功能,需向其写入一"命令字。5116的命令字为一8位字节。
三、芯片的应用
1.硬件接口说明
由于采用I2C总线,因此5116与具备此类总线的CPU(如80C552等)的接口非常简单。
通过设置不同的从地址(A1、A0),可将多达4片5116同时挂到总线上,这样一来总的录放音时间最长可达69分钟。
由于芯片内部集成了放大、驱动和自动增益控制等电路,因此只需外接MIC和扬声器就可实现语音录放,无需其它外围器件。
2.软件设计要点
录音、放音——录音时应首先对CF0和CF1进行设置,以打开相应的通路、设置采样频率等。
如果是对MIC信号进行录音(假设采样频率为4.0KHz),CF0、CF1应设置为:
CF0<15:0>=0010 0100 0010 0001B (2421H)
CF1<15:0>=0000 0001 0100 1100B (014CH)
如果对ANA IN信号进行录音(假设采样频率为6.4KHz),CF0、CF1则应设置为:
CF0<15:0>=0100 0100 0000 1011B (440BH);
CF1<15:0>=0000 0000 1100 0101B (00C5H)。
然后是向芯片发录音命令,可使用 RECD @ADDR命令(91H),此时应依次向芯片发送:
芯片地址(8位)→录音命令(91H)→录音起始地址(高8位)→录音起始地址(低8位)。
放音时,先将CF0和CF1(假设采样频率为4.0KHz)设置为:
CF0<15:0>=0010 0100 0010 0010B (2422H)
CF1<15:0>=0101 1001 1101 1101B (59DDH)
然后依据放音命令PLAY @ADDR (A9H)的要求依次向5116发:
芯片地址(8位)→放音命令(A9H)→放音起始地址(高8位)→放音起始地址(低8位)。
需要指出的是,由于5116在录放语音时,只能寻址到行,因此上述关于录音和放音的起始地址只有高11位(即ADDR<15:5>)有意义。
写数据、读数据及擦除 —— 5116允许将其存储器的部分页用于储存数字量(页数多少可依据需要决定)。在储存数字量时(写数据)时,最小可寻址的单位是“块”(64位)。由于5116有2048页、每页有32个块,故需要16位的地址(高11位为页地址,低5位为块地址)来指定块。
如果页中的任意一个块已经被写入过,则在改写该块前应先擦除该页(注意:擦除是以页为单位进行的)。一般的作法是:先读取整个页并将其放在RAM中,然后更改相应块的位、擦除页,最后一步是重写整个页。
写数据时,可采用下列I2C命令次序:
发芯片地址→发写命令(C9H)→地址高8位→地址低8位→数据(8位?次)。
数据时,由于要先向芯片写"读数据命令,故相对写数据要复杂一些。具体可采用下列I2C命令次序:
发芯片地址(位R/W =0)→发读命令(E1H)→地址高8位→地址低8位→发芯片地址(位R/W =1)→读数据(8位?次)。


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行