我正在尝试为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_software
和app_software_HAL
都提供了示例方法(使用在Nios II上运行的C代码)写入音频输出,并且verilog
或vhdl
文件夹显示了使用首选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上可用的引脚如下:
输出被发送到
AUD_DACDAT
引脚上的CODEC。使用I2C地址0x34上的
I2C_SDAT
和I2C_SCLK
引脚对芯片进行配置,以进行读取,并通过0x35进行写入。FPGA没有其他可用的引脚-某些引脚用于外部连接(如麦克风或线路输入),或者根本不连接。
有关DE1引脚分配的完整列表(可以直接导入Quartus),请参见:ftp://ftp.altera.com/up/pub/Altera_Material/12.1/Boards/DE1/DE1.qsf