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.

[参考译文] TLV320AIC34:i.MX-6ULZ:无法检测到 i2c 总线上的两个 i2c 地址

Guru**** 2535270 points
Other Parts Discussed in Thread: TLV320AIC34, TLV320AIC3106

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/976341/tlv320aic34-i-mx-6ulz-cannot-detect-the-two-i2c-addresses-on-our-i2c-bus

器件型号:TLV320AIC34
主题中讨论的其他器件: TLV320AIC3106

大家好、

祝你一切顺利。 我们需要您在以下客户咨询方面提供帮助。

有关客户询问的完整详细信息:

我们有一个在 NXP i.MX6ULZ 芯片上运行的定制板、我们正在尝试使用 i2c 来检测和配置 TLV320AIC34芯片。 目前、我们正在从 Linux-IMX 源代码运行 Linux 5.4.24_2.1.0、该源代码具有在 menuconfig 中启用的 tlvaic3x.c 驱动程序。 我们的问题是、我们无法在 i2c 总线上检测到两个 i2c 地址。 我们已经在 NXP 论坛上尝试了由 Threads 推荐的所有内容。

我们还按如下方式切换了 imx6芯片中一些相关寄存器上的位:

-设置 Clk Dir:IOMUXC_GPR.GPR_GPR1.SAI3_MCLK_DIR
-启用 SAI3_CLK_SEL
- CCGR5上的 CG11在时钟门寄存器上启用
0x20C407C=0x33FF00FF

-清除 PLL4_AUDIO 的断电和设置使能位
0x20C9078=0x00001000
0x20C8074=0x00002000


-电压电源稳定且经过验证
-识别复位引脚并将其切换为不成功

我们的理解是、即使没有启用编解码器、芯片也应该显示在 i2c 总线上。 我们无法做到这一点、我们还验证了原理图、以查看 i2c 的上拉电路。 一切看起来都很好、实际上当我们执行 i2cdetect 时、同一总线上的另一个芯片会出现。 MCLK 由 CPU 上的 Saa3接口提供、我们已配置了下面的代码段中所示的 DTS。 如果在获得这方面有任何帮助,将不胜感激。


/***为 B 编解码器定义声卡***/
听起来{
兼容="FSL、IMX-AUDIBLE-tlv320";
型号="IMX-tlv320";
SSI 控制器=<(&S);
CPU-DAI =<(&S);
audio-codec =<&bcodec>;
编解码器主控;
// mux-int-port =<2>;//* 1、2、7 - SSI *
// mux-ext-port =<5>;// 3-6、IOMUX *
音频路由=
"LINE1L"、"麦克风插孔"、
"耳机插孔"、"HPLOUT"、
"耳机插孔"、"HPROUT"、
"线路输出插孔"、"LLOUT"、
"线路输出插孔"、"RLOUT"、
"MIC Jack"、"Mic Bias";
status="oke";
};


{&CLKS}
分配的时钟=<&CLKS IMX6UL_CLK_PLL4_AUDIO_DIV>;
分配的时钟速率=<786432000>;
};

/***I2C2*上的音频编解码器***/
i2c2{(&I)
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c2>;
时钟频率=<100000 >;

/***定义 TLV320AIC34的两个编解码器 A 和 B ***/
acodec:tlv320aic34@1a{
兼容="ti、tlv320aic3106";
reg =<0x1a>;
RESET-GPIO =<&GPIO4 13 GPIO_ACTIVE_LOW>;
时钟=<&CLKS IMX6UL_CLK_SAI3>;
时钟名称="MCLK";
status="oke";
#sound-di-cells =<0>;
};

bcodec:tlv320aic34@19{
兼容="ti、tlv320aic3106";
reg =<0x19>;
RESET-GPIO =<&GPIO4 13 GPIO_ACTIVE_LOW>;
时钟=<&CLKS IMX6UL_CLK_SAI3>;
时钟名称="MCLK";
status="oke";
#sound-di-cells =<0>;
};

};


/***启用音频总线和 CLKS 的第3项*****
Saa3{(&S)
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa3>;
分配的时钟=<&CLKS IMX6UL_CLK_SAI3_SEL>、
<&CLKS IMX6UL_CLK_SAI3>;
分配的时钟父级=<&CLKS IMX6UL_CLK_PLL4_AUDIO_DIV>;
分配的时钟速率=<0>、<12288000>;
FSL、SAI-MCLK 方向输出;
状态="正常";
};


/***在&iomuxc 块内***/
/***音频编解码器芯片信号到 CPU 自定义引脚映射***/
pinctrl_sai3:saE3grp{
FSL、引脚=<
MX6UL_pad_LCD_HSYNC_SAI3_TX_BCLK 0x130B0
MX6UL_PAD_LCD_ENABLE_SAI3_TX_SYNC 0x130B0
MX6UL_PAD_LCD_DATA10__SAI3_RX_SYNC 0x130B0
MX6UL_PAD_LCD_RESET_SAI3_TX_DATA 0x130B0
MX6UL_pad_LCD_VSYNC_SAI3_RX_DATA 0x130B0
MX6UL_PAD_LCD_CLK_SAI3_MCLK 0x130B0
MX6UL_PAD_LCD_DATA11__SAI3_RX_BCLK 0x130B0
>;
};

我们期待您的回应、并期待您一如既往地提供支持。  

此致、

Jonathan

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

    你好 Jonathan、

    遗憾 的是、我不熟悉 NXP i.MX6ULZ、它具有 I2C 检测功能、因此我在这里的知识有限。  

    我知道它没有检测到器件的 I2C 存在、但客户是否可以直接向 AIC34发送 I2C 命令来进行配置?

    此致、

    Aaron