目录
- 1 概述
- 2 GAD7980简介
- 3 用法时序
- 4 参数计算与参数解释
- 4.1 采样率
- 4.2 转换时间
- 4.3 采集时间
- 5 采样数值折算
- 6 设计注意事项
- 7 代码demo
1 概述
本文用于讲述GAD7980的功能与用法,以及其中一些参数的计算方法,用法时序,输出数值等等,便于后续沟通交流。
GAD7980与AD7980/CL1680时序兼容,硬件兼容可以使用同一套代码。
2 GAD7980简介
GAD7980是一款16位1MSPS SAR ADC,常用来采集电压信号。最大采样率为1MSPS,采用兼容的SPI接口进行数据输出,没有寄存器等配置,使用简单。
其原理框图如下:
3 用法时序
虽然本芯片手册介绍了很多种使用模式,但本文仅以CS模式(三线式且无繁忙指示)举例说明使用情况其时序如下所示:
资料上的CS模式的意思为采集分两步:
1) 转换区间:当SDI=1后,进入CS模式,当CNV的上升沿来临时启动转换进入转换区间(CONVERSION),在最大转换时间内CNV要一直保持高电平。
2) 采集区间:之后CNV拉低开始进入采集区间(ACQUISITION),在CNV拉低后的第一个SCK的处开始拿数据,总共16个数据,MSB先出来。16个个SCK后就关断了采集,等待进入下一个周期。
4 参数计算与参数解释
4.1 采样率
采样率=1s/tcyc;
所以最大采样率是在tcyc最小时出现,即最大采样率=1s/1us=1MHZ
Tcyc=转换时间(tCONV)+采集时间(tACQ);
4.2 转换时间
转换时间tconv是器件将模拟信号转换为数字信号的时间,有一个根据资料可知典型值为0.6us,最大值为0.7us,即在代码设计时,选择CS模式时CNV保持高电平的时间应该至少大于0.6us,最好大于0.7us。
4.3 采集时间
采集时间为将数据用SDO吐出的时间,共16个SCK。虽然手册上说tsck最小为12ns,即SPI的理论速率可以达到83MHZ左右。但是又规定了tacq最小为0.3us,则实际上tsck的最小周期=0.3us/16=18.75ns,即SPI的速率最大应该以周期18.75ns算得到53MHZ左右。
当然若要尝试把SPI速率拉到解决理论值,在需要把CNV的高电平时间拉的更长。
5 采样数值折算
根据手册可知,本器件输出的值代表的电压值大小是根据VREF来的,比如当VREF为5V时,折算结果如下所示。如果VREF=2.5V则输出码值1代表的电压还要除以2即38.15uv:
6 设计注意事项
1) 由于转换时间TCONV最大值为0.7us,因此在设计代码时CNV的高电平的高电平时间要大于0.7us设计,否则可能还没转换完就出数据,出的值可能不对;
2) 由于TEN的最大值为10ns,因此输出SCK的与产生CNV的控制时钟可能需要反向;
7 代码demo
cl1680/GAD7980/AD7980 CFG DEMO
https://mp.csdn.net/mp_download/manage/download/UpDetailed