通过DSP向音频芯片TLV320AIC23B发送数据,从而实现声音的播放。DSP选型为TMS320DM642,DSP与AIC23B通过DM642的音频端口McASP进行连接。设计中使用1片AIC23B,设计的目的是通过McASP的AXR[0](设计中AXR[0]引脚配置为输出,发送数据)向AIC23B发送数据从而达到AIC23B输出报警声的目的。具体到实程序设计中就是查询XSTATE寄存器中的XDATA字段:若XDATA为1,向XBUF[0]发送新的数据;否则进行等待。
在调试的过程中发现在对McASP进行配置并第一次写入数据后,XDATA字段就一直为0(XSTAT的值一直为155H或15DH),使得后续数据不能写入。不知道哪位大神遇到过类似的情况,能告知问题的所在和解决方案。
最后附注一下:设计中的TLV320AIC23B工作在主模式下,位时钟和帧信号由AIC23B生成。在McASP配置前,利用I2C接口对AIC23B进行寄存器配置。通过示波器对位时钟和帧信号进行测试,显示AIC23B的配置是有效的。