Part Number:ADS7052Other Parts Discussed in Thread: ADS7950
各位TI技术支持你们好,我先在用到ADS7052这颗芯片adc采样,遇到一些问题请教大家:
1.标准的spi读取16bit是16个sck,但是ADS7052是18个sck.
1V输入,2.5V参考,理论1*16384/2.5=6553。实际读数是7000多跳动,有的接近8000,由于读数时第2个sck到15个sck的上升沿对应的SDO,以上读数要右移1位,结果是三四千的采样值读数,低于理论值,就是整体偏低,实际测试0.5V左右以下的采样读出来的值都为0.
2.于是开机我就发送24个sck进行Offset Calibration on Power-Up(确保断电重启且没有发送18scks读取数据,但是MISO不是全为低)再读取采样值,但是实际测试开机有没有这个offset calibration都不会修正测试结果。
3.于是我又在正常读取一帧数据后又添加正常操作时的便宜校准,连续给到64 scks(这个是模拟发送的,有的间隔宽点大概6us,正常大概2us,估计是被中断打断了),但是后面的读数还是没有修正,前面0.5V左右采样为0,后面的采样也是偏低。
4.于是我采用模拟的方法重新写了spi时序,18个sck,都是上升沿读数,实际读数与标准的16bit的spi读数差不多。如下2.5V基准,1V模拟输入,测量结果0x1B38=6968,往右移一位也就是3500左右。与理论采样值差3000左右,2.5V*3000/16384=0.46V,实际测试也是0.5V左右以下采样值读数全为0.
最后,我保证采样的模拟输入是稳定的(芯片的DAC输出),采样基准也是稳定的2.5V,但是采样值跳动有近100个值,这样这个芯片的8bit的精度都达不到。我用过ADS7950,那基本是一点跳动都没有。也不知道原因,附上原理图
问题1:标准的spi读取两个字节的数据发送16scks行不行,如1的spi时序。
问题2:开机发送24scks(见2)与正常操作发送64scks(见3)进行偏移校准为什么不行,是时序不对吗?
问题3:为什么输入与基准都很稳的情况下都有差不多100的数值跳动?
问题4:原理图是否有问题。
Amy Luo:
您好,
1、不行的,如果提供的SCLK数少于18个,设备输出的转换结果是无效的,见datasheet 8.4.2 CNV State说明,如下截图
2、失调校准时除了提供相应的sclk数,采集下一个样本时,是否提供了最小的 tACQ时间?校准后读取转换数据您是发送的16个sclk还是18个sclk?
3、18个SCLK后,是否提供了最小的 tACQ 时间,在进入下一个样本的采集时序?同时CS的拉高时间是否满足tph_CS时间?
4、ADS7052虽然是单端输入,但是AINM需要地接
如果上述程序测试都是在AINM悬空的情况下测得的,那很可能是AINM未接地造成的