我们目前正在进行基于 aic34音频编解码器和 C6748的定制电路板设计。 我们正在尝试实施音频回送,即接收音频线路输入->ADC->McASP->EDMA->McASP->DAC->lineOut。
问题是、当我们基于 aic3106演示软件配置编解码器时、在为 DAC 寄存器加电后、我们无法再从 aic34编解码器上的寄存器读取、i2c 线将丢失。
详细信息:
Aic3106编解码器遵循 AIC31Reset --> AIC31DataConfig->AIC31SampleRateConfig->AIC31ADCInit->AIC31DACInit 的顺序。 我们使用相同的顺序、因为 aic34在概念上是具有不同 i2c 的2xaic3106
地址。 在对 aic34的编解码器 A 进行编程时,为了检查这些值是否被正确写入,我们从编解码器读回这些寄存器以进行完整性检查。 问题就是这样
我们可以成功读回 AIC31Reset、AIC31DataConfig、AIC31SampleRateConfig 和 AIC31ADCInit 的值。 但是、当我们为 AIC31DACInit 中的 DAC 加电时、我们无法再从编解码器中读回所有这些值。 此外、我们在 i2c 总线上接触其他 i2c 器件时也遇到问题、i2c 总线会损坏。
它可能来自许多方面、但为了确保在软件方面、编解码器的编程是否缺少任何内容? 也就是说、我们是否必须将编解码器 A 和编解码器 b 同时编程到 samplplerateconfig?
是否有"确定工作"的寄存器分配顺序或脚本或代码示例、以便我们可以将重点转移到硬件问题上? 因为我们的软件在 aic3106上偏置、aic34可能会有什么不同?