|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cjsb37 于 2013-4-29 09:02 编辑
最近一直在做音频处理技术,有一个问题一直困扰我,始终解决不了,希望路过的高手帮忙!!!多谢多谢!!!
我用的是pcm4204和pcm4104两种A/D,D/A转换芯片分别用于音频数据的接收和发送操作,经由pcm4204的四路数据采用TDM模式由mcbsp的DR引脚送往dsp芯片,经处理后经DX脚送往pcm4104放出,当然也是TDM模式,输出同样有四路,这样就需要配置mcbsp的寄存器MCR,XCER和RCER,两种芯片的时序如下面所示
配置时,我两种芯片都处于从模式,帧同步和数据时钟都由dsp提供,多通道配置如下:
MCBSP_RCR_RMK(
MCBSP_RCR_RPHASE_SINGLE,
MCBSP_RCR_RFRLEN2_OF(0),
MCBSP_RCR_RWDLEN2_8BIT,
MCBSP_RCR_RCOMPAND_MSB,
MCBSP_RCR_RFIG_YES,
MCBSP_RCR_RDATDLY_1BIT,
MCBSP_RCR_RFRLEN1_OF(7),
MCBSP_RCR_RWDLEN1_32BIT
),
MCBSP_XCR_RMK(
MCBSP_XCR_XPHASE_SINGLE,
MCBSP_XCR_XFRLEN2_OF(0),
MCBSP_XCR_XWDLEN2_8BIT,
MCBSP_XCR_XCOMPAND_MSB,
MCBSP_XCR_XFIG_YES,
MCBSP_XCR_XDATDLY_1BIT,
MCBSP_XCR_XFRLEN1_OF(3),
MCBSP_XCR_XWDLEN1_32BIT
),
MCBSP_MCR_RMK(
MCBSP_MCR_XPBBLK_SF1, // select sub-frame1 in partition B to transmit
MCBSP_MCR_XPABLK_SF0, // select sub-frame0 in partition A to transmit
MCBSP_MCR_XMCM_DISXP, // enable TDM mode
MCBSP_MCR_RPBBLK_SF1, // select sub-frame1 in partition B to receive
MCBSP_MCR_RPABLK_SF0, // select sub-frame0 in partition A to receive
MCBSP_MCR_RMCM_ELDISABLE // All channels disabled
),
MCBSP_RCER_RMK(
MCBSP_RCER_RCEB_OF(0),
MCBSP_RCER_RCEA_OF(0x0f) // channel0-3 reception in partition A
),
MCBSP_XCER_RMK(
MCBSP_XCER_XCEB_OF(0),
MCBSP_RCER_RCEA_OF(0x0f) // channel0-3 transmition in partition A
RCEA,XCEA的参数是可以改变的,前面设置的 MCBSP_RCR_RFRLEN1_OF(7), MCBSP_XCR_XFRLEN1_OF(3), 表示逻辑时隙(物理信道)的个数,这里不知道我理解的对不对?
根据上面的配置就会发现,所有4路输入的数据都会从第一路输出放出来,造成声音的混杂输出,当改变MCBSP_RCER_RCEA_OF(0x0f) , MCBSP_RCER_RCEA_OF(0x0f)的配置时,会出现第二路,第三路数据输出,但和第一路一样是输入的几路信号的混叠,无法实现一对一的输入输出功能,检查了输入的数据是不正确的,但却能出现声音,很是不解。希望各位高手指教。谢谢!!!
pcm4204
pcm4104长帧
pcm4104短帧
[ 本帖最后由 vivi_ran 于 2007-8-9 14:37 编辑 ]
|
|