Part Number:ADS7142
Dear Expert ,
中午好,
客户这边有一个问题 :ADS7142如何配置单通道自动报警模式,要求:配置高低阈值后,当AIN0输入超过值后,能在ALERT引脚改变电平,提供MCU做出中断处理,在你们官方中模式都是轮询反复通过IIC查询ADC值,再修改ALERT引脚,这很奇怪,是不是反了。参考例程是ADS7142_AutonomousMode_PostAlert_CH0Scan.c 。
请帮忙确认一下,
谢谢
BR,
Leon.liu
Amy Luo:
您好,
ALERT是OD输出管脚,MCU软件是无法修改ALERT引脚状态的
,
shao wenbing:
问题以解决,问一下高精度模式可以设置阈值吗
,
Amy Luo:
很高兴您的问题得以解决,感谢您的反馈
关于设置阈值,应该是的,在datatable中有句说明,内部数字窗口比较器适用于所有模式,您是遇到什么问题了吗
,
shao wenbing:
我设置了阈值区间是ed4-eed[3.068v-3.088v],并设置了中断后打印对应数值
但是发现在接近两个阈值点时
如未触发中断,在阈值区间时,慢慢将电压逼近,当电压接近后,数值异常,数值结果在阈值点反复跳动,直到远离3.088(eed)时,大概50个单位值,中断触发,延迟触发验证
若已经触发中断,慢慢将电压逼近,发现无法进入阈值区间,(且如果区间过小,甚至无法进入区间),继续调整电压,大概50个单位值,就出去区间了退出中断
程序中我设置的滞后值为0,尝试使用过其他值,并没有作用
程序运行中退出阈值报警模式,在读数就是正常值
,
Amy Luo:
PRE_ALT_MAX_EVENT_COUNT这个寄存器您是怎样设置的?它是达到PRE_ALT_MAX_EVENT_COUNT设置的值,Alert才有效
,
shao wenbing:
没有设置,应该是0,官方没说要设置
,
Amy Luo:
是有说设置的,见下面截图,如果采用默认值,那么就是1,即超出阈值来一个中断;
您是使用的哪种模式?
shao wenbing 说:如未触发中断,在阈值区间时,慢慢将电压逼近,当电压接近后,数值异常
上面的描述是说当输入电压接近3.088v时,AD转换结果异常?是怎样异常?您的意思是在转换结果3.088V附近不稳定吗?您同时有用示波器测量此时输入信号是否稳定?
shao wenbing 说:若已经触发中断,慢慢将电压逼近,发现无法进入阈值区间,(且如果区间过小,甚至无法进入区间),继续调整电压,大概50个单位值,就出去区间了退出中断
您这里“发现无法进入阈值区间”是什么意思?是指无法退出中断吗?那么您清除了锁存标志了吗?锁存的标志可以从ALERT_LOW_FLAGS 和ALERT_HIGH_FLAGS寄存器中读取。要清除锁存标志,请将1写入适用的位位置。只要设置或清除了锁定标志,就会重新评估ALERT pin的状态
另外,如果PRE_ALT_MAX_EVENT_COUNT是1的话,那么转换结果超出阈值就会来一个中断,也就是说一旦输入电压超出阈值,很可能会来多个中断,因为采样点间隔时间很小,很难调节输入电压仅一个采样点超出阈值