ISD4004 工作于SPI 串行接口。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的SPI 移位寄存器在SCLK 的下降沿动作,因此对ISD4004 而言,在时钟上升沿锁存MOSI 引脚的数据,在下降沿将数据送至MISO 引脚。协议的具体内容为:

1.所有串行数据传输开始于SS 下降沿。

2.SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。

3.数据在时钟上升沿移入,在下降沿移出。

4.SS 变低,输入指令和地址后,ISD 才能开始录放操作。

5.指令格式是(8 位控制码)加(16 位地址码)。

6.ISD 的任何操作(含快进)如果遇到EOM 或OVF,则产生一个中断,该中断状态在下一个SPI 周期开始时被清除。

7.使用"读"指令使中断状态位移出ISD 的MISO 引脚时,控制及地址数据也应同步从MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI 周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。

8.所有操作在运行位(RUN)置1 时开始,置0 时结束。

9.所有指令都在SS 端上升沿开始执行。

ISD4004信息快进

用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正

常的160 倍,遇到EOM 后停止,然后内部地址计数器加1,指向下条信息的开始处。

ISD4004上电顺序

器件延时TPUD(8kHz 采样时,约为25 毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待

TPUD,才能发出一条操作指令。

例如,从00 从处发音,应遵循如下时序:

1. 发POWERUP 命令;

2. 等待TPUD(上电延时);

3. 发地址值为00 的SETPLAY 命令;

4. 发PLAY 命令。

器件会从此00 地址开始放音,当出现EOM 时,立即中断,停止放音。

如果从00 处录音,则按以下时序:

1. 发POWER UP 命令;

2. 等待TPUD(上电延时);

3. 发POWER UP 命令

4. 等待2 倍TPUD;

5. 发地址值为00 的SETREC 命令;

6. 发REC 命令。

器件便从00 地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。

 ISD4002/4003/4004芯片参数表

型号

存储时间

(秒)

可分

段数

信息分辩

率(毫秒)

采样频

率(HZ)

滤波器

带宽(HZ)

控制码 地址位

ISD4002-120

120

600

200

8.0K

3.4K

5 11

ISD4002-180

180

600

300

5.3k

2.3k

5 11

ISD4002-240

240

600

400

4.0k

1.7k

5 11

ISD4003-04

240

1200

200

8.0K

3.4K

5 11

ISD4003-06

360

1200

300

5.3K

2.3K

5 11

ISD4003-08

480

1200

400

4.0K

1.7K

5 11

ISD4004-08

480

2400

200

8.0K

3.4K

8 16

ISD4004-16

960

2400

400

4.0K

1.7K

8 16

以上芯片由ISD3340K编程拷贝机编程、拷贝。

************

ISD4004ISD4004操作流程

// 主程序

//

// 功能:1.录音时,按住AN键,LED点亮开始录音,松开AN即可停止录音

// 再次按下AN键,LED点亮开始录第二段音,依次类推,直到芯片溢出。

// 按stop键芯片复位

// 2.放音时,按一下AN键,即播放一段语音。 按stop键芯片复位。

//************************************************************************

#include

sbit SS =P1^0; //片选

sbit MOSI=P1^1; //数据输入

sbit MISO=P1^2; //数据输出

sbit SCLK=P1^3; //ISD4004时钟

sbit INT =P1^4; //中断

sbit LED =P1^7; //指示灯

sbit LED1=P1^6; //指示灯:亮是录音/不亮是放音

sbit PR =P3^3; //录音和放音选择开关

sbit STOP=P3^4; //复位

sbit AN =P3^5; //执行

void delay(unsigned int time) //延迟n微秒

{

while(time!=0)

{

time--;

}

}

void delayms(unsigned int time) //延迟n毫秒

{

TMOD=0x01;

for(time;time>0;time--)

{

TH0=0xfc;

TL0=0x18;

TR0=1;

while(TF0!=1)

{;}

TF0=0;

TR0=0;

}

}

void isd_send(unsigned char isdx)//spi串行发送子程序,8位数据

{

unsigned char isx_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;

delay(2);

}

}

void isd_stop()//stop指令(停止当前操作)

{

delay(10);

isd_send(0x30);

SS=1;

delayms(50);

}

void isd_powerup()//发送上电指令

{

delay(10);

SS=0;

isd_send(0x20);

SS=1;

delayms(50);

}

void isd_stopwrdn()//发送掉电指令

{

delay(10);

isd_send(0x10);

SS=1;

delayms(50);

}

void isd_play()//发送play指令

{

LED=0;

isd_send(0xf0);

SS=1;

}

void isd_rec()//发送rec指令

{

LED=0;

isd_send(0xb0);

SS=1;

}

void isd_setplay(unsigned char adl,unsigned char adh)//发送setplay指令

{

delayms(1);

isd_send(adl); //发送放音起始地址低位

delay(2);

isd_send(adh); //发送放音起始地址高位

delay(2);

isd_send(0xe0); //发送setplay指令字节

SS=1;

}

void isd_setrec(unsigned char adl,unsigned char adh)//发送setrec指令

{

delayms(1);

isd_send(adl); //发送放音起始地址低位

delay(2);

isd_send(adh); //发送放音起始地址高位

delay(2);

isd_send(0xa0); //发送setplay指令字节

SS=1;

}

void isd_overflow()//芯片溢出,LED闪烁提醒停止录音

{

while(AN==0)

{

LED=1;

delayms(300);

LED=0;

delayms(300);

}

}

unsigned char chk_isdovf()//检查芯片是否溢出(读OVF,并返回OVF值)

{

SS=0;

delay(2);

SCLK=0;

delay(2);

SCLK=1;

SCLK=0;

delay(2);

if(MISO==1)

{

SCLK=0;

SS=1; //关闭spi通信端

isd_stop(); //发送stop指令

return 1; //OVF为1,返回1

}

else

{

SCLK=0;

SS=1; //关闭spi通信端

isd_stop(); //发送stop指令

return 0; //OVF为0,返回0

}

}

void main(void)

{

unsigned char ovflog;

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();

isd_powerup();

LED1=0;//表示录音模式

delayms(500); //延迟500ms录音

isd_setrec(0x00,0x00); //发送0x0000h地址的setplay指令

do

{

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则转入放音部分

{

if(AN==0)

{

isd_powerup(); //AN键按下,ISD上电并延迟50ms

isd_stopwrdn();

isd_powerup();

LED1=1;//表示录音模式

while(AN==0)

{;}

isd_setplay(0x00,0x00); //发送setplay指令,从0x0000地址开始放音

do

{

isd_play(); //发送放音指令

delay(20);

while(INT==1) //等待放音完毕的EOM中断信号

{;}

LED=1;

isd_stop(); //放音完毕,发送stop指令

if (ovflog=chk_isdovf()) //检查芯片是否溢出 ,如溢出则停止放音,芯片复位

break;

while(AN==1) //等待AN键再次按下

{

if(isd_stop==0)

break;

if(AN==0)

delayms(20);

}

}

while(AN==0); // AN键再次按下,播放下一段语音

// isd_stop();

// isd_stopwrdn();

}

}

}

isd4004造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
接头- JPM6 铜加塑料 查看价格 查看价格

13% 上海永兴气动成套有限公司
接头- JPM4 铜加塑料 查看价格 查看价格

13% 上海永兴气动成套有限公司
接头- JPM8 铜加塑料 查看价格 查看价格

13% 上海永兴气动成套有限公司
接头- JPM12 铜加塑料 查看价格 查看价格

13% 上海永兴气动成套有限公司
接头- JPM10 铜加塑料 查看价格 查看价格

13% 上海永兴气动成套有限公司
接口 品种:接口,型号:KD65 查看价格 查看价格

泽济

13% 合肥泽济消防器材有限公司
接口 DN50/- 查看价格 查看价格

13% 沧州永安消防器材厂
接口 100/; 查看价格 查看价格

13% 北京世纪皖京科技有限公司河南销售
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
法兰接口 DN20 查看价格 查看价格

湛江市2022年3季度信息价
法兰接口 DN25 查看价格 查看价格

湛江市2022年3季度信息价
法兰接口 DN50 查看价格 查看价格

湛江市2022年3季度信息价
法兰接口 DN80 查看价格 查看价格

湛江市2022年3季度信息价
法兰接口 DN80 查看价格 查看价格

湛江市2022年2季度信息价
法兰接口 DN100 查看价格 查看价格

湛江市2022年2季度信息价
法兰接口 DN15 查看价格 查看价格

湛江市2022年1季度信息价
法兰接口 DN20 查看价格 查看价格

湛江市2022年1季度信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
通信串行接口 详见图纸|1个 2 查看价格 广州市锐丰音响科技股份有限公司 广东  广州市 2017-07-13
串行接口模块 DX4010V2|1块 1 查看价格 深圳市普泰克智能科技有限公司 广东  广州市 2010-04-14
串行接口模块 详见原档|1台 3 查看价格 广州澳星电子有限公司 广东   2018-04-27
外设接口 1、采用电子地图方式显示红外探测器实际的分布 2、以电子地图的方式在管理主机展示红外的报警状态,以判断是否有入侵.3、提供实时查询,数据保存等.接入一体化管理平台.|1套 1 查看价格 广州龙建达电子股份有限公司 广东  广州市 2022-03-10
外设接口模块 BL-CD2103E|4736个 1 查看价格 美电贝尔广西办事处 广西  南宁市 2015-07-29
4芯串行通讯电缆 4芯串行|264m 1 查看价格 上海南洋电缆有限公司 广东  江门市 2017-11-09
主机串行接口模块 OkmU|5506个 1 查看价格 上海欧脉电子科技发展有限公司 上海  上海市 2015-11-23
摆设台(SF-4004) 详见附件|1张 3 查看价格 佛山市顺德区福利来酒店傢具有限公司 广东   2022-03-19

电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。

地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。

同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000 系列相同。

反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV

音频输出(AUD OUT) 提供音频输出,可驱动5KΩ的负载。

片选(SS) 此端为低,即向该ISD4004 芯片发送指令,两条指令之间为高电平。

串行输入(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 存储器的操作进行了一行(ISD4004 系列中的

存贮器共2400 行)。该信号175ms 保持高电平,低电平为25ms。快进模式下,RAC 的218.75μs 是高电平,31.25μs 为低电平。该端可用于存储管理技术。

外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地。

自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA 则禁止自动静噪。

电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。

地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。

同相模拟输入(ANA IN ) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000 系列相同。

反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV

音频输出(AUD OUT) 提供音频输出,可驱动5KΩ的负载。

片选(SS) 此端为低,即向该ISD4004 芯片发送指令,两条指令之间为高电平。

串行输入(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 存储器的操作进行了一行(ISD4004 系列中的

存贮器共2400 行)。该信号175ms 保持高电平,低电平为25ms。快进模式下,RAC 的218.75μs 是高电平,31.25μs 为低电平。该端可用于存储管理技术。

外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 1%内。商业级芯片在整个温度和电压范围内, 频率变化在 2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/ 4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地。

自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA 则禁止自动静噪。

ISD4004SPI(串行外设接口)常见问题

  • ISD4004语音模块与单片机怎么连接?

    只要接在普通I/O口就可以了,任意接,主要是编程时你要知道你接的哪个口就行了。

  • 串行接口和并行接口有什么区别??

    串行接口 串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄...

  • 串行接口和并行接口的区别介绍

    串行和并行的概念太广了。只要百度一下串行和并行,就会出来很多类似“串行通信与并行通信”、“串行接口与并行接口”、“串行总线与并行总线”、“串行协议与并行协议”以及“串行传输与并行传输”等概念介绍,而我...

●单片8 至16 分钟语音录放

●内置微控制器串行通信接口

●3V 单电源工作

●多段信息处理

●工作电流25-30mA,维持电流1μA

●不耗电信息保存100 年(典型值)

●高质量、自然的语音还原技术

●10 万次录音周期(典型值)

●自动静噪功能

●片内免调整时钟,可选用外部时钟

型 号

时 间

输入采样

典型带宽

最大段数

最小段长

外部钟频

ISD4004-08

8分钟

8.0kHz

3.4kHz

1200

200ms

1024.0kHz

ISD4004-10

10分钟

6.4kHz

2.7kHz

1200

250ms

819.2kHz

ISD4004-12

12分钟

5.3kHz

2.3kHz

1200

300ms

682.7kHz

ISD4004-16

16分钟

4.0kHz

1.7kHz

1200

400ms

512.0kHz

ISD4004 系列工作电压3V,单片录放时间8 至16 分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI 或Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内FLASH存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于FLASH存贮器中,可在断电情况下保存100 年(典型值),反复录音10 万次。

●单片8 至16 分钟语音录放

●内置微控制器串行通信接口

●3V 单电源工作

●多段信息处理

●工作电流25-30mA,维持电流1μA

●不耗电信息保存100 年(典型值)

●高质量、自然的语音还原技术

●10 万次录音周期(典型值)

●自动静噪功能

●片内免调整时钟,可选用外部时钟

型 号

时 间

输入采样

典型带宽

最大段数

最小段长

外部钟频

ISD4004-08

8分钟

8.0kHz

3.4kHz

1200

200ms

1024.0kHz

ISD4004-10

10分钟

6.4kHz

2.7kHz

1200

250ms

819.2kHz

ISD4004-12

12分钟

5.3kHz

2.3kHz

1200

300ms

682.7kHz

ISD4004-16

16分钟

4.0kHz

1.7kHz

1200

400ms

512.0kHz

ISD4004 系列工作电压3V,单片录放时间8 至16 分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI 或Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内FLASH存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于FLASH存贮器中,可在断电情况下保存100 年(典型值),反复录音10 万次。

​SPI(串行外设接口)

ISD4004 工作于SPI 串行接口。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的SPI 移位寄存器在SCLK 的下降沿动作,因此对ISD4004 而言,在时钟止升沿锁存MOSI 引脚的数据,在下降沿将数据送至MISO 引脚。协议的具体内容为:

1.所有串行数据传输开始于SS 下降沿。

2.SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。

3.数据在时钟上升沿移入,在下降沿移出。

4.SS 变低,输入指令和地址后,ISD 才能开始录放操作。

5.指令格式是(8 位控制码)加(16 位地址码)。

6.ISD 的任何操作(含快进)如果遇到EOM 或OVF,则产生一个中断,该中断状态在下一个SPI 周期开始时被清除。

7.使用"读"指令使中断状态位移出ISD 的MISO 引脚时,控制及地址数据也应同步从MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI 周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。

8.所有操作在运行位(RUN)置1 时开始,置0 时结束。

9.所有指令都在SS 端上升沿开始执行。

信息快进

用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正

常的160 倍,遇到EOM 后停止,然后内部地址计数器加1,指向下条信息的开始处。

上电顺序

器件延时TPUD(8kHz 采样时,约为25 毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待

TPUD,才能发出一条操作指令。

例如,从00 从处发音,应遵循如下时序:

1. 发POWERUP 命令;

2. 等待TPUD(上电延时);

3. 发地址值为00 的SETPLAY 命令;

4. 发PLAY 命令。

器件会从此00 地址开始放音,当出现EOM 时,立即中断,停止放音。

如果从00 处录音,则按以下时序:

1. 发POWER UP 命令;

2. 等待TPUD(上电延时);

3. 发POWER UP 命令

4. 等待2 倍TPUD;

5. 发地址值为00 的SETREC 命令;

6. 发REC 命令。

器件便从00 地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。

ISD4002/4003/4004芯片参数表

型号

存储时间

(秒)

可分

段数

信息分辩

率(毫秒)

采样频

率(HZ)

滤波器

带宽(HZ)

控制码+地址位

ISD4002-120

120

600

200

8.0K

3.4K

5+11

ISD4002-180

180

600

300

5.3k

2.3k

5+11

ISD4002-240

240

600

400

4.0k

1.7k

5+11

ISD4003-04

240

1200

200

8.0K

3.4K

5+11

ISD4003-06

360

1200

300

5.3K

2.3K

5+11

ISD4003-08

480

1200

400

4.0K

1.7K

5+11

ISD4004-08

480

2400

200

8.0K

3.4K

8+16

ISD4004-16

960

2400

400

4.0K

1.7K

8+16

以上芯片由ISD3340K编程拷贝机编程、拷贝。

************

ISD4004操作流程

// 主程序

//

// 功能:1.录音时,按住AN键,LED点亮开始录音,松开AN即可停止录音

// 再次按下AN键,LED点亮开始录第二段音,依次类推,直到芯片溢出。

// 按stop键芯片复位

// 2.放音时,按一下AN键,即播放一段语音。 按stop键芯片复位。

//************************************************************************

#include <reg52.h>

sbit SS =P1^0; //片选

sbit MOSI=P1^1; //数据输入

sbit MISO=P1^2; //数据输出

sbit SCLK=P1^3; //ISD4004时钟

sbit INT =P1^4; //中断

sbit LED =P1^7; //指示灯

sbit LED1=P1^6; //指示灯:亮是录音/不亮是放音

sbit PR =P3^3; //录音和放音选择开关

sbit STOP=P3^4; //复位

sbit AN =P3^5; //执行

void delay(unsigned int time) //延迟n微秒

{

while(time!=0)

{

time--;

}

}

void delayms(unsigned int time) //延迟n毫秒

{

TMOD=0x01;

for(time;time>0;time--)

{

TH0=0xfc;

TL0=0x18;

TR0=1;

while(TF0!=1)

{;}

TF0=0;

TR0=0;

}

}

void isd_send(unsigned char isdx)//spi串行发送子程序,8位数据

{

unsigned char isx_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;

delay(2);

}

}

void isd_stop()//stop指令(停止当前操作)

{

delay(10);

isd_send(0x30);

SS=1;

delayms(50);

}

void isd_powerup()//发送上电指令

{

delay(10);

SS=0;

isd_send(0x20);

SS=1;

delayms(50);

}

void isd_stopwrdn()//发送掉电指令

{

delay(10);

isd_send(0x10);

SS=1;

delayms(50);

}

void isd_play()//发送play指令

{

LED=0;

isd_send(0xf0);

SS=1;

}

void isd_rec()//发送rec指令

{

LED=0;

isd_send(0xb0);

SS=1;

}

void isd_setplay(unsigned char adl,unsigned char adh)//发送setplay指令

{

delayms(1);

isd_send(adl); //发送放音起始地址低位

delay(2);

isd_send(adh); //发送放音起始地址高位

delay(2);

isd_send(0xe0); //发送setplay指令字节

SS=1;

}

void isd_setrec(unsigned char adl,unsigned char adh)//发送setrec指令

{

delayms(1);

isd_send(adl); //发送放音起始地址低位

delay(2);

isd_send(adh); //发送放音起始地址高位

delay(2);

isd_send(0xa0); //发送setplay指令字节

SS=1;

}

void isd_overflow()//芯片溢出,LED闪烁提醒停止录音

{

while(AN==0)

{

LED=1;

delayms(300);

LED=0;

delayms(300);

}

}

unsigned char chk_isdovf()//检查芯片是否溢出(读OVF,并返回OVF值)

{

SS=0;

delay(2);

SCLK=0;

delay(2);

SCLK=1;

SCLK=0;

delay(2);

if(MISO==1)

{

SCLK=0;

SS=1; //关闭spi通信端

isd_stop(); //发送stop指令

return 1; //OVF为1,返回1

}

else

{

SCLK=0;

SS=1; //关闭spi通信端

isd_stop(); //发送stop指令

return 0; //OVF为0,返回0

}

}

void main(void)

{

unsigned char ovflog;

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();

isd_powerup();

LED1=0;//表示录音模式

delayms(500); //延迟500ms录音

isd_setrec(0x00,0x00); //发送0x0000h地址的setplay指令

do

{

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则转入放音部分

{

if(AN==0)

{

isd_powerup(); //AN键按下,ISD上电并延迟50ms

isd_stopwrdn();

isd_powerup();

LED1=1;//表示录音模式

while(AN==0)

{;}

isd_setplay(0x00,0x00); //发送setplay指令,从0x0000地址开始放音

do

{

isd_play(); //发送放音指令

delay(20);

while(INT==1) //等待放音完毕的EOM中断信号

{;}

LED=1;

isd_stop(); //放音完毕,发送stop指令

if (ovflog=chk_isdovf()) //检查芯片是否溢出 ,如溢出则停止放音,芯片复位

break;

while(AN==1) //等待AN键再次按下

{

if(isd_stop==0)

break;

if(AN==0)

delayms(20);

}

}

while(AN==0); // AN键再次按下,播放下一段语音

// isd_stop();

// isd_stopwrdn();

}

}

}

ISD4004SPI(串行外设接口)文献

关于串行接口键盘控制芯片8042的研究与接口设计 关于串行接口键盘控制芯片8042的研究与接口设计

格式:pdf

大小:218KB

页数: 2页

评分: 4.3

8042键盘接口芯片是一种普遍用于PC机上管理和控制键盘与主机通信的接口控制器。本文介绍该控制器的特点、管脚说明和使用方法,并给出了以串行接口方式相对应的接口电路简单的设计方法。

立即下载
RS-485串行接口标准 RS-485串行接口标准

格式:pdf

大小:218KB

页数: 4页

评分: 4.7

RS-485串行接口标准 1 、平衡传输 RS-485 数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为 A, 另一线定义为 B,通常情况下, 发送驱动器 A、B之间的正电平在 +2~+6V,是一个逻辑状态, 负电平在 -2~ 6V,是另一个逻辑状态。另有一个信号地 C,在 RS-485中还有一“使能”端,而在 RS-422中这是可用可 不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器 处于高阻状态,称作“第三态”,即它是有别于逻辑“ 1”与“ 0”的第三态。 接收器也作与发送端相对的规定, 收、发端通过平衡双绞线将 AA与 BB对应相连, 当在收端 AB之间有 大于 +200mV的电平时,输出正逻辑电平,小于 -200mV时,输出负逻辑电平。接收器接收平衡线上的电平范 围通常在 200mV至 6

立即下载
isd4004相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏