1 ADV7513的基本参数

ADV7513 是 Analog Devices推出的165 MHz 高清多媒体接口(HDMI)发射器芯片,它接收数字视频数据,将其转换成符合 HDMI 标准的信号进行输出。其基本参数如下: 

 

参数类别

详细说明

视频输入

像素时钟:最高达 165 MHz
数据宽度:最少8bit,最多24 bit
色彩格式:RGB, YCbCr
支持分辨率:480i/p,576i/p,720p,1080i,1080p@60Hz,UXGA@60Hz等

HDMI输出

符合标准:HDMI 1.4, HDCP 1.4
TMDS时钟:最高165MHz

音频输入

接口:I2S(4条数据线,每条传输2个声道,从而实现8声道,I2S格式支持左对齐、右对齐、标准I2S模式、以及AES3 stream模式), S/PDIF,HBR
采样率:32kHz,44.1kHz,48kHz,88.2kHz,96kHz,176.4kHz,192kHz,更高(HBR模式下)
位深:最高24-bit

控制接口

配置接口:I2C从接口
EDID读取:I2C主接口

热插拔检测:专用HPD引脚

其他参数

典型工作电压:核心1.8V, I/O 3.3V
工作温度:-40°C to +100°C

 

 

ADV7513支持视频数据、音频数据输入。与所有HDMI发射器一样,ADV7513有4个TMDS通道,其中有3个数据通道(TMDS Data0, Data1, Data2,用于传输视频、音频和辅助数据)和1个时钟通道(TMDS Clock,用于传输像素时钟,为数据接收端提供同步基准,确保数据能被正确采样)。ADV7513功能框图如下:

.

 

image

 

下面将其常用到的接口描述如下:

 

信号

方向

描述

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发送器时必要配置的一些寄存器。

 

image

 

 

 

 

在本案例中主要设置了如下这些寄存器:

 

寄存器地址

寄存器

默认值

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) 。

 

 

image

 

 

 

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

 

image

 

 

fs:音频采样率 (Audio Sample Rate)。

fTMDS_CLK:TMDS 时钟频率, 即视频时钟,像素时钟。

N值 (N-value):一个固定的常数,代表每 128 个音频样本所对应的 TMDS 时钟周期数的标称值。

 

 

image

 

 

f_aud:归一化参考频率,通常取 1 kHz。

 

CTS:是ADV7513自动计算出的一个值,它代表了在生成128个音频样本的这段时间内,所经过的TMDS像素时钟周期的实际数量。(也可以手动设置CTS值,该场景少见。)

 

N值需要FPGA通过ADV7513的I2C从接口写入ADV7513的特定寄存器(0x01-0x03),当音频采样率为48KHz时,N值为128*48=6144。

 

 

image

 

 

 

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

 

 

image

 

 

 

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

 

image

 

 

 

 

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

 

image