DA7212酒精度问题

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
12个职位/ 0个新职位
最后发表
ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
DA7212酒精度问题

你好,

我在DA7212编解码器中遇到ALC周期性问题。该系统运行于Linux系统,使用Dialog Semi提供的DA7213 SoC驱动程序。

问题是,有时ALC不恢复后,它已经降低了增益。似乎这个问题是由麦克风上突然的高输入触发的,这导致ALC降低增益,但它永远不会把增益恢复起来。

ALC_ATTACK = 44 / fs
ALC_RELEASE = 176 / fs

ALC_INTEG_RELEASE = 1/4
ALC_INTEG_ATTACK = 1/4
ALC_HOLD = 62 / fs

ALC_THRESHOLD_MIN = - 24db
ALC_THRESHOLD_MAX = - 9db

ALC_ATTEN_MAX = 60db
ALC_GAIN_MAX = 60db

ALC_ANA_GAIN_MAX = 36 dB
ALC_ANA_GAIN_MIN = 0 dB

ALC_ANTICLIP_EN是禁用的
ALC_ANTICLIP_LEVEL = 0

ALC噪声电平设置为-94.5 dB

有什么想法能解释为什么会这样吗?DA7212中的任何寄存器,我可以监视以查看ALC的内部状态/操作。

最好的问候,
乌尔里希

设备:
ED_Dialog
离线
最后看到:1个月3个星期前
工作人员
加入:2017-09-18 54所以
你好,乌尔里希,

你好,乌尔里希,

让我来调查一下。

亲切的问候,
艾略特Dexterb

ED_Dialog
离线
最后看到:1个月3个星期前
工作人员
加入:2017-09-18 54所以
你好,乌尔里希,

你好,乌尔里希,

你能给我提供一份登记册吗?

亲切的问候,

艾略特德克斯特

ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
你好,

你好,

请查看下面的注册转储期间流。请注意ALC在这种情况下表现正常。


root@x:~ i2cdump -f -y 2 0x1a . txt
没有指定大小(使用字节数据访问)
0123456789abcdef
00: 00 00 00 05 00 00 07年07 00 00 00 00 00 00 00 00 ...?..??........
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
20: 00 10 0a 08 07 ea 1e 88 80 08 32 8b 00 00 00 00 .?????????2?....
30: 35 35 02 02 0f 0f 6f 6f 88 07 07 00 00 00 00 00 55????oo?? .....
40: 00 88 88 08 80 6f 6f 61 39 39 30 00 00 00 00 00 .????ooa990.....
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 64 64 11 08 08 28 28 20 20 60 60 68 68 68 18 18 dd??(“终极战士? ?
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 00 21 89 03 00 00 00 00 00 00 00 00 00 00 00 00 .!??............
90: 00 00 00 00 00 03 32 95 00 00 00 00 00 3f 10 06 aa ....?2?.....????
A0: 71 00 00 d0 00 00 00 00 85 00 f 00 00 00 00 00 00 q. ?? ?? ?......
b0: 00 00 00 00 00 00 00 55 15 00 40 02 01 00 00 00 00 .......U?.@??
C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?...............
F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............?..

最好的问候,
乌尔里希

ED_Dialog
离线
最后看到:1个月3个星期前
工作人员
加入:2017-09-18 54所以
你好,乌尔里希,

你好,乌尔里希,

谢谢你把登记簿扔了。我们设法在实验室重现了你的问题,我们找到了一个潜在的解决方案,将ALC_Gain_Max改为72dB。自从更改值以来,我们没有观察到这个问题。我们将进一步了解为什么会发生这种情况。

亲切的问候,
艾略特德克斯特

ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
你好,

你好,

谢谢你的反馈。我会测试你的建议并反馈给你。

最好的问候,
乌尔里希

ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
你好,

你好,

我已经测试了提议的更改,它并不能解决问题。在降低增益后,ALC仍然不总是恢复。同样,将ALC_Gain_Max更改为72dB会由于信号的裁剪而导致失真。

你能解释在ALC中是什么导致了这种意外行为吗?其他解决问题的建议。

最好的问候,
乌尔里希

ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
嗨,艾略特,

嗨,艾略特,

另一个关于ALC的观察是,我看到左右通道的振幅有很大的不同。这只有在使用ALC时才能看到。从数据表中我读到的,ALC对两个通道应用相同的增益,对吗?

使用固定增益时,左右通道的振幅是相等的。

最好的问候,
乌尔里希

ED_Dialog
离线
最后看到:1个月3个星期前
工作人员
加入:2017-09-18 54所以
嗨,乌尔里希,

嗨,乌尔里希,

这很有趣,周围的工作似乎在这里的长凳上起作用。我已经再次向团队提出了这个问题,希望我能很快得到一些答案。

亲切的问候,

艾略特德克斯特

ED_Dialog
离线
最后看到:1个月3个星期前
工作人员
加入:2017-09-18 54所以
你好,乌尔里希,

你好,乌尔里希,

很抱歉回复晚了,我现在不在办公室。我有几个问题和一个建议:

  1. 当ALC降低增益时,施加的信号的幅值是多少?
  2. 可以查看电路板的原理图吗?
  3. 建议:

设置ALC_SYNC_MODE为enabled,假设我们已经启用了,那么我们还需要ALC_ANTICLP_CTRL enabled = 0xA1到0x80, alc_antilip_level = 0xA2到0x64。这应该能解决正在观察的问题。

亲切的问候,

艾略特德克斯特

ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
嗨,艾略特,

嗨,艾略特,

回答你的问题:

1.在我的测试中,信号的振幅是正常的语音。然后我轻按麦克风,以激发一个高输入到ALC。增益当然会像预期的那样降低,但当我停止轻拍麦克风时,增益有时仍然很低。
2.见附件
3.我还没试过。

我尝试的是使用没有自动校准的ALC,这似乎解决了问题。我设置ALC_SYNC_MODE = 1和ALC_OFFSET_EN = 0。这可能会产生什么影响?

对我来说,它看起来像ALC偏移校准不正确,这导致ALC有时失败。我已附加我的linux da7213驱动程序。你觉得有什么可疑的吗?

最好的问候,
乌尔里希

附件:
ulrich.sorensen
离线
最后看到:2年7个月前
加入:2016-09-15 07:40
你好,

你好,

附件示意图。

最好的问候,
乌尔里希