1 ADV7513的基本参数
ADV7513 是 Analog Devices推出的165 MHz 高清多媒体接口(HDMI)发射器芯片,它接收数字视频数据,将其转换成符合 HDMI 标准的信号进行输出。其基本参数如下:
|
参数类别 |
详细说明 |
|
视频输入 |
像素时钟:最高达 165 MHz |
|
HDMI输出 |
符合标准:HDMI 1.4, HDCP 1.4 |
|
音频输入 |
接口:I2S(4条数据线,每条传输2个声道,从而实现8声道,I2S格式支持左对齐、右对齐、标准I2S模式、以及AES3 stream模式), S/PDIF,HBR |
|
控制接口 |
配置接口:I2C从接口 热插拔检测:专用HPD引脚 |
|
其他参数 |
典型工作电压:核心1.8V, I/O 3.3V |
ADV7513支持视频数据、音频数据输入。与所有HDMI发射器一样,ADV7513有4个TMDS通道,其中有3个数据通道(TMDS Data0, Data1, Data2,用于传输视频、音频和辅助数据)和1个时钟通道(TMDS Clock,用于传输像素时钟,为数据接收端提供同步基准,确保数据能被正确采样)。ADV7513功能框图如下:
.

下面将其常用到的接口描述如下:
|
信号 |
方向 |
描述 |
|
SCLK |
Input |
I2S音频时钟输入 |
|
MCLK |
Input |
音频参考时钟输入 |
|
LRCLK |
Input |
左右声道信号输入 |
|
I2S[3:0] |
Input |
I2S通道0、1、2、3 音频数据输入 |
|
CLK |
Input |
视频输入时钟 |
|
D[23:0] |
Input |
视频数据输入 |
|
HSYNC |
Input |
水平同步信号输入 |
|
VSYNC |
Input |
垂直同步信号输入 |
|
DE |
Input |
数字视频数据使能信号 |
|
HPD |
Input |
热插拔检测信号输入 |
|
TXC−, TXC+ |
Output |
差分TMDS时钟输出 |
|
TX0−, TX0+ |
Output |
差分TMDS数据通道0输出 |
|
TX1−, TX1+ |
Output |
差分TMDS数据通道1输出 |
|
TX2−, TX2+ |
Output |
差分TMDS数据通道2输出 |
|
SCL |
Input |
I2C端口数据时钟输入 |
|
SDA |
Input/output |
I2C端口数据输入/输出 |
|
DDCSCL |
Input |
Display Data Channel I2C端口数据时钟输入 |
|
DDCSDA |
Input/output |
Display Data Channel I2C端口数据输入/输出 |
|
CEC |
Input/output |
CEC数据信号 |
|
CEC_CLK |
Input |
CEC 时钟 |
|
INT |
Output |
中断信号输出 |
2 ADV7513寄存器配置
ADV7513的寄存器通过一个I2C(SDA和SCL)从接口来配置。配置ADV7513寄存器需要参考官方手册“ADV7513_Programming_Guide_R0”。
如果用户不知道从哪开始,可以先看手册中“SECTION3 – QUICK START GUIDE”,该章节强调了在初次启动HDMI发送器时必要配置的一些寄存器。

在本案例中主要设置了如下这些寄存器:
|
寄存器地址 |
寄存器 默认值 |
Quartus工程中寄存器值设定 |
重点关注 |
|
0x01 |
****0000 |
0x00 |
设置N的值为6144(详见本文档4.4 ADV7513音频时钟再生章节) |
|
0x02 |
00000000 |
0x18 |
|
|
0x03 |
00000000 |
0x00 |
|
|
0x15 |
00000000 |
0x20 |
设置0x15[3:0]=4'b0000输入视频格式为24 bit RGB 4:4:4 或者YCbCr 4:4:4 (separate syncs) 设置0x15[7:4]=4'b0010,I2S音频的采样频率为48KHz |
|
0x16 |
00000000 |
0x30 |
设置0x16[7]=1'b0输出视频格式为24 bit RGB 4:4:4 设置0x16[5:4]=2'b11 输入视频数据的颜色深度为8bit |
|
0x18 |
01000110 |
0x46 |
设置0x18[7]=1'b0禁止CSC |
|
0x41 |
*1010000 |
0x10 |
设置0x41[6]=1'b0设置所有电路上电 |
|
0x98 |
00001011 |
0x03 |
必须设置为0x03才能正常操作 |
|
0x9A |
0000000* |
0xe0 |
必须设置为0xe0 |
|
0x9C |
01011010 |
0x30 |
必须设置为0x30才能正常操作 |
|
0x9D |
01101111 |
0x61 |
必须设置0x9D[7:4]=4'b0110才能正常操作 设置0x9D[3:2]=2'b01输入像素时钟除以2 必须设置0x9D[1:0]=4'b01才能正常操作 |
|
0xA2 |
10000000 |
0xA4 |
必须设置为0xA4才能正常操作 |
|
0xA3 |
10000000 |
0xA4 |
必须设置为0xA4才能正常操作 |
|
0xAF |
00010100 |
0x16 |
设置0xAF[1]=1'b1 选择HDMI模式 |
|
0xBA |
0001000* |
0x60 |
No clock delay |
|
0xE0 |
10000000 |
0xD0 |
必须设置为0xD0才能正常操作(实际测试不设置也没有关系) |
|
0xF9 |
01111100 |
0x00 |
必须设置为0x00才能正常操作(实际测试不设置也没有关系) |
如下这些寄存器保持默认设置即可,无需特别设置,但默认值有些需要关注的内容如下:
|
寄存器地址 |
寄存器 默认值 |
重点关注 |
|
0x0A |
00000001 |
设置0x0A[7]=1'b0,设置CTS值为自动计算 设置0x0A[6:4]=3'b000,音频输入选择I2S |
|
0x0B |
0000111* |
设置0x0B[5]=1'b0,MCLK内部生成 |
|
0x0C |
10111100 |
设置0x0C[5:2]=4'b1111,开启4个I2S通道设置0x0C[1:0]=2'b00,I2S数据模式选择Standard I2S mode |
|
0x17 |
00000000 |
设置0x17[1]=1'b0输入视频的宽高比为4:3 |
表格 和表格 的寄存器设置请参考ADV7513_Programming_Guide_R0文档的SECTION 5 - REGISTER MAPS章节。
3 ADV7513的4个I2S通道
ADV7513 的I2S 接口支持多通道音频传输。它实际提供的是8 通道 I2S 接口,并非物理上的 4 个独立通道(I2S [3:0])。它是4 路数据引脚承载 8 路音频流(通过时分复用的方法,每个物理通道传输2路音频流)主要用于传输立体声或7.1 环绕声音频信号。
I2S的时分复用方法举例:在16位音频传输中,一个 LRCLK 周期内,前 16 个 SCLK 周期传输第一个声道(如左声道)的16位数据,后16个 SCLK 周期传输第二个声道(如右声道)的16位数据,实现同一物理通道的双声道复用。具体数据传输时序请参考第五章音频I2S通信协议。
在应用当中,若仅需立体声输出,可仅启用 I2S0 通道(立体声模式下,只传输左声道L和右声道R),其余通道可闲置。若为7.1 声道模式输出,8 个通道全部启用,实现全方位的环绕声效果。8通道的分配遵循 7.1 声道的标准音频布局,具体传输内容参考ADV7513_Programming_Guide_R0.pdf文档的Table 70 或如下表格:
|
端口 |
通道 |
传输内容 |
|
I2S0 |
通道1 |
FL |
|
通道2 |
FR |
|
|
I2S1 |
通道3 |
LFE |
|
通道4 |
FC |
|
|
I2S2 |
通道5 |
RC/RL |
|
通道6 |
RR |
|
|
I2S3 |
通道7 |
RC/RLC/FLC |
|
通道8 |
RRC/FRC |
注:
FL = Front Left
FC = Front Center
FR = Front Right
FLC = Front Left Center
FRC = Front Right Center
RL = Rear Left
RC = Rear Center
RR = Rear Right
RLC = Rear Left Center
RRC = Rear Right Center
LFE = Low Frequency Effect
6.4 ADV7513音频时钟再生
通过HDMI链路传输的音频数据时,仅由TMDS(视频)时钟驱动,不保留(不传输)原始音频采样时钟,然后在接收端通过TMDS时钟重建音频时钟的任务称为音频时钟再生(Audio Clock Regeneration, ACR) 。

上图展示了HDMI用于音频时钟再生的整体系统架构模型。源设备应确定视频时钟与音频参考时钟(128*音频采样率)之间的分数关系,并将该分数的分子和分母通过HDMI链路传递给接收设备。接收设备可以通过使用时钟分频器和时钟倍频器从TMDS时钟重新创建音频时钟。两个时钟之间的确切关系为:

fs:音频采样率 (Audio Sample Rate)。
fTMDS_CLK:TMDS 时钟频率, 即视频时钟,像素时钟。
N值 (N-value):一个固定的常数,代表每 128 个音频样本所对应的 TMDS 时钟周期数的标称值。

f_aud:归一化参考频率,通常取 1 kHz。
CTS:是ADV7513自动计算出的一个值,它代表了在生成128个音频样本的这段时间内,所经过的TMDS像素时钟周期的实际数量。(也可以手动设置CTS值,该场景少见。)
N值需要FPGA通过ADV7513的I2C从接口写入ADV7513的特定寄存器(0x01-0x03),当音频采样率为48KHz时,N值为128*48=6144。

通常设置 ADV7513 为自动计算和发送 CTS 值,设置寄存器0x0A[7]=0,寄存器0x44[6]=1。

用于48KHz音频及其倍频的 N值和预期的CTS值推荐表如下:

ADV7513 会在数据岛期将N值和CTS值打包成一个特殊的音频信息包 (Audio InfoFrame)与音频样本本身一起发送给接收端。用户可以通过 I2C 从接口设置寄存器0x44[3]来启用 Audio InfoFrame 的发送。

浙公网安备 33010602011771号