AD9238双通道波形显示实验#

实验Vivado工程为“ad9238_hdmi_test”。

硬件介绍#

模块功能说明#

AN9238模块的原理设计框图如下:

../_images/image238.png

关于AD9238的电路具体参考设计请参考AD9238的芯片手册。

  1. 单端输入及运放电路

单端输入AD1和AD2通过J5或者J6两个SMA头输入,单端输入的电压为-5V~+5V。

板上通过运放AD8065芯片和分压电阻把-5V~+5V输入的电压缩小成-1V~+1V。如果用户想输入更宽范围的电压输入只要修改前端的分压电阻的阻值。

../_images/image334.png

下表为模拟输入信号和AD8065运放输出后的电压对照表:

AD模拟输入值

AD8065运放输出

-5V

-1V

0V

0V

+5V

+1V

  1. 单端转差分及AD转换

-1V~+1V的输入电压通过AD8138芯片转换成差分信号(VIN+ − VIN−),差分信号的共模电平由AD的CML管脚决定。

../_images/image434.png

下表为模拟输入信号到AD8138差分输出后的电压对照表:

AD 模拟输入值

AD8065运放输出

AD813 8差分输出(VIN+−VIN−)

-5V

-1V

-1V

0V

0V

0V

+5V

+1V

+1V

  1. AD9238转换

默认AD是配置成offset binary的,AD转换的值如下图所示:

../_images/image529.png

在模块电路设计中,AD9238的VREF的值为1V,这样最终的模拟信号输入和AD转换的数据如下:

AD模 拟输入值

AD8055运放

输出

AD8138差分输出

(VIN+−VIN−)

AD9 238数字输出

-5V

-1V

-1V

000000000000

0V

0V

0V

100000000000

+5V

+1V

+1V

11111111111

从表中我们可以看出,-5V输入的时候,AD9238转换的数字值最小,+5V输入的时候,AD9238转换的数字值最大。

  1. AD9238数字输出时序

AD9238双通道AD的数字输出为+3.3V的CMOS输出模式,2路通道(A和B)独立的数据和时钟。AD数据在时钟的上降沿转换数据,FPGA端可用AD时钟的采样AD数据。

../_images/image626.png

程序设计#

本实验显示部分是基于前面的HDMI显示彩条的实验,在彩条上叠加网格线和波形, 整个项目的框图如下图所示:

../_images/image725.png

ad9238_sample模块主要完成AN9238的单路数据转换。最后的数据只取高8位的数据,数据宽度转换到8bit(为了跟其它8位的AD模块程序兼容)。另外每次采集1280个数据,然后等待一段时间再继续采集下面的1280个数据。

信号名称

方向

宽度 (bit)

说明

adc_clk

in

1

adc系统时钟

rst

in

1

异步复位,高复位

adc_data

in

12

ADC数据输入

adc_buf_wr

out

1

ADC数据写使能

adc_buf_addr

out

12

ADC数据写地址

adc_buf_data

out

8

无符号8位ADC数据

ad7606_sample模块端口

grid_display模块主要完成视频图像的网格线叠加,本实验将彩条视频输入,然后叠加一个网格后输出, 这一块网格区域提供给后面的波形显示模块使用,这个网格区域是位于显示器水平方向(从左到右)从9到1018,垂直方向(从上到下)从9到308的视频显示位置。

../_images/image820.png

信号名称

方向

宽度 (bit)

说明

pclk

in

1

像素时钟

rst_n

in

1

异步复位,低电平复位

i_hs

in

1

视频行同步输入

i_vs

in

1

视频场同步输入

i_de

in

1

视频数据有效输入

i_data

in

24

视频数据输入

o_hs

out

1

带网格视频行同步输出

o_vs

out

1

带网格视频场同步输出

o_de

out

1

带网格视频数据有效输出

o_data

out

24

带网格视频数据输出

grid_display模块端口

wav_display显示模块主要是完成波形数据的叠加显示,模块内含有一个双口ram,写端口是由ADC采集模块写入,读端口是显示模块。在网格显示区域有效的时候,每行显示都会读取RAM中存储的AD数据值,跟Y坐标比较来判断显示波形或者不显示。

../_images/image916.png

信号名称

方向

宽度 (bit)

说明

pclk

in

1

像素时钟

rst_n

in

1

异步复位,低电平复位

wave_color

in

24

波形颜色,rgb

adc_clk

in

1

adc模块时钟

adc_buf_wr

in

1

adc数据写使能

adc_buf_addr

in

12

adc数据写地址

adc_buf_data

in

8

adc数据,无符号数

i_hs

in

1

视频行同步输入

i_vs

in

1

视频场同步输入

i_de

in

1

视频数据有效输入

i_data

in

24

视频数据输入

o_hs

out

1

带网格视频行同步输出

o_vs

out

1

带网格视频场同步输出

o_de

out

1

带网格视频数据有效输出

o_data

out

24

带网格视频数据输出

wav_display模块端口

RAM的配置如下:

../_images/image1015.png ../_images/image1119.png ../_images/image1217.png

timing_gen_xy模块为其它模块的子模块,完成视频图像的坐标生成,x坐标,从左到右增大,y坐标从上到下增大。

信号名称

方向

宽度 (bit)

说明

clk

in

1

系统时钟

rst_n

in

1

异步复位,低电平复位

i_hs

in

1

视频行同步输入

i_vs

in

1

视频场同步输入

i_de

in

1

视频数据有效输入

i_data

in

24

视频数据输入

o_hs

out

1

视频行同步输出

o_vs

out

1

视频场同步输出

o_de

out

1

视频数据有效输出

o_data

out

24

视频数据输出

x

out

12

坐标x输出

y

out

12

坐标y输出

timing_gen_xy模块端口

实验现象#

连接电路如下,调节信号发生器的频率和幅度,AN9238输入范围-5V-5V,为了便于观察波形数据,建议信号输入频率 200Khz 到 1Mhz。观察显示器输出,红色波形为 CH1 输入、蓝色为 CH2 输入、黄色网格最上面横线代表 5V,最下面横线代表-5V,中间横线代表 0V,每个竖线间隔是 10 个采样点。

../_images/image1316.png

AX7020/AX7010硬件连接图(J11扩展口)

../_images/image1411.png