DA7212酒精度问题

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.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 = -24 dB
ALC_THRESHOLD_MAX = -9 dB

ALC_ATTEN_MAX = 60 dB
ALC_GAIN_MAX = 60 dB

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:~ i2cump -f -y 2 0x1a
未指定大小(使用字节数据访问)
0123456789abcdef 0123456789abcdef
00:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 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 35 02 02 0f 0f 6f 6f 88 07 07 00 00 00 00 00 00 55????oo?? .....
40: 00 88 88 08 80 6f 6f 61 39 39 30 000 000 000 000 000 000 .????ooa990.....
50:00 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 18 18 18 DD ???((`hhh ??
70: 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000 .!??............
3f 10 06 aa ....?2?.....????
A0: 71 00 00 d0 0f 00 00 00 85 0f 00 00 00 00 00 00 00 q. ??
b0: 00 00 00 00 00 00 00 55 15 00 40 02 01 00 00 00 .......U? @??
C0: 00 00 00 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 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 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 01 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_ANTICLIP_LEVEL = 0xA2到0x64。这应该可以解决观察到的问题。

亲切的问候,

艾略特德克斯特

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

嗨,艾略特,

回答您的问题:

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

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

对我而言,看起来alc偏移校准不是正确完成的,这导致ALC有时会失败。我附上了我的Linux DA7213驱动程序。对你有什么看法吗?

此致,
乌尔里希

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

你好,

附件示意图。

此致,
乌尔里希