2-DE10-Nano的HDMI音频传输案例——基于FPGA的I2S控制模块设计

I2S控制模块AUDIO_IF.v实现的功能是用离散的正弦波数据创建的查找表来合成声音(生成I2S格式的音频数据流)。如下是该模块的RTL视图:

该模块采用的是I2S 标准音频时序,每通道16位,LRCLK为低电平时传输左通道,为高电平时传输右声道,数据由高位(MSB)到低位(LSB)依次进行传输:

所以该模块里面设置了左右声道数据位宽16-bit。 另外离散的正弦波数据是48个。

该模块系统时钟是1.536MHz,位时钟sclk也是1.536MHz。因寄存器设置0x15[7:4]=0010,ADV7513采样率为48KHz,所以lrclk经过sclk分频后也是48KHz。

这里设置sclk下降沿时数据改变,符合寄存器x0B[6]的设置(其默认设置是0,代表在下降沿时I2S数据发生变化,上升沿时数据保持不变锁存数据)。另外,这里Data_Count取反让数据由高位(MSB)到低位(LSB)依次进行传输:

该模块在lrclk下降沿的时候给出Data_Bit,在lrclk上升沿的时候数据保持没变,所以左右声道传输的是相同的数据:

关于正弦波离散数据的获取,用户可以通过python 或者matlab生成。本文不再赘述。

整个I2S控制模块AUDIO_IF.v的时序图如下:

往期阅读

1-DE10-Nano的HDMI方块移动案例------显示器时序(DMT)标准介绍

2-DE10-Nano的HDMI方块移动案例------HDMI接口介绍(含TMDS)

3-DE10-Nano的HDMI方块移动案例------ADV7513芯片解读

4-DE10-Nano的HDMI方块移动案例------I2C通信协议

5-DE10-Nano的HDMI方块移动案例------基于FPGA的I2C控制模块设计

6-DE10-Nano的HDMI方块移动案例------使用Modelsim仿真I2C控制器

7-DE10-Nano的HDMI方块移动案例的整体实现(含Quartus完整工程免费下载)

1- DE10-Nano的HDMI彩条显示案例(分辨率可切换)(含Quartus完整工程免费下载)

2-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ VGA显示控制器模块设计

3-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------学会用Signal Tap逻辑分析仪查看信号波形

4-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ ALTPLL IP与ALTPLL RECONFIG IP介绍

5-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ PLL控制器和分辨率模式切换

1-DE10-Nano的HDMI音频传输案例------I2S通信协议

相关推荐
ZPC82103 小时前
x86 + FPGA 网卡通信实时性能优化清单
fpga开发·性能优化
irpywp3 小时前
SentrySearch:一款支持用自然语言检索原生 MP4 视频的 Python 命令行工具
python·音视频·概率论
学习永无止境@4 小时前
DMA/Bridge Subsystem for PCI Express V4.2
fpga开发·xdma
ZPC82104 小时前
x86 与 FPGA 网卡通信实时性
arm开发·fpga开发
XMAIPC_Robot4 小时前
基于ARM+FPGA的电火花数控硬件平台总体设计(一)
运维·服务器·人工智能·fpga开发·边缘计算
慕云山里被狗追4 小时前
rv1126bp lvds调试
fpga开发
2301_764441334 小时前
Helios:14B实时长视频生成模型
人工智能·音视频
0xDevNull4 小时前
Java 视频在线播放功能案例
java·开发语言·音视频
EasyGBS4 小时前
国密GB35114协议+国标GB28181平台EasyGBS双重保障筑牢安防视频安全防线
安全·https·音视频