小青菜哥哥前段时间一直忙着开发ADS52J90这款芯片,最近总算是搞定了,在这里必须要做下笔记,涉及的内容太多,免得过段时间就遗忘了。本篇先按照datasheet的内容,突出开发过程中的重点,中文介绍一下这款ADC,开发笔记接下来慢慢更新~
1,芯片特性
- 内置16通道ADC,可以配置成8、16、32通道模拟信号输入
- 每个ADC的分辨率可以配置成10bit、12bit、14bit三种模式
- 每个ADC的模数转换速率为:
- 10bit模式为100MSPS
- 12bit模式为80MSPS
- 14bit模式为65MSPS
- 16个ADC经过配置可以进行的模拟信号输入模式为:
- 8通道输入:每个通道输入的模拟信号采样率为每个ADC模数转换速度的2倍
- 16通道输入:每个通道输入的模拟信号采样率和每个ADC模数转换速度相同
- 32通道输入:每个通道输入的模拟信号采样率是每个ADC模数转换速度的1/2
- 支持10/12/14/16倍串行LVDS源同步输出
-
5Gbps JESD接口:
- 只支持16、32通道模拟输入模式
- 支持JESD204B子类0、1、2
- JESD204B支持2、4、8 lanes
- 可选的数字信号处理功能
- 电源供电1.8V、1.2V
- 2VPP差分模拟信号输入、0.8V共模电压
- 差分或单端时钟输入
- 100MSPS采样率下的功耗为41mW/通道
- 封装:BGA(9mm×15mm)、无铅工艺
2,应用范围
- 超声波成像
- 便携式仪表
- 声纳和雷达
- 高速多通道数据采集
3,芯片简介
ADS52J90是一款低功耗、高性能的16通道模数转换器,每个ADC在10bit模式下的转换速率最高可达100MSPS,且ADC的转换精度越高,最高转换速率越低。
该芯片可配置为8、16、32通道模拟信号输入模式。在16通道模式时,每个ADC对相应的16通道输入信号连续采样,在32通道模式时,每个ADC以该ADC采样率一半的速率交替对两个输入信号采样并转换,在8通道模式时,两个ADC以交错方式对同一输入进行采样并转换,这种情况下每个通道的有效采样率为ADC采样率的两倍。
器件封装信息
器件型号 |
封装 |
尺寸 |
ADS52J90 |
NFBGA |
9mm×15mm |
4,芯片详细描述
4.1综述
图1描述的是该芯片的功能模块,图2描述的是该芯片在LVDS工作模式下的信号处理流程。该芯片包含16个ADC,但可以配置成8/16/32输入通道工作模式。每个ADC的采样时钟由外部差分时钟管脚提供。芯片内部会产生一个参考电压VCM,该电压引出后,用户能够用它来设置差分模拟输入信号的共模电压。16通道的ADC采样数据串行化后通过LVDS接口输出,或者通过JESD204B接口输出。该ADC工作的所有控制过程均可由SPI接口实现。
4.2芯片详细功能框图
图1:芯片功能模块
图2:信号处理流程
4.3芯片特性描述
该芯片有16个同步工作的ADC(ADC1~ADC16),这16个ADC可以被配置为8、16、32通道的差分模拟信号输入模式(AN1~AN32)。转换完成之后的数字信号通过16对LVDS接口输出或者配置压缩输出信号后,可以只通过其中8对LVDS接口输出。系统的工作时钟由芯片差分管脚引入,它的频率表示为fs,推荐的系统输入时钟为LVPECL时钟,但也可以使用LVDS或者LVCOMS时钟。
4.31外部信号输入和芯片内部管脚对应关系
输入信号的有效转换效率是决定于用户配置的信号输入模式。8/16/32通道模式下,外部输入信号AINx和输入管脚INx的对应关系如下表所示:
4.32输入信号选择器和采样器
输入信号选择器决定了输入管脚(IN1~IN32)和ADC(ADC1~ADC16)之间的映射关系。每个ADC都有两套采样电路(奇采样/偶采样),这两套采样电路交替采集输入到该ADC的信号,且均由系统时钟fs驱动。图3、图4、图5分别展示了不同工作模式下的ADC采样时序图:
图3:输入信号的采样和转换时序图(32-input mode)
图4:输入信号的采样和转换时序图(16-input mode)
图5:输入信号的采样和转换时序图(8-input mode)
下表列出了不同模式下的信号采样率(fSAMP)与系统时钟(fS)之间的关系:
在16-input模式下,输入信号的采样率和系统时钟频率相同。在32-input模式,输入信号的采样率是系统时钟频率的一半。在8-input模式,输入信号的采样率和系统时钟频率相同,此时两个ADC以交替方式采样,ADC的采样频率只为系统时钟频率的一半。
4.33模数变换器(ADC)
该芯片有16个同步工作的ADC,对输入信号采样、转换后,输出二进制补码格式的串行数据流。每个ADC的转换速度为fC(conversion clock),ADC转换和图3、4、5的时序对应关系表描述如下:
ADC转换的数据精度和ADC的最大转换速率(fc(MAX))有关,其对于关系如下表所示:
系统时钟频率(fS)、有效采样时钟频率(fSAMP)分别与ADC转换速率(fC)之间的对应关系如下表所示:(注意8通道高速采样模式只支持10bit采样精度)
4.34芯片同步信号TX_TRIG
该芯片内部有许多时钟模块,能够用来产生各种模式工作需要的时钟。TX_TRIG输入信号就是用来同步内部时钟模块,只有时钟模块先同步了,输出的ADC数据才会正确。该信号同样可用于多芯片之间的同步。
芯片上电或者初始化之后,外界必须从TX_TRIG管脚处输入一个脉冲,作为芯片工作的起始信号。如果没有该脉冲,芯片会工作在不可知的状态。
4.35数字处理
如图6所示,16路ADC的输出数据默认都会进入数字处理模块先进行处理,以增强该款芯片的性能,比如信噪比。为了方便数字处理,数字处理后的信号DIGOUT1~ DIGOUT16均为16bit,对于10/12/14不同采样精度的模式,其16bit数据的最后相应几位是0.
由于数字处理模块的使用会造成信号的延迟,因此对于低延迟的应用,数字处理模块是可以通过配置被屏蔽的。
图6:数字处理模块框图
4.351数字偏移模块
数字功能提供了每通道的偏移校正。通过设置相应的寄存器能够使得最终的ADC输出会扣除固定的偏移量。该芯片有两种偏移校正方法,如图7所示:
图7:数字偏移校正模块
4.3511手动偏移校正模块
如果每通道的ADC数据的偏移量是知道的,那么就可以通过在每通道的数据配置寄存器中写入相应的偏移量来扣除,该芯片共有32个手动偏移量控制寄存器,写入的偏移量仍然是二进制补码形式。
4.3512自动偏移校正模块
该模式能够计算出每通道的偏移量,并在ADC输出数据中扣除。实现的原理就是通过数字累加器来估算ADC输出数据中的直流分量,最终将其扣除。在TX_TRIG输入一个高脉冲或者通过设置OFFSET_REMOVAL_START_MANUAL寄存器来确定数字累加器的起点,通过设置AUTO_OFFSET_REMOVAL_ACC_CYCLES寄存器来确定累加器的数据点数,如下表所示:
如果采用TX_TRIG来确定累加器的起点,将会更方便。因为此时可以通过设置OFFSET_CORR_DELAY_FROM_TX_TRIG寄存器来控制TX_TRIG与起点之间的延迟。另外当每个通道的直流偏置被计算完成后,用户通过控制寄存器还可以将其一一读出。
4.3513数字平均模块
来自相邻ADC(ADC1 and ADC2, ADC3 and ADC4,等等)的数据可以通过设置AVG_EN寄存器来实现平均。比如当两个通道的输入数据相同,且进入相邻的两个ADC,则这两个ADC的输出数据通过平均后能够提高信噪比,该功能与输出的映射关系如下表所示:
4.3514数字增益模块
用户通过使能寄存器DIG_GAIN_EN,能够实现以02dB为步数的0dB~6dB(约2倍)增益,从而实现输出信号的放大。
4.3515数字高通滤波器
从来不用,懒得翻译了。。。
4.36数据格式模块
数据格式模块包含两个功能:数据截断和测试模式数据插入。串行化模块紧跟数据格式模块,实现输入数据的并串转换功能,串行因子为可编程的10/12/14/16bit。数据截断模块则根据不同的串行因子来截断DIGOUT的数据,因此DIGRES1~ DIGRES16的有效位数精度由串行因子决定。为了方便FPGA俘获ADC的串行数据,该芯片包含一个测试模块,该模块的数据可以取代正常的ADC采样数据。
4.37串行器和LVDS接口
该芯片默认每个串行器处理一路SERIAL_IN,并且完成并串转换操作,这种模式成为1x数据率模式。在1x模式下,16对LVDS接口对应16个ADC的输出数据。在2x数据率模式下,一个串行器处理两路SERIAL_IN,因此只需要8对LVDS接口就可以传输16个ADC数据的输出。但是2x模式会导致LVDS接口数据率翻倍,相对于1x模式下节省功耗,但时序要求就更为严格了。
LVDS接口采用的是时钟-数据-帧的格式,意味着输出串行数据时会伴随有高速的位时钟和低速的帧时钟。由于串行数据是采样上下沿俘获,因此串行数据率是位时钟频率的2倍。如下表所示为位时钟(fB)与转换时钟(fC)以及系统时钟(fS)的对应关系:
如下表所示为帧时钟(fB)与转换时钟(fC)以及系统时钟(fS)的对应关系:
如图8所示为16通道、1x模式下的LVDS数据输出时序图:
图8:ADC to output mapping in 16-input,1x mode in lvds mode
如图9所示为8通道、1x模式下的LVDS数据输出时序图:
图9:ADC to output mapping in 8-input,1x mode in lvds mode
如图10所示为16通道、2x模式下的LVDS数据输出时序图:
图10:ADC to output mapping in 16-input,2x mode in lvds mode
如图11所示为8通道、2x模式下的LVDS数据输出时序图:
图11:ADC to output mapping in 8-input,2x mode in lvds mode
如图12所示为32通道、1x模式下的LVDS数据输出时序图:
图11:ADC to output mapping in 32-input,1x mode in lvds mode
SERIAL_OUT是SERIAL_IN经过并串转换后的串行数据流,默认是LSB-first。对于16通道、1x模式、串行化因子为12、LSB-first时的输出数据具体时序图如图12所示:
图12: LVDS Output Signals Timing Diagram in 16-Input Mode with
12-Bit Serialization, LSB-First, 1X Data Rate Mode
对于16通道、2x模式、串行化因子为14、MSB-first时的输出数据具体时序图如图13所示:
图13:LVDS Output Signals Timing Diagram in 16-Input Mode with
14-Bit Serialization, MSB-First, 2X Data Rate Mode
LVDS输出接口和1x、2x模式下的串行化数据输出格式对应关系如下表所示:
4.38 LVDS驱动器
LVDS输出模式下,该芯片共有16个LVDS 数据驱动器,1个位时钟驱动器以及一个帧时钟驱动器,如下图14所示:
图14:LVDS输出
每个LVDS驱动器的等效电路如图15所示,其直流电平为1.03V,振幅为±0.4V,使用时需外部跨接100Ω电阻。
图15:LVDS输出等效电路
4.39 JESD204B接口
4.391概述
当该芯片工作在16或者32通道模式(注意没有8通道模式)时,其还支持JESD204B传输协议。该接口的每路支持最大传输速率为5Gbps,实现了ADC和FPGA之间紧凑的PCB布局与设计。该芯片对JESD204B的子类0、1、2均支持。图16为该芯片的JESD部分框图:
图16:JESD Interface Connection to the Digital Processing Output
在测试模块之后,并行数据流SERIAL_IN1~ SERIAL_IN16通过控制寄存器EN_JESD 和DIS_LVDS,既能够进入LVDS接口,也能进入JESD204B接口,也能二者同进。无论是在16或者32通道模式,其内部时钟关系都如下表所示:
JESD204B协议中所有强制性规定,该芯片都支持,包括:
- 将ADC数据分片成字节
- 可选的数据加扰
- 8/10b 编码
- 代码组同步(CGS)
- 初始化链路同步(ILA)
- 帧、多帧边界的字符替换功能
- 确定性延迟
4.392 链路参数配置
JESD204B的链路参数通过寄存器能够配置成不同的工作模式,如下表所示:
JESD204B的整体参数配置总结在下表中:
4.393 JESD版本和子类
该芯片的JESD接口能够被配置成JESD204A或者JESD204B。在JESD204B模式下,子类可以被配置成0、1或2,下表所示为JESD版本和子类控制寄存器:
4.394 传输层
在该芯片的JESD204B传输层,16路ADC采样数据流被映射为多路JESD204B并行数据,并且按照协议规则将F个字节打包成帧(具体描述请参考JESD204B协议的传输层描述)。
4.3941 用户数据格式
该接口能够被配置成2、4、8 lane的模式(L=2,4,8)。根据不同的lane,ADC数据被分配到不同的lane,如下表所示:
该芯片支持多种ADC精度和不同lane的数据组合,且该芯片不支持控制字(CF=0)。在进行ADC数据组合时,该芯片有两种模式:正常组合模式(高效模式)和单转换器字节模式(方便模式),通过寄存器SING_CONV_PER_OCT来选择这两种模式。通过寄存器NUM_ADC_PER_LANE确定L。不同模式下的N’和F值如下表所示:
表:Different JESD204B Interface Modes of Operation
表:Data Packing in Normal Packing Mode for NAL = 8 and NRES = NSER
表:Data Packing in Normal Packing Mode for NAL = 8 and NSER > NRES
表:Data Packing in Normal Packing Mode for NAL = 4 and NSER = NRES
表:Data Packing in Normal Packing Mode for NAL = 4 and NSER > NRES
表:Data Packing in Normal Packing Mode for NAL = 2
表:Data Packing in Single Converter per Octet Packing Mode for NAL = 8 (Independent of NSER )
在该芯片中,tail bit为0。S(number of samples per ADC per frame minus 1) 总是为0,HD模式不支持。
4.3942 传输层测试模式
所有在LVDS测试模式中描述的测试功能都能够用于JESD204B模式,测试数据在传输层替换正常的ADC数据后,进入JESD204B的数据链路层。
4.395 扰码器
扰码器是否使用,在该芯片中是可选的,通过控制寄存器SCR_EN来实现。
4.396 数据链路层
该芯片的数据链路层包括8/10b编码、CGS、ILA、帧字符替换等等,和JESD204B协议规定的一致。
4.3961 代码组同步(CGS)
在代码组同步时,该芯片首先向接收端发送一连串K28.5字符,用于接收端的时钟恢复和数据边界对齐。当芯片接收到一个低电平(active low going)sync~脉冲时,其进入CGS,与JESD204B协议的定义一致。
4.3962 初始化链路对齐(ILA)
默认情况下,ILA状态是紧跟CGS状态的。当sync~拉高后,ILA传输在这之后的LMFC的第一个上升沿发生。但用户也可以通过寄存器RELEASE_ILA来控制在第2、3、或4个LMFC上升沿发生。
4.3963 链路和帧对齐监测
该芯片的链路和帧对齐监测的规则同样来自于JESD204B协议,如下表所示为对齐监测说明:
表:Character Replacement for Lane and Frame Alignment
4.3964 链路层测试模式
没用过~不翻译了
4.397 确定性延迟
在JESD204B的子类1和2中,确定性延迟通过LMFC来实现。在子类1中,LMFC的相位则由SYSREF来确定,在子类2中由sync~确定。一般子类1用的更广泛。
4.3971 sync~与SYSREF同步
为了获得整条链路的确定性延迟,该芯片支持通过sync~和SYSREF这两种方式实现,对应的管脚为下表:
表:Mapping of the JESD204B Signals to Device Pins
JESD的子类1和2利用内部时钟(LMFC)来实现确定性延迟,而LMFC的相位则由sync~(子类2)或SYSREF(子类1)确定。在子类0中不存在LMFC。
SYSREF按照协议描述的,可以是periodic、one-shot或者gapped periodic 的高有效信号。Device clock上升沿采集到有效的SYSREF,从而确定LMFC的相位。
4.3972 延迟
图17~图20描述的是JESD204 接口的延迟相关信息(four ADCs per lane mode, NADC = 12, NSER = 12, and K = 3):
图17:ADC Latency in JESD Mode
图18:Latency from SYNC~ Assertion to Start of CGS Phase
图19:Latency from SYNC~ Deassertion to Start of ILA Phase in Subclass 1
图19:Latency from SYNC~ Deassertion to Start of ILA Phase in Subclass 2
4.3973 多帧的大小
多帧的大小(LMFC 时钟的周期)在协议当中表示为K。K值在该芯片中必须满足如下关系:
Ceil (17 / Number of Octets per Frame) ≤ Multiframe Size (In Terms of Number of Frames)
下表给出了不同模式下的多帧大小:
表:Multiframe Size in Different Modes
4.398 JESD物理层
无多大关系~不解释,主要注意CML连接到FPGA时是交流耦合,且FPGA内部如果有匹配电阻(xilinx的MGT都有)的话,就不用外部阻抗匹配了。
4.310 FPGA和ADC之间的SYNC~与SYSREF接口
由于SYNC(SYNCP 和SYNCM)为LVDS差分信号,它由FPGA产生,且一般来说共模电压为1.2V。而ADC端的SYNC(SYNCP 和SYNCM)共模电压为0.7V,因此SYNC一般不直连FPGA与ADC,需要加一级电平转换电路,如图20所示(必须直流耦合):
图20:Circuit to Level-Shift the Common-Mode Voltage From 1.2 V at Driver Output to 0.7 V at ADC Input
对于SYSREF(SYSREFP 和SYSREFM),由时钟芯片产生,分别输入ADC和FPGA,最方便的接法是采用交流耦合,其电路如图21所示:
图21:AC-Coupling Scheme for SYSREF (do not use for SYNC~)
4.311 系统时钟输入
如图22为差分时钟输入的接法,直接交流耦合即可:
图22:Differential Clock Driving Circuit
4.312 输入信号的接法,一般采用有源差分放大器直流耦合,如图23所示:
图23:DC Coupling
8.4芯片功能模式
8.41输入模式
该芯片支持3种模式:8/16/32输入模式。如下图所示:
表:Modes Supported in 8-, 16-, and 32-Input Modes
8.42 ADC精度模式
ADC精度有三种模式:10/12/14 bit。如下图所示:(8通道模式只支持10bit)
表:Modes Supported in the 10-, 12-, and 14-Bit ADC Resolution Modes
8.43 LVDS和JESD204接口模式
芯片默认LVDS模式,可以配置成JESD模式,但JESD模式只支持16/32通道模式。
8.44 LVDS串行化和输出数据率模式
LVDS串行化因子通过寄存器配置后,有10/12/14/16bit 模式。串行输出输出也有1x/2x传输模式。
8.45供电模式
该芯片可以通过SPI或者管脚控制其工作模式、关闭模式、待机模式。
8.46 LVDS测试模式
ADC的正常采样数据能够通过编程被测试数据替代,下表列出的该芯片所有的测试模式:
表:Description of LVDS Test Patterns
8.5 编程
SPI相关的编程已在前面博客详细介绍了,这里省略~
芯片输入管脚与通道连接图
表:Mapping of Analog Inputs to LVDS Outputs (16-Input Mode, 1X Data Rate)
表:Mapping of Analog Inputs to LVDS Outputs (16-Input Mode, 1X Data Rate)
表:Mapping of Analog Inputs to LVDS Outputs (16-Input Mode, 2X Data Rate)
表:Mapping of Analog Inputs to LVDS Outputs (32-Input Mode, 1X Data Rate)
表:Mapping of Analog Inputs to LVDS Outputs (8-Input Mode, 1X Data Rate)
表:Mapping of Analog Inputs to LVDS Outputs (8-Input Mode, 2X Data Rate)
- 芯片供电建议
该芯片需要三种电源,分别是:AVDD_1P8, DVDD_1P8, DVDD_1P2.
6.1电源上电顺序与芯片初始化
DVDD_1P2必须比AVDD_1P8先上电。芯片初始化顺序为:
- 芯片上电
- 外部输入ADC硬件复位
- 在0Ah地址写入3000h
- 按照需求配置其它ADC寄存器参数
- 等待一段时间后,芯片开始工作
电源上电顺序和初始化如图24所示:
图24:Power Sequencing and Initialization
下表为电源上电与初始化的时间参数:
表:Timing for Power Sequencing and Initialization
参考ads52j90数据手册,小青菜哥哥将开发过程中需要用的信息在上文中交代了,接下来的文章里小青菜哥哥将分享该款芯片在LVDS模式和JESD204B模式下的开发过程~