TLC549型ADC驱动设计

AI summary
TLC549型ADC是一种模数转换器,能够将模拟信号转换为数字信号。其工作原理包括模拟输入、串行接口和时序控制,设计时需遵循严格的时序参数。设计架构采用线性序列机实现,支持多种数据输出和工作电压。通过ADC数据可计算对应的电压值,示例计算表明在不同输入数据下的输出电压。
Last edited time
Sep 24, 2024 06:47 AM
Last edited by
Tags
Serial Communication
Data Transmission Methods
Digital Signal Conversion
Analog Signal Processing
Serial Data Transfer Techniques
ADC Design Methodologies

一:ADC介绍

  1. ADC:Analog-to-Digital Converter(模数转换器)。
    1. 通常是指一个将模拟信号转换为抗干扰能力更强的数字信号的电子器件。一般的ADC是将一个输入电压信号转换为一个输出的数字信号;由于数字信号本身不具备任何意义,仅仅只代表一个相对大小。所有任何一个ADC都需要一个参考的模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号的大小,而数字量则表示输入信号相对参考信号的大小。
  1. ADC的分类:
    1. 模数转换器的种类很多,按工作原理的不同,可分成间接ADC和直接ADC。间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,常用的有双积分型ADC。直接ADC则直接转换成数字量,常用的有并联比较型ADC和逐次逼近型ADC。
      • 并联比较型ADC:采用各量级同时并行比较,各位输出码也是同时并行产生,所以转换速度快。并联比较型ADC的缺点是成本高、功耗大。
      • 逐次逼近型ADC:它产生一系列比较电压VR,但它是逐个产生比较电压,逐次与输入电压分别比较,以逐渐逼近的方式进行模数转换的。它比并联比较型ADC的转换速度慢,比双分积型ADC要快得多,属于中速ADC器件。
      • 双积分型ADC:它先对输入采样电压和基准电压进行两次积分,获得与采样电压平均值成正比的时间间隔,同时用计数器对标准时钟脉冲计数。它的优点是抗干扰能力强,稳定性好;主要缺点是转换速度低
  1. ADC的选型(技术指标)
    1. 采样精度 —— 即分辨率,一般有8位、10位、12位、16位等;
      转换时间 —— 即每次采样所需的时间,表征 ADC 的转换速度,与 ADC 的时钟频率、采样周期、转换周期有关;
      数据输出方式 —— 如并口输出、串口输出;
      ADC类型 —— 如上面所提到的,ADC 有多种类型,不同类型的 ADC 有不同的性能极限;
      工作电压 —— 需要注意 ADC 的工作电压范围、能否直接测量负电压等;
      芯片封装 —— 芯片封装是否符合产品设计要求;
      性价比 —— 控制成本。

二:TLC549工作原理

  1. ZX-2板卡原理图
    1. notion image
      端口号
      端口名
      端口描述
      1
      REF+
      VREF=2.5V
      2
      ANIN
      模拟量输入:REF-<=ANIN<=REF+,当ANIN>REF+,转换结果为1;当ANIN<REF-,转换结果为0;
      3
      REF-
      GND
      4
      GND
      GND
      5
      CS(I)
      串行接口片选:低有效
      6
      DAT(O)
      串行接口数据:MSB~LSB(TLC549在时钟下降沿移出数据)
      7
      CLK(I)
      串行接口时钟:MAX=1.1MHZ
      8
      VCC
      VDD5
  1. 操作时序图
    1. notion image
      当CS_N为高时,输出数据(DATA_OUT)端处于高阻状态,此时I/O CLOCK不起作用;这种CS_N控制作用允许在同时使用多个TLC549器件时,共用I/O CLOCK以减少多路AD转换器占用的I/O资源。
      一次数据转换过程如下步骤:
      • 将CS_N置低,内部电路在CS_N下降沿后,再等待两个内部时钟周期上升沿和一个下降沿;确认这一变化后,最后会自动将先前一次转换结果的最高位(A7)放置在DATA_OUT线上;
      • 前4个I/O CLOCK下降沿依次移出第2,3,4,5位数据(A6,A5,A4,A3),片上保持和采样电路会在I/O CLOCK的下降沿开始采样模拟输入;
      • 接下来的3个I/O CLOCK下降沿依次移出第6,7,8位数据(A2,A1,A0);
      • 最后,片上采样电路会在第8个I/O CLOCK的下降沿结束,保持功能将持续4个内部系统时钟周期,然后进行32个内部系统时钟周期的转换(4+32=36);在第8个I/O CLOCK后,将CS_N拉高,同时I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期,以等待保持和转换的工作完成;如果CS_N为高时出现一次有效的低电平,则将引脚重新初始化,从而脱离转换的过程。
      先将先前一次数据结果转换完成后,后续的数据结果转换重复上述步骤。
  1. 时序参数表(设计时需要严格遵守)
    1. notion image
      notion image
      notion image
      notion image

三:TLC549设计实现

  1. 设计架构
    1. notion image
  1. 设计实现
    1. I/O CLCOK最大不超过1.1MHZ,规定I/O CLOCK采用1MHZ(T=1000ns)。
      Tsu(CS):min=1.4us Tconv:max=17us Twh(CS):min=17us
      采用线性序列机实现:
      节拍
      LSM_1S:节拍计数
      LSM_2S:节拍上发送动作
      说明
      0
      (sys_rst_n==0):cnt=0
      (sys_rst_n==0):ad_io_clock=0,ad_cs_n=1,data=0,flag=0,data_temp=0
      data_temp寄存data_oout线上数据
      1
      cnt=cnt+1
      ad_cs_n=0
      拉低cs_n(自行设置:20ns)
      71
      cnt=cnt+1
      ad_io_clock=1,data_temp[7]=ad_data_out
      采样A7数据:MSB
      96
      cnt=cnt+1
      ad_io_clock=0
      121
      cnt=cnt+1
      ad_io_clock=1,data_temp[6]=ad_data_out
      采样A6数据
      146
      cnt=cnt+1
      ad_io_clock=0
      171
      cnt=cnt+1
      ad_io_clock=1,data_temp[5]=ad_data_out
      采样A5数据
      196
      cnt=cnt+1
      ad_io_clock=0
      221
      cnt=cnt+1
      ad_io_clock=1,data_temp[4]=ad_data_out
      采样A4数据
      246
      cnt=cnt+1
      ad_io_clock=0
      271
      cnt=cnt+1
      ad_io_clock=1,data_temp[3]=ad_data_out
      采样A3数据
      296
      cnt=cnt+1
      ad_io_clock=0
      321
      cnt=cnt+1
      ad_io_clock=1,data_temp[2]=ad_data_out
      采样A2数据
      346
      cnt=cnt+1
      ad_io_clock=0
      371
      cnt=cnt+1
      ad_io_clock=1,data_temp[1]=ad_data_out
      采样A1数据
      396
      cnt=cnt+1
      ad_io_clock=0
      421
      cnt=cnt+1
      ad_io_clock=1,data_temp[0]=ad_data_out
      采样A0数据:LSB
      446
      cnt=cnt+1
      ad_io_clock=0,data=data_temp,flag=1
      产生采样8bit数据完成标志(尖峰脉冲)
      447
      cnt=cnt+1
      flag=0,ad_cs_n=1
      CS_N拉高至少17us
      1300(EP)
      cnt=cnt+1
      17us/20ns=17_000 / 20ns = 850(447~1300)
      notion image
  1. 仿真测试
    1. notion image

四:数字电压表设计(TLC549驱动拓展)

notion image
DA芯片驱动中计算对应通道的电压值:
VO(DACA|B|C|D) = VREF * (CODE / 256) * (1 + RNG)
VO = VREF * (data / 256) = (0~2.5V) //VREF=2.5V
VO = VREF * (data / 256) = (0~2.5V) * 1000 = (0~2500mV) //VREF=2.5V
  1. 假设采样到的AD数据data=8’b1010_1010
    1. VO=2.5*(170 / 256) * 1000mV = 1,660mV=1.66V
  1. 假设采样到的AD数据data=8’b0110_0110
    1. VO=2.5*(102 / 256) * 1000mV = 996mV=0.996V
notion image
Loading...