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

aic3106test程序

最近在做音频的项目,参考evmc6747中aic3106test例程,有个问题没弄明白,例程中这里

for ( sec = 0 ; sec < 5 ; sec++ )
{
for ( msec = 0 ; msec < 1000 ; msec++ )
{
for ( sample = 0 ; sample < 48 ; sample++ )
{
/* Send a sample to the left channel */
while ( ! ( MCASP1_SRCTL5 & 0x10 ) );
MCASP1_XBUF5_32BIT = (sinetable[sample] << 15) | 0x00000000;
/* Send a sample to the right channel */
while ( ! ( MCASP1_SRCTL5 & 0x10 ) );
MCASP1_XBUF5_32BIT = (sinetable[sample] << 15) | 0x00000000;

}
}
}

因为McASP和芯片都设置成I2S方式,那么每采样放出的帧信号不就应该是左右两个slot了吗?这里为什么要写两次呢?

还有就是我觉得例程中给的正弦波数组应该是Q15格式的吧?这里的<<15|0x00000000是干嘛用的呢?结果是Q31数据?请大家多指教!谢谢!

Yu Wang22:

回复 Tony Tang:

您好,感谢您的回答,我理解您的意思了。还有两个小问题想请教您。

1.您看,datasheet这里说

那XFMT的 XDATDLY位不应该是1h吗?这里XFMT=0x00008078是不是有些问题?

2.想问一下您这里McASP和AIC3106数据传递一直都是Q15格式吗?如果我需要将采得的音频数据进行运算,还需要转换成浮点数吗?如果需要,有没有这样的转换函数可以直接用呢?非常感谢!

赞(0)
未经允许不得转载:TI中文支持网 » aic3106test程序
分享到: 更多 (0)