ISD4004按自己所需地址录放音或者按顺序录放音包含ISD4004资料绝对好用Word格式文档下载.docx
- 文档编号:19056001
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:16
- 大小:79.33KB
ISD4004按自己所需地址录放音或者按顺序录放音包含ISD4004资料绝对好用Word格式文档下载.docx
《ISD4004按自己所需地址录放音或者按顺序录放音包含ISD4004资料绝对好用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ISD4004按自己所需地址录放音或者按顺序录放音包含ISD4004资料绝对好用Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
time--)
TH0=0xfc;
TL0=0x18;
TR0=1;
while(TF0!
=1)
{;
TF0=0;
TR0=0;
voidisd_send(unsignedcharisdx)//spi串行发送子程序,8位数据
unsignedcharisx_counter;
SS=0;
//ss=0,打开spi通信端
SCLK=0;
for(isx_counter=0;
isx_counter<
8;
isx_counter++)//先发低位再发高位,依次发送。
if((isdx&
0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>
>
1;
SCLK=1;
delay
(2);
SCLK=0;
voidisd_stop()//stop指令(停止当前操作)
delay(10);
isd_send(0x30);
SS=1;
delayms(50);
voidisd_powerup()//发送上电指令
isd_send(0x20);
voidisd_stopwrdn()//发送掉电指令
isd_send(0x10);
voidisd_play()//发送play指令
LED=0;
isd_send(0xf0);
voidisd_rec()//发送rec指令
isd_send(0xb0);
voidisd_setplay(unsignedcharadl,unsignedcharadh)//发送setplay指令
delayms
(1);
isd_send(adl);
//发送放音起始地址低位
delay
(2);
isd_send(adh);
//发送放音起始地址高位
isd_send(0xe0);
//发送setplay指令字节
voidisd_setrec(unsignedcharadl,unsignedcharadh)//发送setrec指令
isd_send(0xa0);
voidisd_overflow()//芯片溢出,LED闪烁提醒停止录音
while(AN==0)
LED=1;
delayms(300);
LED=0;
unsignedcharchk_isdovf()//检查芯片是否溢出(读OVF,并返回OVF值)
SCLK=1;
if(MISO==1)
SCLK=0;
SS=1;
//关闭spi通信端
isd_stop();
//发送stop指令
return1;
//OVF为1,返回1
else
//关闭spi通信端
return0;
//OVF为0,返回0
voidmain(void)
uncharGao,Di;
uncharDi1,Gao1;
unsignedcharovflog;
Gao=0x00;
Di=0x00;
Di1=0x00;
Gao1=0x00;
while
(1)
{
if(PR==0){delayms(8);
LED1=~LED1;
while(PR==0);
if(LED1==0)//如果PR=0则转入录音部分
{
if(AN==0)
{
isd_powerup();
//AN键按下,ISD上电并延迟50ms
isd_stopwrdn();
LED1=0;
//表示录音模式
delayms(200);
//延迟500ms录音
do
{
isd_setrec(0x0f,0x00);
//发送自己所需XXX地址的setplay指令
isd_rec();
//发送rec指令
while(AN==0)//等待录音完毕
{
if(INT==0)//如果芯片溢出,进行LED闪烁提示,
isd_overflow();
//如果取消录音(松开AN键)则停止录音,芯片复位
}
if(INT==0)
break;
LED=1;
//录音完毕,LED熄灭
isd_stop();
//发送停止命令
while(AN==1)//如果AN再次按下,开始录制下一段语音
if(isd_stop==0)//如果按下STOP按键,则芯片复位
break;
if(AN==0)
delayms(500);
}
}
while(AN==0);
}
}
if(LED1==1)//如果PR=0则转入放音部分//如果PR==1则转入放音部分
{
LED1=1;
while(AN==0)
{;
do
{
isd_setplay(Di1,0x00);
//发送setplay指令,从0x0000地址开始放音,每隔0x0f段放音(自己可以根据自己所需录音地址放音)
Di1=Di1+0x0f;
isd_play();
//发送放音指令
delay(20);
while(INT==1)//等待放音完毕的EOM中断信号
delayms(50);
{if(STOP==0){isd_stop();
break;
}}
//放音完毕,发送stop指令
if(ovflog=chk_isdovf())//检查芯片是否溢出,如溢出则停止放音,芯片复位
while(AN==1)//等待AN键再次按下
{
if(isd_stop==0)
break;
if(AN==0)
delayms(20);
}
}
//AN键再次按下,播放下一段语音
isd_stop();
}
}
}
ISD4000系列单片语音录放电路
(仅以ISD4003为例,其余基本相同)
一、简述
●单片4至8分钟语音录放
●内置微控制器串行通信接口
●3V单电源工作
●多段信息处理
●工作电流25-30mA,维持电流1μA
●不耗电信息保存100年(典型值)
●高质量、自然的语音还原技术
●10万次录音周期(典型值)
●自动静噪功能
●片内免调整时钟,可选用外部时钟
ISD4003系列工作电压3V,单片录放时间4至8分钟,音质好,适用于移动电话及其他便携式电子产品中。
芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列。
芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。
芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"
金属声"
。
采样频率可为4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。
二、引脚描述
电源:
(VCCA,VCCD)为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。
地线:
(VSSA,VSSD)芯片内部的模拟和数字电路也使用不同的地线。
同相模拟输入(ANAIN+)这是录音信号的同相输入端。
输入放大器可用单端或差分驱动。
单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。
差分驱动时,信号最大幅度为峰峰值16mV。
反相模拟输入(ANAIN-)差分驱动时,这是录音信号的反相输入端。
信号通过耦合电容输入,最大幅度为峰峰值16mV
音频输出(AUDOUT)提供音频输出,可驱动5KΩ的负载。
片选(SS)此端为低,即向该ISD4003芯片发送指令,两条指令之间为高电平。
串行输入(MOSI)此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
串行输出(MISO)ISD的串行输出端。
ISD未选中时,本端呈高阻态。
串行时钟(SCLK)ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。
数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。
中断(/INT)本端为漏极开路输出。
ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。
中断状态在下一个SPI周期开始时清除。
中断状态也可用RINT指令读取。
OVF标志----指示ISD的录、放操作已到达存储器的未尾。
EOM标志----只在放音中检测到内部的EOM标志时,此状态位才置1。
行地址时钟(RAC)漏极开路输出。
每个RAC周期表示ISD存储器的操作进行了一行(ISD4003系列中的存储器共产1200行,ISD4004系列中的存贮器共2400行)。
该信号175ms保持高电平,低电平为25ms。
快进模式下,RAC的218.75μs是高电平,31.25μs为低电平。
该端可用于存储管理技术。
200ms
25ms
外部时钟(XCLK)本端内部有下拉元件。
芯片内部的采样时钟在出厂前已调校,误差在+1%内。
商业级芯片在整个温度和电压范围内,频率变化在+2.25%内。
工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。
若要求更高精度,可从本端输入外部时钟(如附录所列)。
由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。
输入时钟的占空比无关紧要,因内部首先进行了分频。
在不外接地时钟时,此端必须接地。
自动静噪(AMCAP)当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。
通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。
检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。
大信号时,自动静噪电路不衰减,静音时衰减6dB。
1mF的电容也影响自动静噪电路对信号幅度的响应速度。
本端接VCCA则禁止自动静噪。
三、SPI(串行外设接口)
ISD4003工作于SPI串行接口。
SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4003而言,在时钟止升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。
协议的具体内容为:
1、所有串行数据传输开始于SS下降沿。
2、SS在传输期间必须保持为低电平,在两条指令之间则保持为高电平。
3、数据在时钟上升沿移入,在下降沿移出。
4、SS变低,输入指令和地址后,ISD才能开始录放操作。
5、指令格式是(5位控制码)加(11位地址码)。
6、ISD的任何操作(含快进)如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。
7、使用"
读"
指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。
因此要注意移入的数据是否与器件当前进行的操作兼容。
当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。
8、所有操作在运行位(RUN)置1时开始,置0时结束。
9、所有指令都在SS端上升沿开始执行。
(一)信息快进
用户不必知道信息的确切地址,就能快进跳过一条信息。
信息快进只用于放音模式。
放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器加1,指向下条信息的开始处。
(二)上电顺序
器件延时TPUD(8kHz采样时,约为25毫秒)后才能开始操作。
因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。
例如,从00从处发音,应遵循如下时序:
1.发POWERUP命令;
2.等待TPUD(上电延时);
3.发地址值为00的SETPLAY命令;
4.发PLAY命令。
器件会从此00地址开始放音,当出现EOM时,立即中断,停止放音。
如果从00处录音,则按以下时序:
1.发POWERUP命令;
3.发POWERUP命令
4.等待2倍TPUD;
5.发地址值为00的SETREC命令;
6.发REC命令。
器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。
指令表
指令
5位控制码<
11位地址>
操作摘要
POWERUP
00100<
XXXXXXXXXXX>
上电:
等待TPUD后器件可以工作
SETPLAY
11100<
A10-A0>
从指定地址开始放音。
必须后跟PLAY指令使放音继续
PLAY
11110<
XXXXXXXXXXX>
从当前地址开始放音(直至EOM或OVF)
SETREC
10100<
A10-A0>
从指定地址开始录音。
必须后跟REC指令录音继续
REC
10110<
从当前地址开始录音(直至OVF或停止)
SETMC
11101<
从指定地址开始快进。
必须后跟MC指令快进继续
MC
11111<
执行快进,直到EOM.若再无信息,则进入OVF状态
STOP
0X110<
停止当前操作
STOPWRDN
0X01X<
停止当前操作并掉电
RINT
读状态:
OVF和EOM
注:
快进只能在放音操作开始时选择。
(三)SPI端口的控制位
(四)SPI控制寄存器
SPI控制寄存器控制器件的每个功能,如录放、录音、信息检索(快进)、上电/掉电、开始和停止操作、忽略地址指针等。
详见下表:
位
值
功能
RUN
=
1
允许/禁止操作
开始
停止
PU
电源控制
上电
掉电
P/-R
=
录/放模式
放音
录音
IAB
操作是否使用指令地址
忽略输入地址寄存的内容
使用输入地址寄存的内容
MC
=
快进模式
允许快进
禁止
P10-P0
A10-A0
行指针寄存器输出
输入地址寄存器
IAB置0时,录、放操作从A10-A0地址开始。
为了能连贯地录、放到后续的存储空间,在操作到达该行末之前,应发出第二个SPI指令将IAB置1,否则器件在同一地址上反复循环。
这个特点对语音提示功能很有用。
RAC脚和IAB位可用于信息管理。
SPI端口简单框图如下:
(五)SPI时序参数
Symbol
Parameters
Min
Typ
Max
Units
TSSS
/SSSetupTime
500
nsec
TSSH
/SSHoldTime
TDIS
DatainSetupTime
200
TDIH
DatainHoldTime
TPD
OutputDelay
TDF
OutputDelaytoHiz
TSSmin
/SSHIGH
μsec
TSCKhi
SCLKHighTime
400
TSCKlow
SCLKLowTime
F0
CLK(Frequency)
1000
kHz
注意一:
国内用户多习惯使用8031系列单片机做微控制器,与ISD33000、4000系列均可以方便地连接,ISD芯片需要3V稳压电源,信号线可直接使用3V或5V电平。
注意二:
ISD4000系列芯片的控制方式与ISD33000系列完全相同,可相互参阅。
ISD4002/4003/4004芯片参数表
型号
存储时间(秒)
可分
段数
信息分辩率(毫秒)
采样频率(HZ)
滤波器带宽(HZ)
控制码+地址位
控制指令字节数(8位)
ISD4002-120
120
600
8.0K
3.4K
5+11
2
ISD4002-180
180
300
5.3k
2.3k
ISD4002-240
240
4.0k
1.7k
ISD4003-04
1200
ISD4003-06
360
5.3K
2.3K
ISD4003-08
480
4.0K
1.7K
ISD4004-08
2400
8+16
3
ISD4004-16
960
以上芯片由ISD3340K编程拷贝机编程、拷贝。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ISD4004 自己 地址 录放 或者 顺序 包含 资料 绝对
链接地址:https://www.bdocx.com/doc/19056001.html