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.

[参考译文] CC3200音频助推器组:寄存器配置问题(使用I2C总线)

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/566334/cc3200-audio-booster-pack-register-configuration-problem-using-i2c-bus

部件号:TLV320AIC3254
主题中讨论的其他部件: CC3200

大家好,

我正在使用CC3200 Audio Booster pack和CC3200 launchpad。 我正在尝试将 TLV320AIC3254配置为44.1kHz。 以下是我尝试进行的时钟和PLL配置。  

AudioCodecPageSelect (TI3254_PAGE_0);

AudioCodecRegWrite (TI3254_CLK_MUX_REG,0x03); //PLL时钟是CODEC _CLKIN
AudioCodecRegWrite (TI3254_CLK_PLL_P_R_REG,0x91);//PLL已通电,P=1,R=1
AudioCodecRegWrite (TI3254_CLK_PLL_J_REG,0x38); //J=56
AudioCodecRegWrite (TI3254_CLK_PLL_D_MSB_REG,0x00);//D = 0x0000 = 0
AudioCodecRegWrite (TI3254_CLK_PLL_D_LSB_REG,0x00);//D = 0x0000 = 0

这里的问题是,当我回读时,这些值实际上并没有反映在中。 以下是写入后立即读回的值:  

TI3254_CLK_MUX_REG = 0x01

TI3254_CLK_PLL_P_R_REG = 0x01

TI3254_CLK_PLL_J_REG = 0x00

我使用示波器检查了I2C上的读写操作没有问题,这是正常的。

我还检查 了TLV320AIC3254的应用说明,并遵循了该顺序(首先进行软件重置,然后执行其它操作)。 我还检查了CC3200 TRM的I2C部分,I2C正在配置和使用,没有任何问题。  

我已经在SimpleLink论坛上发布了该问题(尽管最初我认为这是一个不同的问题)。 链接: https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/56.416万/2072550#2072550</s>207.255万 207.255万

还有其他人遇到同样的问题,他们在SimpleLink论坛上发布了文章,但没有任何答复或解决方案。

链接:

 https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/t/51.0809万

 https://e2e.ti.com/support/data_converters/audio_converters/f/64/t/51.3986万

如有任何帮助,我们将不胜感激。  

谢谢,

Hardik M

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

    我会推荐几件事来确保I2C线路正常工作。

    -确保所有电源针脚均已启用且稳定。 电源针脚必须符合数据表中推荐的工作条件。
    -确保SPI_SELECT引脚配置为使用I2C线路(SPI =1;I2C =0)。
    -确保I2C线路已上拉。

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

    您好,Luis,

    我检查了针脚,一切看起来都很稳定。

    IOVdd = 3.3V稳定

    IOVss =接地

    AVSS =接地

    AVDD = 1.65v稳定

    LDOIN = 3.3V稳定

    LDO_SELECT = 1.65 稳定

    n复位= 3.3V稳定

    SPI_SELECT为0。

    SDA -未运行时SCL拉高。 电压电平略低于其它电压电平,更像3.28v。 但它们是稳定的。

    此外,我还找到了增压器组件的示意图。 链接: www.ti.com/.../tidra20.pdf

    在文档中,针图与实际IC反转。 我通过 TLV320AIC3254数据表进行了验证。(http://www.ti.com/lit/ds/slas549d/slas549d.pdf


    您有更多想法吗?

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

    你好,Hardik,

    似乎所有的电源和I2C线路都还可以。 您应该能够通过I2C写入命令。 因此,我建议按照3.1 重置 一节中的说明正确应用重置事件。 然后,确保在拉高重置信号后等待1毫秒(这将确保寄存器准备就绪,可以写入)。 最后,编解码器正与内部LDO一起使用。 因此,AVDD LDO应在第1页/寄存器2 / D0 ='1'时激活。

    此致,
    Luis Fernando Rodríguez ñ o S.

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

    您好,Luis,

    对延迟响应深表歉意。 我陷入了另一种困境。

    我已经浏览了数据表并遵循了重置模式。 寄存器配置仍然不起作用。

    然后,我注意到音频增强器包有两个重置接头。 主重置和编解码器重置。 我将连接到编解码器重置的GPIO配置为CC3200一侧的输出,连接了R46 0欧姆电阻器,该电阻器到达时实际上未连接到BoosterPack上。 添加此电阻器可将编解码器重置接头连接到TLV320AIC3254上的重置针脚。 我能够成功地看到我在GPIO中所做的更改反映在TLV320AIC3254 IC上的复位引脚上。

    我对代码进行了以下更改。

    	GPIO _IF_SET (6,GPIOA0_BASE,0x40,0);
    	MAP_UtilsDelay (270); // 80微秒
    
    	gPIO_IF_SET (6,GPIOA0_BASE,0x40,1);
    	MAP_UtilsDelay (2.7万);
    	MAP_UtilsDelay(2.7万);// 4毫秒总
    
    	音频解码器重置(AUDIO_CODE_TI_3254,空);
    	AudioCodecConfig(AUDIO_CODE_TI_3254,AUDIO_CODE_16_bit,4.41万,
    AUDIO_CODEC立体声,AUDIO_CODEC SPEAKER_ALL,
    AUDIO_CODEC _MIC_ALL);
    

    因此,我在写入音频编解码器寄存器之前添加了硬件重置。 我尝试了上述代码的多种变体,如增加延迟,删除软件重置等。 但配置仍然不起作用。 我要再删除和安装整个TI-SDK一次,只是为了它。 如果成功,将尝试开机自检。

    但如果这不起作用,我真的需要尽快解决这个问题。 我们非常感谢您的任何帮助。

    谢谢,
    Hardik M

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

    我再次尝试安装CC3200-SDK,创建了一个新的工作空间和新项目。 寄存器配置仍然不起作用。

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

    您是否有方法读取音频编解码器的整个寄存器配置? 这将有助于了解此问题。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Luis,

    我已成功使用SPI协议配置寄存器(在Audio Booster pack中进行一些必要的更改后)。

    但为了调试目的,我将在下周某个时候把I2C协议读取的所有寄存器值放起来。

    谢谢,
    Hardik M