Other Parts Discussed in Thread:ADS1115
你好,
1,我的驱动中设置SPS为250的连续转换模式,即每秒转换250次。
2,将ADS1115配置的比较器low threshold配置为最大值0x7fff即+32767,hi threshold配置为最小值0x8000即-32768。
3,转换完成后RDY脚输出到芯片产生中断,然后芯片通过I2C读取转换数据。
碰到的问题:当SPS为250的连续转换模式下,RDY脚(pin2)输出的波形不等于250Hz,实际在205Hz左右。测试了其它SPS,同样RDY脚输出的波形不等于设置的SPS。请问问题出在哪里?RDY脚输出的波形如下:
ADS1115配置数据如下:
1,设置low thresh register(2H)寄存器值为0x7f,0xff (0x7fff)
2,设置hi thresh register(3H)寄存器值为0x80,0x00 (0x8000)
3,设置config register(1H)寄存器值为0x86,0xb0 (0x86b0)启动连续转换
4,将寄存器指向conversion registor(0H)
我的目的:希望配置好ADS1115后,RDY脚能按设定的SPS输出信号触发芯片中断来读取数据。
烦请帮分析下是什么原因,谢谢你。
Amy Luo:
您好,
感谢您对TI产品的关注!在比较器模式下,当转换数据超过high-threshold register(Hi_thresh)中设置的限制时,ALERT/RDY引脚置低;比较器仅在转换数据低于low-threshold register((Lo_thresh)中设置的限制时置高。
如果您:希望配置好ADS1115后,RDY脚能按设定的SPS输出信号触发芯片中断来读取数据。那么请按照数据手册9.3.8 Conversion Ready Pin配置ADS1115
,
walter wu:
Amy你好,
前面提问中给出的配置是按照数据手册9.3.8配置的,解释如下:
1,Hi_thresh register的最高有效位为1且Lo_thresh register最高有效位为0
2,COMP_POL设置为0输出低电平
3,COMP_QUE[1:0] 设置为00不为11
但实际RDY脚输出的频率如第一次图片显示是205Hz不等于设置值250SPS,请帮看下是我哪里设置有问题?
,
Amy Luo:
您是怎样判断RDY脚(pin2)输出的波形不等于250Hz?
,
walter wu:
你好,
RDY脚经上拉电阻到VCC,配置输出低,然后用示波器看到输出的波形如下
用光标测量第1个低电平到第2个低电平之间的时间为4.88ms即约为205Hz
低电平持续时间约为10us(数据手册中为8us)
,
Amy Luo:
数据速率DR,即每秒样本数SPS,有±10%的变化范围,但是250SPS变化到205SPS是有点大,您的时钟频率是多少呢,看下是否有I2C数据速率不够导致的吗
,
walter wu:
I2C速率为标准100KHz通讯,应该跟它没有关系。
ADS1115配置完成后,即使不读取数据RDY引脚也是输出的,只是误差很大
,
Amy Luo:
很可能是这里的问题,您可以将数据速率SPS设置的小一些吗,看看RDY脚输出信号频率是多少?
,
walter wu:
下图更新SPS为32SPS,RDY脚输出频率为8.9Hz,也对不上。
config register配置为0x8650
RDY输出为8.9Hz,按数据手册应该输出32Hz
,
Amy Luo:
是的,与I2C速率没关系,它使用的是内部1MHZ Oscillator
每个电路板都这样吗?数据速率的准确度与内部Oscillator的性能有关,它最大误差不应该超过数据手册中标注的±10%
,
walter wu:
你好Amy谢谢你的解答,我试了4个IC情况都类似。你那边应该是可以复现的。感觉应该是内部逻辑的问题。
,
Amy Luo:
我需要确认下这个问题,我会尽快回复您的
,
Amy Luo:
您是连续写入ADS1115还是只设置一次寄存器1?
,
walter wu:
Hello Amy,
只在上电的时候写入1次,我的理解是这样的,上电的时候写入1次,然后等待中断的到来读取数据即可。
现在我已经改成不使用中断而采用定时采样了,算是绕过这个问题。
,
Amy Luo:
您使用的ADS1115供货渠道是什么?如果您想进一步解决这个问题,您可以在TI官网上申请ADS1115的样片做进一步的测试吗,以排除异常芯片最终供货来源非TI store
申请样片链接,在下面ADS1115主页—>订购与质量—>“样片”一列,点击“申请样片”:
www.ti.com.cn/…/ADS1115