TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748做主提供codec时钟,MCASP边沿触发应该怎么设置?

ti的工程师:
我们公司一个音频的项目,基本架构是c6748加AIC3106。后来换了一个codec,这个新的codec是cs4272,这是一个24bit的codec,前一段时间问了芯片原厂,原厂建议暂时用16bit进行数据传输。我配置codec'后基本的数据结构如下图。16bit ,i2s格式,左对齐,没有延时位。

 帧时钟上升沿触发,位时钟也是上升沿触发,没有延时位,只进行单通道放音时我用逻辑分析仪抓了图。可以看出抓的数据和手册描述一致,且只有一个声道有数据。

DSP的配置,DSP做主。接收帧R是上升沿触发,位时钟上升沿触发。发送帧X是下降沿触发,位时钟下降沿触发。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<strong>//接收端   </strong>
    // 初始化帧同步,TDM 格式使用 slot 个数,对齐帧同步信号的上升沿  0428 修改为mcasp内部驱动
    McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, slotNum, MCASP_RX_FS_WIDTH_WORD,
                        MCASP_RX_FS_INT_BEGIN_ON_RIS_EDGE);
    // 初始化接收时钟,使用内部时钟,时钟上升沿有效 0528 48kHz
    McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_INTERNAL, 7, 1);
    McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
    McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
                          0x00, 0xFF);
......
......
<strong>//发送端</strong>
        McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, slotNum, MCASP_TX_FS_WIDTH_WORD,
                           MCASP_TX_FS_INT_BEGIN_ON_FALL_EDGE);
    // 初始化发送时钟,使用内部时钟,时钟下降沿有效  0528
    McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 7, 1);
    McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
    McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
                          0x00, 0xFF);

但是经过DMA接收的数据明显不对,应该是0xXXXX  0x0000这样才对,用扬声器播放出来的都是杂音。我第一感觉是哪里没有对齐导致数据全部错了。


我换成原来的AIC3106做了对比,这里接收的数据是0xXXXX  0x0000格式,播放和录音也正常了。

现在两个codec的配置不同的地方如下:之前是3106做主,DSP做从。现在的配置DSP做主帧时钟、位时钟、都是DSP发到codec的,其他的格式我按照手册都对了,asp的接收发送的边沿触发也换了好几次都不对,请问一下还有哪里需要注意的。

Mickey Zhang:

请问您现在用的音频 codec是哪个型号?cs4272非TI产品,如您是有关于cs4272的问题,建议您咨询该芯片厂家。
如您是对DSP有疑问,请在“信号处理器DSP ARM微处理器”版块发帖,我们相应的工程师会回复您。

taoyu:

回复 Mickey Zhang:

cs4272不是ti的产品,这个芯片我们去人已经工作了,我主要是问下6748的asp做主的时候一些配置问题。相同的帖子我在单核DSP也发了,但是没有人回复我就把帖子转到音频这个版块又发了一遍。

赞(0)
未经允许不得转载:TI中文支持网 » C6748做主提供codec时钟,MCASP边沿触发应该怎么设置?
分享到: 更多 (0)