工具与软件:
您好、先生、
实际上、我正在尝试作为其中的一部分验证我的 I2S、我正在尝试将我的 CPU 连接到音频编解码器、并尝试播放正弦波、并使用 I2C 在录制模式下配置编解码器、以便编解码器接收音频样本、在我启用 I2S 后、我可以从编解码器在 I2S 侧接收样本、但我没有获取任何样本。 我遵循了编解码器文件夹中的 AIC3110_init 配置来在记录模式下进行配置。 那么、您能帮助我建议录制模式下的工作配置、以及我如何继续这样做吗
谢谢。此致、
Geetha。
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.
工具与软件:
您好、先生、
实际上、我正在尝试作为其中的一部分验证我的 I2S、我正在尝试将我的 CPU 连接到音频编解码器、并尝试播放正弦波、并使用 I2C 在录制模式下配置编解码器、以便编解码器接收音频样本、在我启用 I2S 后、我可以从编解码器在 I2S 侧接收样本、但我没有获取任何样本。 我遵循了编解码器文件夹中的 AIC3110_init 配置来在记录模式下进行配置。 那么、您能帮助我建议录制模式下的工作配置、以及我如何继续这样做吗
谢谢。此致、
Geetha。
您好、先生、
实际上、我并不是要将 GUI 连接到电路板、而是使用 ACI3110 init 和 Record init 脚本。 我在编解码器中使用了该脚本。 在录制模式下、我已将 CPU 连接到 FPGA 板上的音频编解码器并播放正弦波。 但我在 I2S 上没有获得任何正弦波样本。我已经将 I2S 配置为接收模式并验证了 I2S 侧的路径、从编解码器侧、我没有获得正确的样本。 那么、我可以使用什么脚本以及可以在脚本中进行哪些更改。
谢谢。此致、
Geetha
您好、先生、
您可以在下面附上了我们正在使用的方框图、
为了将音频数据发送到编解码器、我要将 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。
在未运行 elf 的情况下、在 dout 引脚上收集了一些垃圾样本。
这看起来像是一个拼写错误。 您能解释一下吗?
您还提到了基于示例初始化代码构建的脚本。 您的 I2S 时钟是否与示例中给出的频率匹配?
谢谢!
Jeff McPherson