ISD4004系列芯片的内部结构如图1所示。
ISD系列芯片均有一个外部时钟输入引脚XCLK,如果该引脚接地,则芯片使用在出厂时已经设定的内部时钟。如果对该引脚输入一时钟信号,则芯片内的采样频率就由外部时钟频率来决定,根据其资料显示,当外部时钟频率为1024kHz时,内部声音的采样频率是8kHz。
查阅ISD4004的数据手册,其中并无关于改变时钟频率应用的说明,相反倒是有不能改变时钟频率的提示,原因是芯片内的抗混叠(antialias)电路和输出滤波电路均已经是固定的,改变采样频率,会影响这两个电路正常发挥作用。
但是在我们的应用中是降频使用,采样频率降低,相当于抗混叠电路和输出滤波器的设定频率偏高,这样应该不会对还原质量造成影响,有可能使信噪比下降,但如果频率改变不大,信噪比下降将会很有限。
为了验证我们的推论,进行了两个测试,一个是降频使用的测试,一个是分段降频的测试,即在同一片中分别使用两种不同的时钟频率的测试。
首先,在测试前,需要对ISD芯片编程器进行一些改造,我们将ISD4004的时钟输入XCLK引脚断开,接入可调频率发生器,测试芯片在不同时钟频率下的工作情况。我们用一片ISD4004-8M(
内部频率1024kHz),在录音和重放时分别将外部频率调整到682kHz和512kHz,与ISD4004-12M和ISD4004-16M相比较。经比较发现,ISD4004-8M在682kHz时,与ISD4004-12M在录放效果上,基本上没有可察觉的差别;在512kHz时,与ISD4004-16M相比,除感觉声音略微有些“发毛”外,也没有明显的差别,这就证明,ISD芯片可以适当降低频率使用,以获得更长的录放时间,适合在对语音质量要求不是很高,以及频率降低的范围不很大的应用中。
第二步,测试在同一芯片内使用不同的时钟频率,具体测试方法是,使用ISD4004-8M芯片,前半段录音使用1024kHz的时钟频率,然后调低到682kHz,再继续录音;重放时,前半段使用1024kHz的频率,后半段使用682kHz的频率。测试结果证明,这样的做法是可行的。
变频使用ISD芯片时,有三个问题是在定频使用时不会遇到的,一个是芯片的变频录制,第二是变频芯片的复制,第三个是重放时的频率控制。
对于第一个问题,因为我们的产品中语音数据的存放比较有规律,音标、字母、单词、词组顺序存放,也就是说采用1024kHz高频率的数据均在前半段,而后半段均采用低频率。低频率段的具体频率,应根据具体需要的录音时间长短来决定,频率越低,录音时间越长,但是相应的录音质量越低,因此应该采用尽可能高的频率。经过测算,如果采用750kHz左右的频率,刚好可以把所有的内容录完。
录制完一个母片,其余生产用的芯片均可以由这个母片复制产生。不过,对于改变采样频率使用的芯片,必须按照低一档次的芯片进行设置。
我们低频段使用的是750kHz,这样应该按照系统频率是682.7kHz的ISD4004-12M设置。因为对后半段语音信号来说,如果使用更高的频率来重放,必然会引起音调的升高,但是因为ISD4004-8M芯片内部的滤波器已经固定在了3.4kHz,这样就可能引起语音中高频部分的损失;而如果设成更低的系统频率,虽然音调降低,但因为ISD芯片具有良好的低频响应,因此在复制出的芯片重新以原频率放音时,不会有声音质量的损失。
为了在系统中重放时能够随时改变ISD芯片的时钟频率,我们采用了如图2的电路。
电路中,MCU端接单片机控制输出,XCLK接ISD芯片时钟输入。当模拟开关关闭时,振荡电路以较低的频率(约750kHz)振荡,当模拟开关接通时,等效电阻减小,振荡电路频率升高(约1024kHz)。。
经过实际应用,证明ISD芯片的变频使用的方案是可行的,达到了预期的目的。