TMS320VC5509A通过MCBSP接口与NUC972的IIS接口进行音频传输(一)

2019-07-13 03:31发布

       最近一段时间研究了一下DSP5509A的MCBSP(多缓冲串口)接口和Nuc972的IIS接口进行音频数据传输的问题,今天终于有了点儿心得,和大家分享一下。        总体思路是基于嵌入式linux音频框架ASOC,将DSP5509A模拟成一个codec挂在linux上,通过DSP5509A上的MCBSP与Nuc972上的IIS接口进行音频数据交互,DSP5509A作为从设备,Nuc972作为主设备。要完成它们之间的通信,需要做以下两项工作:1.DSP5509A与Nuc972的硬件连接;2.DSP端MCBSP接口的配置;3.Nuc972端DSP5509A模拟成codec的底层驱动。今天主要说第一项工作。        DSP5509A的MCBSP是个什么东西呢?简单的说就是TI的DSP上专用的高速串行数据接口,通过适当的配置,可以兼容IIS音频接口,具体的可以去TI的官网进行了解,在这里就不啰嗦了。具体的硬件连接如下图所示: DSP5509A MCBSP接口                                          Nuc972 IIS接口            CLKR ------------------------------------------------------- SCLK (位时钟)            CLKX ------------------------------------------------------- SCLK            FSR   -------------------------------------------------------- LRCK (声道选择时钟)            FSX    -------------------------------------------------------- LRCK            DR     --------------------------------------------------------- DX     (数据输出)            DX     ---------------------------------------------------------- DR  (数据输入)    因为在本例子中,DSP5509A作为从设备,Nuc972作为主设备,所以DSP5509A所有的时钟都是从Nuc972获得,其中MCBSP的CLKR(接收数据时钟)、CLKX(发送数据时钟)都由IIS接口的SCLK(位时钟)提供,FSR(接收同步时钟)、FSX(发送同步时钟)都由IIS接口的LRCK(左右声道选择时钟)提供,数据接口DR与DX交叉连接。这样就完成了MCBSP接口与IIS接口的硬件连接。