ISD1700 语音芯片 SPI 使用总结(一)ISD1700 语音芯片 SPI 使用总结一 该语音芯片的使用要仔细分析英文 PDF 的资料,电路可按中青世纪论坛上面所给的电路搭建,也可按英文 PDF 后面所画的电路图焊接。本芯片使用不单纯是一个放音电路,还含有其他的控制。因此程序首先要能完成指定地址的放音工作,其次还应能嵌入整个费额显示程序中,即语音程序不能与电路其他功能相影响。费额显示中里面主要有八字板,点阵等其他的控制。SPI 放音操作设计参考了网络上的部分程序,各取所长设计了放音程序。在最后附上了部分程序,仅供参考。二 试验中采用的是 ISD1760 语音芯片,采样率为 8K 时,一共能播放 60S 的语音,最大地址为 0x1EF,录音实际地址为 0x10-0x1EF,从此最大地址可得出:0x1EF-0x10=0x1DF=479479+1=480;480*125MS =60S,也就是说 8K 采样率时每 1 个地址最小语音长度为 125MS,因此如果知道单个语音的长度,暂时无编程器的时候,也可自己推断每个语音所占的地址长度。三 SPI 操作时要严格遵守 PDF 上所给的各项操作,这里不列出。暂时仅给出试验中遇到的所有问题并如何解决的。1, 一开始本实验是自己用通用板自己照电路搭建的平台,此电路正确与否可把 PLAY 管腿和地短路,如果芯片有语音并且电路功放及外围电路正确的话,此时芯片就会把所有语音全都循环读一遍。接下来把 4 个 SPI 口与单片机接通,尝试软件控制。主循环中可设置一个连续播放的程序,上电就循环放音。放音程序没错的话第一步便成功了!这期间我遇到的问题主要有放不出音,读音混乱,有杂音。如果放不出音,先检查电路,程序放出声音应该没出现什么问题。2, 本芯片设置的 APC 值为 0xA0 和 0x04,具体对应功能参见中文 PDF。接下来遇到的问题就是准确放单个音和连续播放多个语音。播放单个语音首先是地址的编译。1730 以下的地址可定义为 BYTE,从 1740 开始就需要定义为 WORD,其实也可定义为 BYTE,就是发送地址的时候先发 0x10 和后两位即可。本程序定义为 WORD,做一个偏移发送即可。接下来的问题就是连续播放的问题,这个问题直到最后才正确的解决。一开始的程序中只是一直发送 SETPLAY,可以连续读,就是读的乱,其实就是错误操作,后来尝试在后面添加一个 2 秒的延时,可以连续读出语音了,就是每个要停顿一下才能放出第二个语音,自认为就这样就可以了,导致了以后还得解决此问题!因为此放音方式放弃了判...