This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3104EVM-K:我们只能听到噪声(无声音)

Guru**** 1821780 points
Other Parts Discussed in Thread: TLV320AIC3104EVM-K, TLV320AIC3104, TLV320AIC3110, TAS2764
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1064111/tlv320aic3104evm-k-only-noise-we-can-hear-no-sound

器件型号:TLV320AIC3104EVM-K
主题中讨论的其他器件: TLV320AIC3104TLV320AIC3110TAS2764

大家好、
 我将 TLV320AIC3104EVM-K (外部编解码器) 与 IMX8MM 搭配使用。
通过以下更改、我只能听到噪声。

更改:
+       sound-tlv320aic3x{
+               兼容="简单音频卡";
+               simple-audio-card、name ="tlv320aic3x-Codec";
+               简单音频卡、格式="I2S";
+               simple-audio-card、frame-master =<&cpuda1>;
+               simple-audio-card、bitclock-master =<&cpuda1>;
+
+          简单音频卡、小工具=
+         "麦克风"、"麦克风插孔"、
+         "线路"、"线路输出"、
+         "线路"、"线路输入"、
+         "耳机"、"耳机插孔"、
+                  "扬声器"、"扬声器";
+      简单音频卡,路由=
+         "线路输出"、"HPLCOM"、
+                  "线路输出"、"HPRCOM"、
+         "LINE1L"、"线路输入"、
+         "LINE1R"、"线路输入"、
+                  "耳机插孔"、"HPLOUT"、
+                  "耳机插孔"、"HPROUT"、
+         "MIC2L"、"麦克风插孔"、
+         "MIC2R"、"Mic Jack"、
+         "麦克风插孔"、"麦克风偏置"、
+                  "扬声器"、"LLOut"、
+                  "扬声器"、"RLOUT";
+
+               cpuda1:简单音频卡、CPU{
+                       Sound-Dai =<(赛义1);
+                       di-tdm-slot-num =<2>;
+                       di-tdm-slot-width =<32>;
+}               ;
+
+               简单音频卡、编解码器{
+                       sound-dai =<&tlv320aic3x>;
+                       时钟=<&clk IMX8MM_CLK_SAI1_ROOT>;
+}               ;
+}       ;
+       reg_3p3v:reguler-3p3v{
+               compatible ="固定稳压器";
+               电脑控制器名称="3P3V";
+               稳压器最小微伏=<3300000>;
+               电脑控制器最大值微伏=<3300000>;
+      启动延迟-us =<300000>;
+               稳压器常开;
+}       ;
+
+       reg_1p8v:reguler-1p8v{
+               compatible ="固定稳压器";
+               电脑控制器名称="1P8V";
+               稳压器最小微伏=<1800000>;
+               稳压器最大微伏=<1800000>;
+               稳压器常开;
+}       ;

+       tlv320aic3x:编解码器@18{
+               compatible ="ti、tlv320aic3104";
+               reg =<0x18>;
+               pinctrl-0 =<&pinctrl_audio_reset>;
+               RESET-GPIO =<&GPIO4 1 GPIO_ACTIVE_LOW>;
+      ai31xx 微偏置 vg = ;
+               #sound-di-cells =<0>;
+               DRVDD 电源=<Registered_3p3v>;
+               AVDD 电源=<Registered_3p3v>;
+               IOVDD 电源=<Registered_3p3v>;
+               DVDD 电源=<Registered_1p8v>;
+}       ;

 Saa1{(&S)
+       #sound-di-cells =<0>;
+       pinctrl-names ="default";
+       pinctrl-0 =<&P pinctrl_sa1>;
+   FSL、SAI-MCLK 方向输出;
+       分配的时钟=<&clk IMX8MM_CLK_SAI1>;
+       分配的时钟父级=<&clk IMX8MM_AUDIO_PLL1_OUT>;
+       分配的时钟速率=<24576000>;
+       STATUS ="确定";
+};

+      pinctrl_audio_reset:pinctrl_audio_reset{
+              FSL、引脚=<
+                      MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1        0x13
+              >;
+}      ;

    pinctrl_sai1:sai1grp{
       FSL、引脚=<
          MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK   0xd6
          MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC   0xd6
-         MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC   0xd6
+/*MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC            0xd6*/
          MX8MM_IOMUXC_SAI1_TXC_SAI1_TXC_BCLK   0xd6
          MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATAA0   0xd6
-         MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1   0xd6
+         /* MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1   0xd6
          MX8MM_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2   0xd6
          MX8MM_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3   0xd6
          MX8MM_IOMUXC_SAI1_TXD4_SAI1_TX_DATAA4   0xd6
          MX8MM_IOMUXC_SAI1_TXD5_SAI1_TX_Data5   0xd6
          MX8MM_IOMUXC_SAI1_TXD6_SAI1_TX_DATAA6   0xd6
-         MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7   0xd6
+         MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7   0xd6 */
+         MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATAA0   0xd6
       >;
    };
 
@@-923、16 +105、17 @@
       FSL、引脚=<
          MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK   0xd6
          MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC   0xd6
-         MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_DATA4   0xd6
+      /*   MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_DATA4   0xd6*/
          MX8MM_IOMUXC_SAI1_TXC_SAI1_TXC_BCLK   0xd6
          MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATAA0   0xd6
-         MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1   0xd6
+         /* MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1   0xd6
          MX8MM_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2   0xd6
          MX8MM_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3   0xd6
          MX8MM_IOMUXC_SAI1_TXD4_SAI1_TX_DATAA4   0xd6
          MX8MM_IOMUXC_SAI1_TXD5_SAI1_TX_Data5   0xd6
          MX8MM_IOMUXC_SAI1_TXD6_SAI1_TX_DATAA6   0xd6
-         MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7   0xd6
+         MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7   0xd6 */
+         MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATAA0   0xd6
       >;
    };

输出:

130|EVK_8mm:/# i2cdump -y -f 2 0x18

0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef

00:00 00 00 10 04 00 00 00 00 00 00 00 01 00 00 00 80……?… ???

10:80 ff 78 78 78 78 78 78 78 78 06 00 fe 00 fe 00 ?xxxxxx?..

20:00 20 00 20 00 00 00 00 00 00 00 80 00 00 00。 。 … ???...

30:00 00 00 04 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ...? ?。

40:00 04 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00。。。。 ?。

50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

60:00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00……………………………………………

70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

80:00 00 10 04 00 00 00 00 00 00 00 00 01 00 00 00 80……?… ???

90:80 ff 78 78 78 78 78 78 78 06 00 fe 00 fe 00 ?xxxxxx?..

A0:00 20 00 20 00 00 00 00 00 00 80 00 00 00。 。 … ???...

B0:00 00 04 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ...? ?。

C0:00 04 00 00 00 00 00 00 04 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

E0:00 02 00 00 00 02 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 00 00 00

EVK_8mm:/#

regmap (regmap):

VK_8mm:/sys/kernel/debug/regmap 2-0018 # cat 寄存器

00:00

01:XX

02:00

03:20

04:1C

05:36

06:B0

07:0A

08:00

09:00

0A:00

0b:01

0C:00

0D:00

0E:00

0f:20

10:20

11:FF

12:FF

13:00

14:78

15:78

16:00

17:78

18:78

19:00

1A:00

1b:铁

1C:00

1D:00

1E:铁

1F:00

20:18

21:18

22:00

23:00

24:00

25:00

26:00

27:00

28:40

29:00

2A:00

2B:AF

2C:AF

2D:00

2E:2F

2F:AF

30:00

31:00

32:00

33:0C

34:00

35:2F

36:AF

37:00

38:00

39:00

3A:0C

3B:00

3c:00

3D:00

3e:00

3F:2F

40:AF

41:0C

42:00

43:00

44:00

45:00

46:2F

47:AF

48:0C

49:00

4A:00

4B:00

4C:00

4D:00

4e:00

4F:00

50:00

51:2F

52:AF

53:00

54:00

55:00

56:08

57:00

58:00

59:00

5A:00

5B:2F

5C:AF

5D:08

5e:00

5F:00

60:00

61:00

62:00

63:00

64:00

65:01

66:02

67:00

68:00

69:00

6A:00

6b:00

6C:00

6D:00

混合色调:

EVK_8mm:/#混合色

混频器名称:'tlv320aic3x-Codec'

管制数目:78

CTL 键入 num name value

0 INT 2 PCM 回放音量80

1 INT 1左行混频器 PGAR 旁路音量118

2 INT 1左行混频器 DACR1播放音量118

3 INT 1右线路混频器 PGAL 旁路音量118

4 INT 1右线路混频器 DACL1回放音量118

5 INT 1左侧 HP 混频器 PGAR 旁路音量118

6 INT 1左侧 HP 混音器 DACR1播放音量118

7 INT 1右 HP 混音器 PGAL 旁路音量118

8 INT 1右 HP 混音器 DACL1播放音量118

9 INT 1 Left HPCOM Mixer PGAR Bypass Volume 118

10 INT 1左 HPCOM 混音器 DACR1播放音量118

11 INT 1右 HPCOM 混频器 PGAL 旁路音量118

12 INT 1右 HPCOM 混音器 DACL1回放音量118

13 INT 2线路 PGA 旁路音量71

14 INT 2线路 DAC 回放音量71

15 INT 2 HP PGA 旁路音量71

16 INT 2 HP DAC 回放音量71

17 INT 2 HPCOM PGA 旁路音量71 71

18 INT 2 HPCOM DAC 回放音量71

19 INT 2线路回放音量0

20 BOOL 2线路回放开关打开

21 INT 2 HP 回放音量0

22 BOOL 2 HP 回放开关打开

23 INT 2 HPCOM 回放音量0

24 BOOL 2 HPCOM 回放开关打开

25 BOOL 2 AGC 开关关闭

26枚举1左侧 AGC 目标级别-5.5dB

27枚举1右 AGC 目标级别-5.5dB

28枚举1剩余 AGC 攻击时间8ms

29枚举1右 AGC 攻击时间8ms

30枚举1剩余 AGC 衰减时间100ms

31枚举1右 AGC 衰减时间100ms

32 BOOL 2去加重开关关闭

33 INT 2 PGA 捕捉卷32

34 BOOL 2 PGA 捕捉开关打开

35枚举2 ADC HPF 切断已禁用

36枚举1输出驱动器加电时间0us

37枚举1输出驱动器斜升步长0ms

38枚举1左侧 DAC 多路复用器 DAC_L1

39枚举1 HPLOUT 的 HPCOM 多路复用器差分

40枚举1右侧 DAC 多路复用器 DAC_R1

41枚举1 HPROUT 的右 HPCOM 多路复用器差分

42枚举1左侧 Line1L Mux 单端

43枚举1左侧 Line1R 多路复用器单端

44枚举1右行1L 多路复用器单端

45枚举1右行1R 多路复用器单端

46 BOOL 1左 PGA 混频器线路1L 开关打开

47 BOOL 1左 PGA 混频器线路1R 开关关闭

48 BOOL 1左 PGA 混频器 Mic2L 开关关闭

49 BOOL 1左 PGA 混频器 Mic2R 开关关闭

50 BOOL 1右 PGA 混频器线路1R 开关打开

51 BOOL 1右 PGA 混频器线路1L 开关关闭

52 BOOL 1右 PGA 混频器 Mic2L 开关关闭

53 BOOL 1右 PGA 混频器 Mic2R 开关关闭

54 BOOL 1左行混频器 PGAL 旁路开关关闭

55 BOOL 1左行混频器 DACL1开关打开

56 BOOL 1左行混频器 PGAR 旁路开关关闭

57 BOOL 1左行混频器 DACR1开关关闭

58 BOOL 1右侧线路混合器 PGAL 旁路开关关闭

59 BOOL 1右侧线路混合器 DACL1开关关闭

60 BOOL 1右侧线路混合器 PGAR 旁路开关关闭

61 BOOL 1右侧线路混合器 DACR1开关打开

62 BOOL 1左侧 HP 混频器 PGAL 旁路开关关闭

63 BOOL 1左侧 HP 混频器 DACL1开关打开

64 BOOL 1左侧 HP 混频器 PGAR 旁路开关关闭

65 BOOL 1左侧 HP 混频器 DACR1开关关闭

66 BOOL 1右 HP 混频器 PGAL 旁路开关关闭

67 BOOL 1右 HP 混频器 DACL1开关关闭

68 BOOL 1右 HP 混频器 PGAR 旁路开关关闭

69 BOOL 1右 HP 混频器 DACR1开关打开

70 BOOL 1左 HPCOM 混频器 PGAL 旁路开关关闭

71 BOOL 1左 HPCOM 混频器 DACL1开关打开

72 BOOL 1左 HPCOM 混频器 PGAR 旁路开关关闭

73 BOOL 1左 HPCOM 混频器 DACR1开关关闭

74 BOOL 1右 HPCOM 混频器 PGAL 旁路开关关闭

75 BOOL 1右 HPCOM 混频器 DACL1开关关闭

76 BOOL 1右 HPCOM 混频器 PGAR 旁路开关关闭

77 BOOL 1右 HPCOM 混频器 DACR1开关打开

EVK_8mm:/#


 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您有多个帖子、这些帖子是否属于同一系统?  

    您之前的帖子显示了 I2C 事务问题、并查看上面的 i2cdump、未配置任何内容。

    ADC 和 DAC 路径均禁用/断电。

    我建议先解决此帖子。

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1060877/tlv320aic3104-q1-need-help-to-solve-error-error-at-snd_soc_component_update_bits-and-error-at-soc_component_write_no_lock

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    我们有两个不同的系统。

    具有内部编解码器 tlv320aic3110的 IMX8MM

    >>它具有不同的 E2E 案例。

    >>对于内部编解码器、我们面临 I2C 通信问题。 不要在这两种情况之间混淆。

    2. IMX8MM,带外部编解码器 tlv320aic3104。

    >>在此系统中,我们可以通过耳机播放音频文件,但对于少数文件,我们会遇到以下错误。

    >>

    故障样本:

    EVK_8mm:/# tinyplay /sdcard/SineWaveMinus16.wav                                                                                     
    无法打开 PCM 设备0 (无法设置硬件参数:无效参数)

    logcat:

    [675.093204] Divyesh -< SoC-read> Func:snd_soc_component_read、reg:9.
    [675.093213] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:9、value:48
    [675.093222] Divyesh -< SoC-write> Func:snd_soc_component_write、reg:101、value:0
    [675.093227] Divyesh -< SoC-update> func:snd_soc_component_update_bits、reg:3、value:128、mask:128
    [675.093232] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:7、value:138
    [675.093235] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:2、value:0
    [675.093294] Divyesh -< SoC-update> func:snd_soc_component_update_bits、reg:3、value:3、mask:7
    [675.093298] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:11、value:1.
    [675.093301] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:4、value:20
    [675.093305] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:5、value:80
    [675.093309] Divyesh -< SoC-write> Func:snd_SoC_component_write、reg:6、value:20
    [675.093324] FSL-SAI 3001000.SAI:无法得出所需的 Tx 速率:2822400
    [675.100430] FSL-SAI 3001000.SAI:ASOC:3001000.SAI 上的 snd_soc_da_hw_params 错误:-22.
    [675.108794] Divyesh -< SoC-read> Func:snd_soc_component_read、reg:43
    [675.108799] Divyesh -< SoC-read> Func:snd_soc_component_read、reg:44

    请帮助我们了解 dtsi 文件中的 SAI1节点需要哪些更改。

    请告诉我们所需的 Tx 速率。 因此、可以通过耳机播放所有音频文件、而不会出现任何所需的 Tx 速率错误。

    1. 所有系统音量(如闹钟、铃声和按钮声音)都通过耳机工作。
    2. 我们现在可以播放一些特定的音频文件。 我们需要为编解码器计算或设置适当的时钟速率、以便播放所有音频文件。
    3. 目前 MIC 不工作。 这意味着我们尝试使用 tinycap 实用程序捕获音频、但仅记录噪声  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请 与我分享 SineWaveMinus16.wav、我将检查此文件的采样率和位宽

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../SineWaveMinus16.wav

    未使用 tinyplay 命令播放 WAV 文件。

    但我们能够使用系统应用程序、VLC 播放器等进行播放

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    耳机输出正常。

    请您帮助我们处理 MIC 输入、我们无法记录任何内容。

    请检查上述配置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    位流的位宽为32位、采样率为44.1kHz、请检查 MCLK 是否可以支持 "无法得出所需的 Tx 速率:2822400"?

    我建议将原始音频流重新采样到特定的采样率和位宽、然后将数据传输到芯片。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    告诉我您使用的记录命令。 例如、您使用的 tinycap 和 tinymix、谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们正在使用系统应用"录音机"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    面临一个与噪声相关的问题。

    每当我播放声音、铃声和系统声音时。 在播放音频时、我几乎听不到一点噪音。

    主要问题是当我终止音频时,之后我可以听到至少2到3秒钟的噪音。 意味着音频正在终止、但噪声至少持续3 4秒

    产生噪声的原因是什么?如何消除噪声?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    也请检查连接。  我可以通过耳机插孔听到一点噪音。

    终止声音后,实际终止音频需要3 4秒  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是从 I2S 到耳机(DAC)路径听到的噪声、还是仅从 MIC 到耳机听到的噪声?

    隔离路径、以便我们能够放大可能的原因。

    是否已确认编解码器设置/配置正确?

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我们目前尚未使用 MIC。

    噪声不仅来自耳机输出、而且来自 DAC 的所有输出:

    在空闲情况下、所有输出均提供0.5V 电压并持续下降。  

    在空闲状态下、将电压电平保持为0的方法是什么?

    问:是否已确认编解码器设置/配置正确?

    >>我们不确定

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请检查配置、尤其是您的 MCLK 与采样、PLL 比率、位深度等的关系。

    根据 数据表第10.6节中的寄存器映射检查寄存器转储、并确保路径正确。

    通常情况下、DAC 与驱动器之间的这一噪声问题可能是由于时钟设置/比率不匹配造成的。

    我建议您阅读数据表的第10.3.3节、熟悉时钟树并使用此站点中的 PLL 计算器获得正确的比率。

    https://www.ti.com/product/TLV320AIC3104

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很少的输入和输出:

    更改:

    +               简单音频卡、编解码器{
    +                       sound-dai =<&tlv320aic3x>;
    +                       时钟=<&clk IMX8MM_CLK_SAI1_ROOT>;
    +}               ;

     Saa1{(&S)
    +       #sound-di-cells =<0>;
    +       pinctrl-names ="default";
    +       pinctrl-0 =<&P pinctrl_sa1>;
    +       分配的时钟=<&clk IMX8MM_CLK_SAI1>;
    +       分配的时钟父级=<&clk IMX8MM_AUDIO_PLL1_OUT>;
    +       分配的时钟速率=<12288000>;
    +       STATUS ="确定";
    +};

    音频文件信息:

    test_dummy.wav                                                                                          
    播放示例:2通道、48000Hz、16位139792304字节

    日志:

    [3.608447] Divyesh -tlv320aic3x Func:aic3x_Set_Dae_SYSCLK、频率:12288000

    1.当 PA 关闭(断开连接)+播放音频时:

     MCLK:12.29MHZ

    BCLK:1.534MHz

    WCLK:48.00KHz

    2.当 PA 打开(已连接)+音频播放时:

    MCLK:连续波动- 7MHz 至25MHz

    BCLK:1.537MHz

    WCLK:48kHz

    等值:

    存在音频噪声。

    2.当我停止音频时,音频停止,但在音频停止操作后噪音至少持续3 4秒。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    上述注释的补充内容:

    1.我们没有对驱动程序文件进行任何更改

    2.我们没有更改任何寄存器值(我们正在使用的默认值)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据以上设置:

    • 当 Q=2时、PLL 被禁用、提供48kHz Fs
    • 左侧和右侧路径的 DAC 路径均关闭
    • 编解码器为从模式
    • 无 ADC HPF、对 DAC 无数字影响
    • 左右 ADC 均已静音
    • 没有输入连接到左侧或右侧 ADC 通道
    • DAC 断电

    总之、您的路径中未启用任何功能、您需要配置 DAC 路径。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您的意见。

    仅供您参考、目前我们可以听到几乎没有噪声的音频。

    您能不能给出一些想法,对于上述问题需要做些什么?

    请强调我们需要针对上述问题进行哪些更改以及哪些更改?

    我们的要求如下:

    1.在最终更改中,只应启用耳机和 L/R 扬声器输出。

    谢谢、

    Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    路径已关闭、因此不确定您听到声音的原因。

    以下是配置编解码器的步骤、您需要参阅数据表寄存器映射第10.6节以了解设置:

    1. 使用或不使用 PLL 配置时钟、寄存器3-6、102
    2. 根据您的要求配置音频接口、 注册8-10
    3. 配置 DAC 、寄存器37、41、43-44
    4. 根据您选择的路径配置输出驱动器、寄存器47之后的驱动器

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我在以下情况下收集了 I2C 转储:

    1.歌曲未播放(空闲状态)

    2.正在播放歌曲

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请检查编解码器的最新更新:

    我们可以播放系统声音、YouTube 和音频文件。 但音频噪声很小。  

    噪声来自扬声器、耳机、HPR/L 等所有输出

    (小部分

    1.歌曲未播放(空闲状态)

    a) I2C 转储

    b)时钟摘要

        audio_pll1_ref_sel                0        0        0    24000000          0     0  50000

           audio_pll1                     0        0        0   393216000          0     0  50000

              audio_pll1_bypass           0        0        0   393216000          0     0  50000

                 audio_pll1_out           0        0        0   393216000          0     0  50000

                    sai3                  0        0        0    24576000          0     0  50000

                       sai3_root_clk       0        0        0    24576000          0     0  50000

                    sai2                  0        0        0    24576000          0     0  50000

                       sai2_root_clk       0        0        0    24576000          0     0  50000

                    sai1                  0        0        0    49152000          0     0  50000

                       sai1_root_clk       0        0        0    49152000          0     0  50000

     OSC_32k                0    0    0   0 32768      0  0 50000

    c) MCLK

    D) WCLK

    e) BCLK

    (小部分

    2.正在播放歌曲

    a) I2C 转储

    b)时钟评审

        audio_pll1_ref_sel                1        1        0    24000000          0     0  50000

           audio_pll1                     1        1        0   393216000          0     0  50000

              audio_pll1_bypass           1        1        0   393216000          0     0  50000

                 audio_pll1_out           1        1        0   393216000          0     0  50000

                    sai3                  0        0        0    24576000          0     0  50000

                       sai3_root_clk       0        0        0    24576000          0     0  50000

                    sai2                  0        0        0    24576000          0     0  50000

                       sai2_root_clk       0        0        0    24576000          0     0  50000

                    sai1                  1        1        0    49152000          0     0  50000

                       sai1_root_clk       2        2        0    49152000          0     0  50000

     osc_32k                              0        0        0       32768          0     0  50000

    evk_8mm:/ #

    c) MCLK

    D) WCLK

    e) BCLK

    (二

    注意:请参阅以下开关位置、了解 USB MODEVM 电路板上的 SW2。

    您能否检查问题出在哪里?  

    我们使用的是具有 TLV 编解码器设置的 IMx8mm-EVK。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从上面的 SW2图片中、您有 EXT MCK 和 USB MCK、两者均为 HI、这意味着您将有来自 USB 和外部源的 MCLK。

    您的 MCLK 来自哪里? 如果您有外部 MCLK、则将 USB MCK 切换为 LO 并将寄存器3从0x40更改为0x10。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们提供来自 NXP 处理器(imx8mm)的 MCLK。我们没有将任何 USB 电缆连接到 TLV 板。 仅从 NXP 处理器提供5V 电源。

    在这种情况下、需要进行哪些更改。

    也请提供您对其他参数的分析。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们已关闭 USB MCK 开关、尝试将寄存器3从0x40更改为0x10。 仍然有噪声

    我们仍在获取音频和小位噪声

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的 MCLK 首先非常糟糕;时钟抖动也会导致噪声。

    我不知道如何在设置中使用 EVM、建议在移植到系统之前清理时钟并使用 EVM 运行 DAC 设置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Pdjuandi、

    您能否简单介绍一下" 移植前使用 EVM 清洁时钟并运行 DAC 设置"?

    如何清洁时钟?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅上面的 MCLK。 使用示波器从主机捕获您的 MCLK、而无需与 EVM 建立任何连接、它是否干净? 如果不是主机配置/系统中的内容、则会导致 MCLK 抖动。 你必须解决这个问题、我无法为你提供帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、谢谢。

    任何音频文件时、我们都会自动执行该操作。 它同时从所有输出中播放。

    在耳机和扬声器之间分配优先级需要做些什么。

    示例:如果音频从扬声器播放、同时插入耳机、则该时间音频声音应从扬声器路由到耳机、SPKR 输出应关闭。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想您可以通过 ALSA 控制这种情况、但我不熟悉 Linux 声音架构。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、谢谢。

    如果您分享 ALSA 更改的任何示例、那将会很棒。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们没有这种情况、您需要搜索或咨询 Linux ALSA 社区。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我对编解码器文件有疑问。

    我们有内核版本5.1。

    我正在尝试在输出代码中添加耳机检测实现:

    ++ b/sound/soc/codecs/tlv320aic3x.c
    @@-1481,6 +1481,42 @@ static int aic3x_set_bias _level (struct snd_soc_component * component、
           返回0;
     }
     
    void aic3x_set_header_detection (struct snd_soc_component *编解码器、int detect、
    +                               int header_debounce、int button_debounce)
    +{
    +u8      val;
    +
    +      val =((DETECT & AIC3X_HEADSER_DETACT_MASK)
    +              << AIC3X_Headset_detect_shift)|
    +            ((耳机去抖和 AIC3X_Headset 去抖_遮罩)
    +              << AIC3X_Headset 去抖_SHIFT)|
    +            ((button_debounce 和 AIC3X_button_debounce_mask)
    +              << AIC3X_button_debounce_shift);
    +
    +      IF (DETECT 和 AIC3X_HEADSER_DETITY_MASK)
    +              val |= AIC3X_HEADSER_DETITY_ENABLED;
    +
    +      snd_soc_component_write (codec、AIC3X_header_detect_CTRL_a、val);
    +}
    +export_symbol_GPL (aic3x_set_header_detection);
    +
    +int aic3x_header_detected (struct snd_soc_component *编解码器)
    +{
    +u8      val;
    +      snd_soc_component_read (编解码器、AIC3X_header_detect_CTRL_B、&val);
    +      返回(val >> 4)和1;
    +}
    +export_symbol_GPL (aic3x_header_detected);
    +
    +int aic3x_button_pressed (struct snd_soc_component *编解码器)
    +{
    +u8      val;
    +      snd_soc_component_read (编解码器、AIC3X_header_detect_CTRL_B、&val);
    +      返回(val >> 5)和1;
    +}
    +export_symbol_GPL (aic3x_button_pressed);
    +
    +
     #define AIC3X_RARates   SNDRV_PCM_RATE 8000_96000
     #define AIC3X_Formats (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
                            SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_LE |\
    @@-1547、6 +1583、9 @@静态 int aic3x_init (struct snd_soc_component * component)
           Snd_soc_component_write (component、LDAC_VOL、default_VOL | MUTE_ON);
           Snd_soc_component_write (component、RDV_VOL、default_VOL | MUTE_ON);
     
    +/*      启用耳机检测器*/
    +      snd_soc_component_write (component、AIC3X_header_detect_CTRL_A、0x80);
    +
           /* DAC 至 HP 默认音量并路由至输出混频器*/
           Snd_soc_component_write (component、DACL1_2_HPLOT_VOL、default_VOL | route_on);
           Snd_soc_component_write (component、DACR1_2_HPROUT_VOL、default_VOL | route_on);
    diff --git a/sound/soc/codecs/tlv320aic3x.h b/sound/soc/codecs/tlv320aic3x.h
    索引66d3580.f7f1473 100644
    ---- A/sound/soc/codecs/tlv320aic3x.h
    ++ b/sound/soc/codecs/tlv320aic3x.h
    @@-236、6 + 236、9 @@
     /*默认输入音量*/
     #define DEFAULT_GAIN   0x20
     
    +/*默认耳机,按钮按压检测位启用*/
    +#define DEFAULT_HEETER_BIT_DETECTING0x80    
    +
     /* MICBIAS 控制寄存器*/
     #define MICBIAS_LEVEL_SHIFT   (6)
     #define MICBIAS_LEVEL_MASK    (3 <<6)
    @@-285,4+288,10 @@枚举{
     #define AIC3X_button_debounce_shift   0
     #define AIC3X_button_debounce_mask    3.
     
    +/-*请参阅上面的枚举以了解此函数的有效参数*/
    +
    +void aic3x_set_header_detection (struct snd_soc_component *编解码器、int detect、int header_debounce、int button_debounce);
    +int aic3x_header_detected (struct snd_soc_component *编解码器);
    +int aic3x_button_pressed (struct snd_soc_component *编解码器);
    +

    但我会遇到以下错误:

    /home/divyesh/Kimball-code/vendor/nxp-opensource/kernel_imx/scripts/Makefile 编译:272:目标'SOD/CODS/tlv320aic3x.o'的配方失败
    /home/divyesh/Kimball-code/vendor/nxp-opensource/kernel_imx/scripts/Makefile 构建:515:目标"声音/SoC/CODEC "的配方失败
    /home/divyesh/Kimball-code/vendor/nxp-opensource/kernel_imx/scripts/Makefile。build:515:目标'stound/Soo'的配方失败
    /home/divyesh/Kimball-code/vendor/nxp-opensource/kernel_imx/Makefile:1907:目标"声音"的配方失败
    make[2]:离开目录'/home/divyesh/KimBall-code/out/target/product/evk_8mm/obj/kernel_obj'
    Makefile:185:目标'_sub-make'的配方失败
    make[1]:离开目录'/home/divyesh/Kimball-code/vendor/nxp-opensource/kernel_imx
    /home/divyesh/Kimball-code/device/nxp/common/build/kernel:mk:190:目标'/home/divyesh/Kimball-code/out/target/product/evk_8x/obj/kernel_obj/arch/arm64/boot/Image'的配方失败
    构建 POST 过程

    请在此处提供一些输入吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们中国的司机团队因中国新年而本周休息、只有下周他们才能对此做出回应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、pdj、

    您能告诉我一下耳机检测机制吗?

    意味着要将哪些寄存器设置为什么值?

    我正在使用 EVM、也请指导我如何设置 EVM 板的跳线。  

    此编解码器的制造方式是否使输出能够同时从所有输出音频端口驱动?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以在本文档中阅读检测机制。

    https://www.ti.com/lit/an/slaa454/slaa454.pdf?ts=1643992373526&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTLV320AIC3104

    有关寄存器、请参阅数据表的第10.3.11节(第42页)。

    https://www.ti.com/lit/ds/symlink/tlv320aic3104.pdf?ts=1644002403527&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTLV320AIC3104

    在 EVM 上、如果要从插孔 J8连接输入、则移除 JMP3和 JMP4。

    输出的可配置性取决于您要驱动/启用的内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果您在之前的注释中检查 i2cdump,则表示耳机检测寄存器13 14 96 97显示00值。

    提供任何示例、以启动3104的耳机检测参考、从而获得硬件/软件视点

    为什么 i2cdump 和内核/调试/regmap/寄存器值是 diff?

    插孔 J9是否具有麦克风输入以及耳机?

    我不是一个硬件问题。 对于 J9的耳机检测、请指导我进行跳线设置 JMP11、12、13、14、15?

    还请说明软件耳机检测机制? 无法理解比较器图。

    输出的可配置性取决于您要驱动/启用的内容。>>进行初始更改后、将同时从 L/R OUT、HP、耳机插孔获取输出、并从所有输出获取1.4V 输出。

    如果可能,请提供3104的 TI 软件专家电子邮件 ID。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这些寄存器供用户根据其应用程序进行配置、默认情况下、这些寄存器被禁用、这就是为什么它们是00。

    要在 EVM 上启用耳机检测、请执行以下操作:

    • 将 JMP10设置为引脚2和3、移除 JMP3和 JMP4
    • 使用0x80数据在寄存器13 (0x0D)中启用耳机检测
    • 将寄存器25 (0x19)中的 MICBIAS 电平设置为2V (含0x40数据)
    • 将 音频插头插入 J8而不是 J9
    • 读取中断标志寄存器97 (0x61)位 D2

    i2cdump 是您在寄存器中设置的任何内容、因此请确保在设置寄存器后运行这些内容。   

    没有、J8或 J9 EVM 音频插孔只是立体声插孔(TRS)、但您仍可以按照上述步骤检查耳机检测功能。

    JMP11至 JMP15不用于耳机检测、而是用于音频输出。

    所有输出寄存器都是可配置的、因此它们是开启的、因为您启用了它们。

    如果它与我们的驱动程序相关、那么在这个线程中、Raphael 将是响应者。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    您可以使用 i2cset 命令来配置寄存器以启用/禁用输出路径。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    i2cset 只是用于设置寄存器值的临时实用程序? 设备重新引导后,reg 值将再次变为默认值。

    是否可以共享驱动程序文件更改以启用耳机检测位(reg 13)?

    耳机检测是否适用于 J9? 还是仅适用于 J8?

    所有输出寄存器都是可配置的、因此它们是开启的、因为您启用了它们。 >>>只有插入耳机后,才能从耳机获取音频输出,应采取哪些措施。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果要永久存储寄存器设置、则需要在系统中具有非易失性存储器(ROM)、否则、在为编解码器或任何 IC 循环通电时、这些设置将被备份为默认值、与 EVM 相同。

    如 Raphael 所述、您使用 i2cset 通过 i2c 总线配置设备寄存器、包括上述耳机检测。

    耳机检测仅适用于输入、因此仅适用于 J8、因此当您从 J8插入或拔下插头时、寄存器97中将生成中断。 此测试不必来自 HP 输出。 请参阅耳机检测文档。

    有关如何启用/禁用输出模块、请参阅数据表及其寄存器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    驱动程序是通用代码。

    请使用 i2cset 命令设置寄存器值并尝试启用/禁用输出模块。修复寄存器值后、您可以在驱动程序中添加代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、pdjaundi 和 Paphael、

    感谢您的回复。

    启用寄存器13时、耳机检测就会开启。

    我可以看到、通过观察寄存器13 14 96和97检测到耳机。

    I2Cset 正在工作。

    让我们来谈谈驱动程序代码的变化:

    我已在编解码器文件的初始化函数中添加了更改:

    +    snd_soc_component_write (component、AIC3X_header_detect_CTRL_a、0x8b);

    +    snd_soc_component_write (component、AIC3X_header_detect_CTRL_B、0x80);

    I2CMDump 中的值不会改变、但我可以在 regmap 中看到变化。

    因此、即使在编解码器文件中设置寄存器后、i2cdump 也不会改变。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这听起来与您的 Linux 设置类似、但我将让 Raphael 对此进行评论。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的...

    更多问题:

    1.是否可以控制编解码器板的温度和热量? 如果是? 如何实现?

    2.是否可以控制编解码器的功率? 如果是? 如何实现? 我必须根据输入电压控制电源? 如何改变编解码器的功率?

    3.如何控制编解码器增益?

    谢谢。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peter:

    我们是否需要设置 寄存器 AIC3X_Headset_Detect CTRL_A 和 AIC3X_Headset_Detect CTRL_B?如果不满足要求、寄存器值会恢复为默认值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    I2CMDump 中的值不会改变、但我可以在 regmap 中看到变化

    您能否建议您使用什么命令来查看 regmap?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、AIC3104还具有2页寄存器、请确保您写入了正确的页面

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. AVDD、DVDD、IOVDD 等编解码器电源是输入、因此您将从系统提供。
    2. 编解码器增益由寄存器控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没有拉斐尔。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    VK_8mm:/sys/kernel/debug/regmap 2-0018 # cat 寄存器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以尝试添加函数: volatile

    示例为:  

    静态 bool TAS2764_volatile (struct device *dev、unsigned int reg)

    返回 true;

    静态常量结构 regmap_config tas2764_i2c_regmap ={
    .REG_BITS = 8、
    val 位= 8、
    .reg_defaults = tas2764_reg_defaults、
    num_reg_defaults = array_size (tas2764_reg_defaults)、
    .cache_type = REGCACHE_RBTREE、
    .ranges = tas2764_regmap_Ranges、
    num_Ranges = array_size (tas2764_regmap_Ranges)、
    .max_register = 1 * 128、
    .volatile_reg = TAS2764_volatile、
    };