通过DRR1和DRR2向左右通道发送数据(各16位)由音频芯片的DAC输出成正弦波,在给的值不同的情况下,两个耳机声道的值相同,似乎均采用DRR1的值,DRR2的值直接无效。
AIC23设为主模式且左右通道更新已打开,貌似是 Master mode USB模式下 BCLK=MCLK DSP模式 16位的输入数据长度,对这个整体的流程不太了解,有文档的话希望能推荐一下,谢谢!!!
参考文档:320AIC23.pdf
想请前辈们帮忙指导一下或者能提供一些参考例程,感谢!
AIC23与DSP的具体配置如下:
AIC23寄存器设置:
AIC23Write(0x00,0x00);
Delay(100);
AIC23Write(0x02,0x00);
Delay(100);
AIC23Write(0x04,0xff);//耳机左声道控制
Delay(100);
AIC23Write(0x06,0xff);//耳机右声道控制
Delay(100);
AIC23Write(0x08,0x14);//模拟音频路径控制
Delay(100);
AIC23Write(0x0A,0x00);//数字音频路径控制
Delay(100);
AIC23Write(0x0C,0x00);//断电控制
Delay(100);
AIC23Write(0x0E,0x43);//数字音频接口格式 貌似是 Master mode USB模式下 BCLK=MCLK DSP模式 16位的输入数据长度。
Delay(100);
AIC23Write(0x10,0x1f);//Sample Rate Control clock 为USB mode
Delay(100);
AIC23Write(0x12,0x01);// Digital Interface Activation
Delay(100); //AIC23Init
McbspaRegs.SPCR1.all=0;
McbspaRegs.SPCR2.all=0;
McbspaRegs.SPCR1.all = SPCR10_VAL;
McbspaRegs.SPCR2.all = SPCR20_VAL; //仿真停止期间,串口时钟继续运行
McbspaRegs.PCR.all = PCR0_VAL; //上升沿采样
McbspaRegs.XCR1.all = XCR10_VAL;
McbspaRegs.XCR2.all = XCR20_VAL;
McbspaRegs.RCR1.all = RCR10_VAL;
McbspaRegs.RCR2.all = RCR20_VAL;
McbspaRegs.DXR1.all = 0;//清楚数据
McbspaRegs.MFFINT.bit.RINT = 1;//中断管理
McbspaRegs.SPCR1.bit.RRST = 1;//打开串口接收
McbspaRegs.SPCR2.bit.XRST = 1;//打开串口发送