我试图得到ALC(自动水平控制)工作在DA7212模拟麦克风,但还没有能够得到ALC对音频输出有任何影响。
我的设置音频路径是:
2模拟Mic(伪差分)--------> DA7212 Mic输入—> DA7212 DAI -------->处理器(波捕获)。
我知道我有DA7212设置正确,因为我可以通过这条路径得到音频,以及将它发送回DA7212 HP输出。
在尝试了一堆不同的设置在ALC寄存器集后,我怀疑问题可能与没有在正确的配置条件下设置ALC有关…
在编解码器设置的什么点应该配置ALC ?
建立ALC的配置前提是什么?
是否有任何设置将禁用ALC配置?
我从我的代码中附加了两个函数,它们最好地总结了我正在做的事情。
注意,在这些函数之前,编解码器被初始化,采样率被设置,DAI格式被配置,锁相锁住。
da7212_alc_config_analog: // ALC寄存器配置。
da7212_amic_i2s_loopback //配置编解码器路径,卷,并尝试设置ALC(无效)。
任何帮助或想法将非常感谢。谢谢!
设备:
你好罗伯特,
我会调查的。
亲切的问候,
艾略特德克斯特
你好罗伯特,
我已经和音频应用团队谈过了。他们认为ALC没有足够的时间进行校准。他们已经创建了一个脚本,将MIC到ADC和DAC的设置复制到HP,然后在配置ALC之前静音MIC输入。这种方法允许一个小的延迟和ALC校准。请参阅所附的脚本进一步参考和示例。
如果你还有任何问题,请问我。
亲切的问候,
艾略特德克斯特
我审查和更新了我的代码,针对您的参考脚本,ALC现在显然是工作的。这些更改导致了一些略微不同的寄存器设置、一些寄存器写入的重新排序以及增加的延迟。谢谢!