我正在尝试为FPGA写一个Verilog代码,它将从嵌入式“线路输出”引脚输出声音。我使用Quartus II和Altera DE1。

我是硬件编程的新手,因此花太多时间来了解基础知识。显然,我需要初始化Wolfson芯片并需要编写一些内容与之通信,如此处所述:
http://www.alteraforum.com/forum/showthread.php?t=6005

它使用Wolfson WM8731编解码器,手册在这里:
http://www.rockbox.org/wiki/pub/Main/DataSheets/WM8731_8731L.pdf

我发现但无法弄清楚如何使用它的一个示例在这里:
https://code.google.com/p/vector06cc/wiki/SoundCodec

我已经找到了许多有关如何使用GPIO引脚生成声音的示例,但几乎没有关于WM8731用法的任何信息。非常感谢您分享的任何指导或经验。

最佳答案

假设您使用的是Nios II和SOPC Builder或Qsys,Altera大学计划提供了一个IP内核来控制DE系列板上的音频编解码器。

如果还没有它,可以在这里下载(在页面底部,列为University Program Installer):https://www.altera.com/support/training/university/materials-ip-cores.html

安装后,请检查<altera-directory>/University_Program\NiosII_Computer_Systems\DE1\DE1_Media_Computer目录。 app_softwareapp_software_HAL都提供了示例方法(使用在Nios II上运行的C代码)写入音频输出,并且verilogvhdl文件夹显示了使用首选HDL将内核连接到NIOS II的示例系统。

核心本身可以在<altera-directory>\ip\University_Program\Audio_Video中找到。另请参阅ftp://ftp.altera.com/up/pub/Altera_Material/14.1/University_Program_IP_Cores/Audio_Video/Audio.pdf,以获取一些(可能)有用的阅读/引用。

附录:
所有的FPGA输入和输出都使用WM8731芯片的“数字音频接口(interface)”。 FPGA上可用的引脚如下:

  • PIN_A6:AUD_ADCLRCK
  • PIN_B6:AUD_ADCDAT
  • PIN_A5:AUD_DACLRCK
  • PIN_B5:AUD_DACDAT
  • PIN_A4:AUD_BCLK
  • PIN_B4:AUD_XCK(WM8731上的MCLK)

  • 输出被发送到AUD_DACDAT引脚上的CODEC。
    使用I2C地址0x34上的I2C_SDATI2C_SCLK引脚对芯片进行配置,以进行读取,并通过0x35进行写入。
    FPGA没有其他可用的引脚-某些引脚用于外部连接(如麦克风或线路输入),或者根本不连接。
    有关DE1引脚分配的完整列表(可以直接导入Quartus),请参见:ftp://ftp.altera.com/up/pub/Altera_Material/12.1/Boards/DE1/DE1.qsf

    10-07 14:18