拟采用line in方式通过Mcbsp口采集声音,于DRR1和DRR2接收左右通道的数据(各16位),AIC23设为主模式且左右通道更新已打开,右通道设为低电平,数据格式已配置到DSP模式,但对DSP的设置不太清楚导致不能正常接收两通道数据,想请前辈们帮忙指导一下或者能提供一些参考例程,感谢!AIC23与DSP的具体配置如下:
AIC23寄存器设置:
/*AIC23寄存器复位*/
AIC23Write(0x1e,0x0);
Delay(100);
/*AIC23节电方式设置,所有部分均所与工作状态*/
AIC23Write(0x0C,0x02); //mic input关闭
Delay(100);
/*AIC23左通路音频调节*/
// AIC23Write(0x00,0x17);
AIC23Write(0x01,0x17);
Delay(100);
/*AIC23右通路音频调节*/
// AIC23Write(0x02,0x17);
AIC23Write(0x03,0x17);
Delay(100);
/*AIC23耳机左通路音频调节*/
AIC23Write(0x05,0xff);
Delay(100);
/*AIC23耳机右通路音频调节*/
AIC23Write(0x07,0xff);
Delay(100);
/*AIC23模拟音频的控制DAC使能,ADC输入选择为Line,开旁路08 18*/
AIC23Write(0x08,0x10); //08 10 line input
Delay(100);
/*AIC23的波特率设置,采样率为96K*/
AIC23Write(0x10,0x1f); //
Delay(100);
/*AIC23数字音频通路的控制*/
AIC23Write(0x0A,0x00);
Delay(100);
/*AIC23数字接口的使能*/
AIC23Write(0x12,0x01);
Delay(100);
/*数字音频接口格式设置AIC23为主模式,数据为DSP模式,数据长度32位 53? 5f?*/
AIC23Write(0x0E,0x5f);
Delay(100);
Mcbsp的设置为:
McbspaRegs.SPCR2.all=0;
McbspaRegs.SPCR1.all=0;
McbspaRegs.SPCR1.bit.RJUST=2; //
McbspaRegs.PCR.all = 0x03;
McbspaRegs.SPCR1.bit.RINTM=1; //
McbspaRegs.SPCR2.bit.XINTM=1; //
// InitMcbspa32bit();
McbspaRegs.RCR1.bit.RWDLEN1=2; // 16-bit word
McbspaRegs.XCR1.bit.XWDLEN1=2; // 16-bit word
McbspaRegs.RCR2.bit.RWDLEN2=2; // 16-bit word
McbspaRegs.XCR2.bit.XWDLEN2=2; // 16-bit word
McbspaRegs.SPCR1.bit.RRST = 1; // 发送使能
McbspaRegs.SPCR2.bit.XRST = 1; //接收使能
user151383853:
AIC23设为主模式, 则 DSP 应该为从模式.
可以开启 FIFO 或 DMA 来接收数据, 以保证数据不会丢失.
guowen xu:
回复 user151383853:
谢谢回复,我会仔细看看这两块,另想请教:
1.DSP模式下接收左右两通道各16位的话,如图所示AIC寄存器字长IWL应该设置为16还是32?
2.Mcbsp里面RCR1,RCR2应该把数据设置为单相位数据帧(1字长,32位还是2字长各16位?),还是双相位数据帧(每个数据帧1字长,16位)?
tim lee:
回复 guowen xu:
1.我想你接受的数据是32位的吧,那你IWL应该设置为32bit,
2.Mcbsp设置为双相位,每个数据帧1字长;
3.兄弟你好,我最近也做这块DMA连Mcbsp从AIC23采集数据,我已经搞了好久了,但是丝毫没啥进展
guowen xu:
回复 tim lee:
我把单双相位,16和32字长都试过一遍了,还是不行啊,我也卡了很久了,双通道收发你能正常接收到数据不
tim lee:
回复 guowen xu:
双通道?怎么双通道,就是dmach1接收数据存到ram,dmach2再把数据传到codec?
tim lee:
回复 guowen xu:
嗷嗷,明白你说的,DRR1和DRR2分别接受左右两个声道的数据。这俩数据是一模一样的。我qq:叁29叁2叁21叁
ian:
回复 tim lee:
请问进展如何,想和您交流一下
user5321810:
回复 ian:
请问你也在做吗?想请教一下
ting liao:
回复 tim lee:
请问你们使用AIC23采集模拟信号的电压范围为多少,我们外接麦克风输入模拟信号到MICIN管脚,这个管脚接收的信息分左右声道传输吗