关于ADS8332的使用疑问
因为项目有12路模拟量需要转换,所以使用DG408DY进行单路选通到ADS8332进行AD转换,在调试过程中遇到几个问题:
ADS8332的寄存器配置为:0xE6FD
1 如果不间断读取12路数据,那么读出的码值不准确,如果适当的增加延时(至少1ms),那么读出的数据也比较准确;
如果不间断只读取一路数据更接近实际值;
这种现象是逐次逼近型AD的特点么?大概代码如下
DG408DY_IO_Switch(0);//切换到第一路模拟量进行采样
Delay_ms(1);
u16 val[0] = ADS8332_ReadData(ADS8332_Channel_0);
val[0] = ADS8332_ReadData(ADS8332_Channel_0);//如果不连续读取两次,则采样的数据是第上一模拟量即第十二路的数据
DG408DY_IO_Switch(1);//切换到第二路模拟量进行采样
Delay_ms(1);
val[1] = ADS8332_ReadData(ADS8332_Channel_0);
val[1] = ADS8332_ReadData(ADS8332_Channel_0);
。。。。。
DG408DY_IO_Switch(11);//切换到第十二路模拟量进行采样
Delay_ms(1);
val[11] = ADS8332_ReadData(ADS8332_Channel_0);
val[11] = ADS8332_ReadData(ADS8332_Channel_0);
2 如果ADS8332的寄存器配置成自动模式即:0x8FD,那么要怎么读取转换值呢,因为是8个通道进行自动循环采样和转换的,那读取的时候 是不用发送通道选择数据的,那读取的数据怎么知道是0~8哪个通道的数据呢?Datasheet里好像没有介绍
3 有没有ADS8332的例程代码,自动模式和手动模式的
如果不间断读取12路数据,那么读出的码值不准确,如果适当的增加延时(至少1ms),那么读出的数据也比较准确; 如果不间断只读取一路数据更接近实际值;
我想这原因跟你设置的采样保持时间以及信号源的阻抗有关。
"采样保持时间"在哪里配置,ADS8332里好像没有
第一个问题,在调试的时候,是进入断点来查看采样值的,这样做导致需要较长时间延时1ms,如果全速运行则不需要延时这么久,但是还是需要延时,否则当前采样值还是会受到上一路模拟量的影响
请问TI有没有相关例程啊