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.

[参考译文] TLV320AIC3110EVM-U:TLV320AIC3110EVM-U

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1483233/tlv320aic3110evm-u-tlv320aic3110evm-u

器件型号:TLV320AIC3110EVM-U

工具与软件:

您好、先生、

实际上、我正在尝试作为其中的一部分验证我的 I2S、我正在尝试将我的 CPU 连接到音频编解码器、并尝试播放正弦波、并使用 I2C 在录制模式下配置编解码器、以便编解码器接收音频样本、在我启用 I2S 后、我可以从编解码器在 I2S 侧接收样本、但我没有获取任何样本。 我遵循了编解码器文件夹中的 AIC3110_init 配置来在记录模式下进行配置。 那么、您能帮助我建议录制模式下的工作配置、以及我如何继续这样做吗

谢谢。此致、
Geetha。  

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

    尊敬的 Geetha:

    如果希望将 I2S 数据发送至编解码器并返回至主机 PC、请使用 EVM GUI 中的 DIN 转 DOUT 环回。 该选项可在时钟配置中找到。

    此致、
    Jeff McPherson

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

    您好、先生、


    实际上、我并不是要将 GUI 连接到电路板、而是使用 ACI3110 init 和 Record init 脚本。 我在编解码器中使用了该脚本。 在录制模式下、我已将 CPU 连接到 FPGA 板上的音频编解码器并播放正弦波。 但我在 I2S 上没有获得任何正弦波样本。我已经将 I2S 配置为接收模式并验证了 I2S 侧的路径、从编解码器侧、我没有获得正确的样本。 那么、我可以使用什么脚本以及可以在脚本中进行哪些更改。


    谢谢。此致、
    Geetha

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

    尊敬的 Geetha:

    能否分享一下您的设置的方框图? 我不清楚您有哪些路径工作、哪些路径不工作。 您正在将 I2S 样本发送到编解码器、但没有模拟正弦波输出?

    另外、如果您可以加入当前的寄存器配置、这对我也很有帮助。

    谢谢!
    Jeff McPherson

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

    您好、先生、  

    您可以在下面附上了我们正在使用的方框图、


    为了将音频数据发送到编解码器、我要将 JACK 引脚从 CPU 连接到编解码器 MIC_IN 并播放正弦波之类的声音。
    并尝试在 I2S (SDout 引脚)上接收该数据。但在 SDout 上看不到任何数据。


    下面是首先初始化编解码器、然后在记录模式下初始化编解码器的编解码器寄存器配置。

    #include
    #include
    #include
    #include "i2c_driver.h"
    #include "audio_codec.h"
    #define speedmode 0x63
    #define CODEC_ADDRESS 0x18

    void codec_initialize (void)


    uint8_t write_address[]={REG_select_page、REG_software_reset、REG_PLL_CLKin_CODEC_CLKIN、REG_PLL_POWER_UP、REG_PLL_D_HIGH
    uint8_t write_data[]={0x00、0x01、0x07、0x91、0x20、0x00、0x00、0x84、0x84、0x84、0x84、0x00、0x80、0x00、0x00、0x00

    内部 I;
    for (i=0;i<=(sizeof (write_address)/sizeof (write_address[0]));i++)

    I2C_Start (CODEC_ADDRESS);
    slave_ack_i2c_address();
    I2C_Write (write_address+I、sizeof (uint8_t)、write_data+i、sizeof (uint8_t));
    I2C_Stop();
    }
    }


    void codec_record_initialize (void)

    uint8_t WRITE_ADDRESS_RECO记录[]={0x00、0x01、0x04、0x05、0x06、0x07、0x08、0x1b、0x0c、0x12、0x13、0x0d、0x0E、0x00、0x2e、0x30、0x31、0x00、0x51、0x52};
    uint8_t WRITE_DATA_RECOD[]={0x00、0x01、0x03、0x91、0x08、0x00、0x00、0x84、0x84、0x84、0x00、0x80、0x01、0x0b、0x40、0x40、0x00、0x80、0x00};
    uint8_t read_buff[6];
    内部 I;
    for (i=0;i<=(sizeof (write_address_record)/sizeof (write_address_record[0]));i++)

    I2C_Start (CODEC_ADDRESS);
    slave_ack_i2c_address();
    I2C_Write (write_address_record+i、sizeof (uint8_t)、write_data_record+i、sizeof (uint8_t));
    I2C_Stop();
    }

    }


    谢谢。此致、
    Geetha。

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

    尊敬的 Geetha:

    谢谢、我现在更好地理解这个问题。 在我研究代码时、能否告诉我 DOUT 引脚是否显示有任何活动或正在切换数据? 还是全部为低电平?

    谢谢!
    Jeff McPherson

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

    没有 DOUT 引脚为低电平

    有时、在加载位流且运行 elf 的情况下、会在 DOUT 引脚上收集一些垃圾样本。

    谢谢。此致、
    Geetha。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在未运行 elf 的情况下、在 dout 引脚上收集了一些垃圾样本。

    这看起来像是一个拼写错误。 您能解释一下吗?

    您还提到了基于示例初始化代码构建的脚本。 您的 I2S 时钟是否与示例中给出的频率匹配?

    谢谢!
    Jeff McPherson