gpt4 book ai didi

audio - 如何通过 Altera DE2-115 教育 FPGA 板上的 Wolfson WM8731 CODEC 获取音频输出?

转载 作者:行者123 更新时间:2023-12-02 22:27:15 25 4
gpt4 key购买 nike

我和我的小组正在尝试用 DE2-115 板为我们的本科顶点项目创建一个合成器。

我们唯一想不通的是如何将频率映射到通过板上音频端口正确输出的“键”。我们搜索了网络,所有提供的文档都包含编解码器的数据表,但我们无法弄清楚如何让它在 VHDL 中正常工作。

有没有人曾经通过 WM8731 输出音频,如果有,他们愿意帮助我们吗?

最佳答案

我几年前做过,不是太难,但我使用了带有 SOPC builder 的 NIOS 处理器。

我使用了 Altera 大学计划 IP 内核 available here .

这些核心提供了与 DE2 和可能的其他 altera 赞助板相关的不同功能。

根据我的日志,我使用了其中的 3 个核心来制作音频。

altera_up_avalon_audio_and_video_config,用于初始化配置音频CODEC芯片。

第二个IP提供与音频芯片的数据输入/输出接口(interface):altera_up_avalon_audio

最后一个是altera_up_avalon_clocks。我不记得它到底做了什么,但顾名思义,它对音频芯片的时钟是必要的。我认为它需要一个输入时钟并生成一个 PLL 来为 CODEC 提供正确的时钟。

正如我所说,我使用的是NIOS处理器,仍然根据我的日志,我使用的C代码是:

void audio_isr(void* context, alt_u32 id)
{
const int len = 2682358;
static signed char *ptr = test_snd;
unsigned int x[128];

alt_up_audio_dev *audio_dev = (alt_up_audio_dev *)context;

unsigned int n = alt_up_audio_write_fifo_space(audio_dev, ALT_UP_AUDIO_RIGHT);

for(unsigned int i = 0; i < n; i++) {
x[i] = 0x800000 + ((int)*ptr++) << 9;

if (ptr > test_snd+len) {
ptr = test_snd;
printf("Done\n");
}
}

alt_up_audio_write_fifo(audio_dev, x, n, ALT_UP_AUDIO_RIGHT);
alt_up_audio_write_fifo(audio_dev, x, n, ALT_UP_AUDIO_LEFT);
}

static void audio_init(void)
{
alt_up_audio_dev *audio_dev = alt_up_audio_open_dev (AUDIO_0_NAME);
if ( audio_dev == NULL)
printf ("Error: could not open audio device \n");
else
printf ("Opened audio device \n");
alt_up_audio_reset_audio_core(audio_dev);
alt_up_audio_disable_write_interrupt(audio_dev);
alt_up_audio_disable_read_interrupt(audio_dev);

alt_irq_register(AUDIO_0_IRQ, (void *)audio_dev, audio_isr);
alt_up_audio_enable_write_interrupt(audio_dev);
}

我不记得效果如何。足够好,值得提交,但它仍然是一个测试,所以不要太重视它。我的最终代码太复杂了,无法在此处展示。

希望这足以让您走上正确的道路,即使用 Altera 的 IP。这些 IP 是纯源 AFAIR,因此如果您不想要 NIOS,从它们的源开始应该比从头开始更简单。

关于audio - 如何通过 Altera DE2-115 教育 FPGA 板上的 Wolfson WM8731 CODEC 获取音频输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29930487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com