欢迎来到天天文库
浏览记录
ID:22583119
大小:641.59 KB
页数:15页
时间:2018-10-30
《isd1760语音芯片使用总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ISD1760语音芯片SPI使用总结注意:此资料参照前人总结,经自己细心成功调试程序后,修改的文档,做了细致的补充。一、该语咅芯片的使用要仔细分析英文PDF的资料,电路可按中青世纪论坛上而所给的电路搭建,也可按英文PDF后而所画的电路图焊接。本芯片使用不单纯是一个放音电路,还含有其他的控制,因此程序要仔细参考。二、试验中采用的是1SD1760语音芯片,采样率为8K时,一共能播放60S的语音,最大地址为OxlEF,录咅实际地址为0x10〜OxlEF,(千万不要以为开始地址为:SO—S10,结束地址为:E0—E10,这样算下来地址就是:0X7ff=2047
2、,从0—2047为2048个字节,采样频率为8K即:每个字节就是125ms,125X2048个字节=256s,可是,实际的录音时长为60S,所以是错误的)则最大地址为:0xlEF-0xl0=0xlDF=479o479+1=480个字节;480*125MS=60S,也就是说8K采样率时毎1个地址最小语音长度为125MS,因此如果知道单个语音的长度,暂时无编程器的时候,也可自己推断每个语音所占的地址长度。三、SPI操作时要严格遵守PDF上所给的各项操作,这里不列出。暂时仅给出试验屮遇到的所有问题并如何解决的。1,一开始本实验是自己用通用板自己照电路搭建的平
3、台,此电路正确与否可把PLAY管腿和地短路,如果芯片有语音并且电路功放及外围电路正确的话,此时芯片就会把所有语音全都循环读一遍。接下來把4个SPI口与单片机接通,尝试软件控制。主循环中可设置一个连续播放的程序,上电就循环放音。放音程序没错的话第一步便成功了!这期间我遇到的问题主要有放不出音,读音浞乱,有杂音。如果放不出音,先检查电路,程序放出声音应该没出现什么问题。本芯片设置的APC值为OxAO和0x04(第三位设置声音大小),具体对应功能参见中文PDF。在SPI协议总叙述中有一句错误:如图所示5.2SPI协议总述ISD1700系列的SPI串行接口操作
4、遵照以下协议11.一个SPI处理开始于/SS管脚的下降沿。2.在一个完整的SH指令传输周期,/SS管脚必须保持低电平。严K的下牌沿从MIGOff脚愉Uh并且3.数据在SCLK的上升4.SPI指令操作码包括命令字节,数据字节和地址字节,这决定于1700的指令类型5.当命令字及地址数据输入到MOSI管脚时,同时状态寄存器和当前行地址信息从MISO管脚移出。6.一个SPI处理在/SS变髙后启动。7.在完成一个SPI命令的操作后,会启动一个中断信息,并且持续状态寄存器返冋值表在PDF中标志的不太明显,标出是错误的。如卜:LSB:BitOBit1Bit2Stat
5、usReaister0Bit3BitBif5XUBit6MSBBit7CMDErrMemoryFullPowerUpLSBBit8A3LSBBit16~DOZ~CMDErrLSBBit24D8?A3LSSBit32Bit9A4Bit17DI/MemoryFullBit25D9/A4Bit33EOMInterruptMSBBit10Bit18Bit19A7A9Bit2Bit15D2ZPowerUpBit26D3/EOMBit27D10/A5D11/A6Bit34Bit35CMDErrMemoryFullPowerUpEOMLSBBit40A3LSBBit
6、48Bit41Bit42A5Bit43Bit49Bit50CMDErrMemoryFullPowerUpBit51EOMD4ZInterruptBit28D12/A7InterruptBit52InterruptD5/AOD13ZA2D15/A10MSBBit39MSBBit47A10MSBBit55SR0第一字节位名称描述7A2当前行地址bit26A1当前行地址bitl5A0当前行地址bhO4INT当一个操作完成时,该位S1,可被CLRjNT命令淸除3EOM当检测到EOM时此位罝1,可被CLRjNT命令清除2PU当芯片在SPI模式中上电后,此位置11
7、FULL此位置1表示存储区己满。芯片不能再录任何信息,除非旧的信息被删除。此位只有遵循独立按键模式的存储体系才有效0CMD_ERR此位置1表示上一个sn命令无效SRI位名称描述7SE1当音效1被录入后此位置1,擦除后罝06SE2当音效1被录入后此位置1,揀除后置05SE3当音效1被录入后此位置1,擦除后罝04SE4当音效1被录入后此位置1,擦除后置03REC此位置1表示正在录音2PLAY此位置1表示正在放音1ERASE此位置1表示正在擦除0RDVRDY=1时表示空闲,可以接收SPI命令;RDY=0时为忙,不接受新的命令,但除了RESET,CLRINT,
8、RD^STATVS,PD这些指令,当然在REC和PLAY时,也可以接受STOP命令•当19表5
此文档下载收益归作者所有