通过 DRR1和 DRR2 (每个16位)发送到左右通道的数据由音频芯片的 DAC 输出为正弦波。 在值不同的情况下、两个耳机声道的值相同、似乎使用了 DRR1的值、而 DRR2的值直接无效。
AIC23设置主模式、左右通道更新已打开、似乎是主模式 USB 模式 BCLK=MCLK DSP 模式16位输入数据长度、我对这个整个过程不是很了解、如果有文档、我希望推荐它、 谢谢你!
参考文档:320AIC23.pdf
想请老年人帮助指导或提供一些参考例程,谢谢!
AIC23和 DSP 配置如下:
AIC23寄存器设置:
AIC23Write (0x00、0x00);
延迟(100);
AIC23Write (0x02、0x00);
延迟(100);
AIC23Write (0x04、0xff);//耳机左声道控制
延迟(100);
AIC23Write (0x06、0xff);//耳机右声道控制
延迟(100);
AIC23Write (0x08、0x14);//模拟音频路径控制
延迟(100);
AIC23Write (0x0A、0x00);//数字音频路径控制
延迟(100);
AIC23Write (0x0C、0x00);//断电控制
延迟(100);
AIC23Write (0x0E、0x43);//数字音频接口格式看起来像是主模式 USB 模式 BCLK=MCLK DSP 模式16位输入数据长度。
延迟(100);
AIC23Write (0x10、0x1f);//采样率控制时钟 为 USB 模式
延迟(100);
AIC23Write (0x12、0x01);//数字接口激活
延迟(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;//启用串行端口传输