搜索
bottom↓
回复: 43

求助关于ADS1232的复位使用问题

[复制链接]

出0入0汤圆

发表于 2011-2-14 10:12:44 | 显示全部楼层 |阅读模式
请教各位大虾:
有谁玩过ADS1232?我现在有个问题,每次复位后,读数都不一样,比如这次复位后,读数是123.47,传感器不动,读数不变,但是关掉电源,传感器维持现状,重新启动后,读数就是145.35,每次重新复位后,就变了,主芯片是STC10F08XE,看了网上的ADS1232使用笔记,说是在复位后,设置参数前(GAIN,SPEED等参数),要将PDWN置低,然后设置参数,参数设置好后,然后将PDWN拉高,这样就好了,但是我的板子GAIN,SPEED这些参数都是由板子固定的,就是直接接地了,并不用我代码设置,此时如何复位呢?我在复位后,用代码先将PDWN置低,然后延时一段时间,再将PDWN拉高,无效。
急,谢谢!

部分原理图如下,ADS1232只有PDWN,DOUT,SCLK是连接在单片机芯片上由自己控制的。

ADS1232部分原理图 (原文件名:ADS1232.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2011-2-14 11:25:43 | 显示全部楼层
没人回答,自己顶了

出0入0汤圆

 楼主| 发表于 2011-2-14 21:54:53 | 显示全部楼层
自己顶下,看到的请帮助回答下,谢谢啦。

出0入0汤圆

发表于 2011-2-14 23:56:07 | 显示全部楼层
用过ads1230

你有没有读过后面自校准的时序?
好像内置数字滤波器,前几个值没有滤波。

出0入0汤圆

 楼主| 发表于 2011-2-15 08:31:26 | 显示全部楼层
这个没有,不过我感觉还是复位的问题。
我试试看。谢谢指点。

出0入0汤圆

发表于 2011-2-24 11:31:47 | 显示全部楼层
回复【4楼】liuxing7851
-----------------------------------------------------------------------

我最近在使用ADS1234这款芯片,和ADS1232是一样的,只是多了两个输入通道。和你碰到的问题一样。第一批ads1234芯片没有发现频繁开关机(使用的是LPC2214)时会引起ads1234输出数据异常(有时是正当极大值,有时是负担极小值,有时是不大不小的值,即使差分输入管脚短接),第二批芯片却频繁会出现开关机时采集数据异常。现象是:正常采集时从不会出现采集数据异常,当频繁开关机时出现采集数据异常且无法自动恢复正常,只有关机几秒后重新开机才能恢复正常,如果马上开机还是会异常。
  其中PDWN,Gain1,Gain2,speed均由LPC2214管脚控制,看了网上的ADS1232使用笔记后,把pdwn管脚用2k电阻下拉,以防arm复位时PDWN为高电平(因为arm复位时IO口默认为输入,阻抗较高)。ARM复位重启后首先把PDWN,Gain等管脚初始化为低,speed初始化为高,然后延时一定时间再把PDWN拉高。关机时,把PDWN先拉低,延迟几百毫秒后关机。感觉程序没有大问题,困扰了好几个月了。我的联系方式hanxiufu@xgxc.com,hxf1978@sohu.com
曾经把Gain0 Gain1管脚直接接地,SPEED直接接高电平,输入短接,也不管用,依然会出现频繁开关机时采集数据异常。怀疑是不是这次采购的芯片是劣质产品,但我们领导说应该不会,不知道怎么办了。(设计电路为参照ADS1234datasheet把模拟电源接5V,数字电源接3.3V。模拟参考电源接5V。接收数据是用LPC2214 的普通IO口模拟串口数据线。)  

其它奇怪现象总结: 1 关机3-6秒后再开机可恢复正常,当关机之前把PDWN拉低10秒再关机后重启数据依然异常 2 当手碰到电路板且摇晃人体时频繁开关机很容易出现数据异常,一个姿势保持不动不易出现异常,屡试不爽,怀疑是静电干扰所致 3 当出现异常时,这时用示波器地线夹接触电路地时,采集数据有时会突然恢复正常,而如果示波器一直连接电路板,而频繁开关机出现采集数据异常时,不会自动恢复正常,必须撤掉示波器探头再接上采集数据才会恢复正常。
如果一旦频繁开关机出现采集数据异常,那么数据大小比较稳定,基本不变,只有小数点第二位在变,而且很有规律,出现的总是那3-5组异常数据,即2.5V,-2.5V,或零点几伏(没具体换算)等。datasheet上说拉低pdwn会把ADS1234从锁定状态恢复正常,但现在看不是那么回事啊
曾经用示波器观察过ADS1234的输出数据,示波器看到的数据和单片机采集的一致,所以复位后采集数据异常不应该是单片机读取错误造成的。

出0入0汤圆

发表于 2011-2-24 11:38:10 | 显示全部楼层
回复【5楼】hxf1978
-----------------------------------------------------------------------

会不会是ADS1232/4不适合做便携式仪表啊,因为手持式仪表需要频繁开关机。而ADS1232/4datasheet上又没说自己适合做仪表,只说适用于称重、应力、压力、工业过程控制等领域,好像这几个方面都不需要频繁开关机啊,真不想放弃啊,但现在又解决不了问题。

出0入0汤圆

发表于 2011-2-24 11:38:38 | 显示全部楼层
回复【6楼】hxf1978
-----------------------------------------------------------------------

自己顶一个!

出0入0汤圆

发表于 2011-2-24 11:52:19 | 显示全部楼层
回复【7楼】hxf1978
-----------------------------------------------------------------------


ads1234应用原理图 (原文件名:ads1234应用原理图.jpg)

出0入0汤圆

发表于 2011-3-1 11:18:27 | 显示全部楼层
回复【8楼】hxf1978
---------------------------------------------------------------------

刚才实验楼一下,发现当ads1234输出数据异常的时候,把pdwn脚拉低一次,无法使ads1234回复正常,只有把电源拉低一下(接地,数字电源管脚悬空无效,ads1234依然能够工作),它才能恢复正常的采样工作。看来pdwn无法使得芯片复位,只有强行把DVDD拉低,测量了一下,拉低电流为60多毫安,远远大于其正常工作电流。。

出0入0汤圆

发表于 2011-3-1 11:26:53 | 显示全部楼层
刚才实验楼一下,发现当ads1234输出数据异常的时候,把pdwn脚拉低一次,无法使ads1234回复正常,只有把电源拉低一下(即强行接地,模拟管脚供电时数字电源管脚悬空无效,ads1234依然能够工作。如果把模拟电源管脚也断电,其它数字管脚如A0,A1,speed gain clck等拉低,这数字电源管脚和数据输出管脚依然有1V左右的电平,很奇怪哪里来的电压?),它才能恢复正常的采样工作。看来pdwn无法使得芯片复位,只有强行把DVDD拉低,测量了一下,拉低电流为60多毫安,远远大于其正常工作电流。。
  也就是说只有ads1234把数字电源管脚DVDD管脚强行拉低才能使其恢复正常工作,拉低pdwn无效。

出0入0汤圆

 楼主| 发表于 2011-3-1 12:17:00 | 显示全部楼层
兄弟,你也出现在这里啊?

出0入0汤圆

发表于 2011-3-1 12:45:29 | 显示全部楼层
是啊,没办法啊,有解决办法时别忘了告诉兄弟一声,多谢了,我看以前有人问过这个问题啊,你可以在百度里搜下几年前就有人问这个问题了,即ads1232的箝位问题,里面还有他的联系邮箱和qq,不知道他现在有解决的办法了没有?

出0入0汤圆

发表于 2011-3-1 17:08:18 | 显示全部楼层
兄弟,问题已经解决了,就是机子开机时要做做一次自校正就可以了,即发26个脉冲让芯片完成偏移校正,资料上有。

出0入0汤圆

发表于 2011-3-1 17:10:05 | 显示全部楼层
回复【13楼】hxf1978
-----------------------------------------------------------------------

ads1232使用笔记纯属误导。另外ads1232资料上给的信息也不够明确,估计还会有很多人在这里栽跟头。

出0入0汤圆

 楼主| 发表于 2011-3-8 14:58:42 | 显示全部楼层
兄弟,顶死你

出0入0汤圆

发表于 2011-3-9 16:22:01 | 显示全部楼层
回复【楼主位】liuxing7851
-----------------------------------------------------------------------

兄弟!能否请教你个问题啊!
你用的 是什么传感器啊?
我用的力值采集的传感器  按ADS1232的文档里面是编码是偏移二级制编码:
0x7f 和0x80  可以用来判断方向
力值传感器拉的时候最高八位是0x7f的话,那么压的时候就应该是0x80
但是我现在采集的得到的最高八位的值分别是0x00和0xff
这是何故啊?
难道是读函数的问题?
能否把你的读函数程序分享下啊?
我采用的是STC12C5A60S2单片机
以下是我的读程序
uchar ReadAdcData()
{
        uchar i=0;
        uchar Data=0x00;       
        for(i=0;i<8;i++)
        {
                Data<<=1;       
                Sclk=1;
                if(Dout==1)                {Data=Data+1;}       
                Sclk=0;       
        }
        Sclk=1;
        Sclk=0;
        return(Data);       
}

出0入0汤圆

发表于 2011-3-11 11:01:58 | 显示全部楼层
0x80表示负数,即24位最高位如果是1,表示是负数。反之,最高位是0则表示是正数,资料上有。

读数完全取决于你的输入电压。参考电压如果为5V,则测量范围为正负2.5V  

0xffxxxx表示负的比较小的数,0x00xxxx表示是正的较小的数,说明你很可能没有输入电压

出0入0汤圆

发表于 2011-3-11 11:04:37 | 显示全部楼层
回复【17楼】hxf1978
-----------------------------------------------------------------------

此外,你的程序里面好像没有寻找ADC输出管脚下降沿的动作,那样才能开始输入时钟信号,adc芯片才输出数据,不然,结果肯定错。不知道是不是你的寻找下降沿的动作在别的地方?

出0入0汤圆

 楼主| 发表于 2011-3-11 14:17:25 | 显示全部楼层
兄弟,没话讲了,顶死你。

出0入0汤圆

 楼主| 发表于 2011-3-11 14:20:24 | 显示全部楼层
回复【16楼】aidby2004
-----------------------------------------------------------------------

如楼上所说,最高位1就是负的,最高位为0就是正的,也就是说,他的负数是补码方式存储。

出0入85汤圆

发表于 2011-3-11 14:24:18 | 显示全部楼层
设置完第一个读出的数据是要丢弃的,

出0入0汤圆

发表于 2011-3-12 23:32:05 | 显示全部楼层
回复【21楼】marshallemon
-----------------------------------------------------------------------

第一个数据我是没用!我这样做的!
吧采集到的数据,分三个八位数据发送到串口
从串口调试助手上看到的结果始终是这样的
程序方面三种时序全试过了
以为是硬件的问题
我前后测试了三块板子
全是一样的结果  晕死了

出0入85汤圆

发表于 2011-3-13 11:18:01 | 显示全部楼层
回复【22楼】aidby2004
-----------------------------------------------------------------------

用过ADS1242/1243,没有遇到你所说的问题,但每次启动后与上次是有点诧异的,但诧异不大,但我遇到是和楼上一位的问题差不多,数据受到干扰后会出错,出错后必须重新加电,并且中间要停10s左右。
另外你是用IO模拟的吗?什么单片机?

出0入0汤圆

发表于 2011-3-13 11:34:07 | 显示全部楼层
回复【23楼】marshallemon
-----------------------------------------------------------------------

我用的是STC12C5A60S2单片机!
ADS1232的控制端口全部采用单片机IO口控制的!
这个做了很久了
一直卡在这里了  
那个急啊.......

出0入0汤圆

发表于 2011-3-13 11:35:27 | 显示全部楼层
回复【23楼】marshallemon
-----------------------------------------------------------------------

我即使采用别人调试听过的代码,都是STC的单片机,晶振大小也是一样的11.0592MHz的,一样的代码!
结果照样是这样的
真的是奇怪了 ....

出0入85汤圆

发表于 2011-3-13 22:16:50 | 显示全部楼层
这个问题我建议你最好先去掉你的传感器,接入一个固定的电压值,然后复位看下,

出0入0汤圆

 楼主| 发表于 2011-3-14 08:57:23 | 显示全部楼层
我不知道你现在的情况如何,你描述的也不是很清楚,你现在读到的数据情况是怎么样的?是一成不变还是最高位是0x00或者0xFF,确定读取的时候高低位没有弄反?如果有问题,可以联系我QQ:120987843

出0入0汤圆

发表于 2011-3-14 22:48:33 | 显示全部楼层
回复【27楼】liuxing7851
-----------------------------------------------------------------------

现在的情况是:能读到数据,但是比较奇怪的数据,传感器放在那不动的时候得到的数据是 0xff fa  xx  这样的,但是无论 你压传感器还是拉传感器,都是这样的,这样我也没办法确定ADS1232到底是不是正常工作了!

出0入0汤圆

发表于 2011-3-14 22:50:07 | 显示全部楼层
回复【26楼】marshallemon
-----------------------------------------------------------------------

我这样试过了,我直接把输入端接地!但是还是能读到很大的数据!没办法确定ADS1232到底是不是正常工作了

出0入0汤圆

 楼主| 发表于 2011-3-15 11:29:37 | 显示全部楼层
首先确认是否硬件上有问题,最好上原理图,读取数据的时候要等待DOUT信号,如果DOUT是正常工作的,那么可以判断芯片正常工作了,如果没有问题,那么就可以判定是ADS1232坏了,我也遇到过这个问题,不管是静置还是施力,都是超量程(即输出最大值),所以可以确定是ADS1232是坏了。

出0入0汤圆

发表于 2011-3-15 14:39:48 | 显示全部楼层
回复【30楼】liuxing7851
-----------------------------------------------------------------------

我重新焊接了块板子!正准备测试!
这是我焊接的第四块板子了啊  晕

你的初始化流程是什么样的啊?
通道的设置、增益的选择,速度的选择之类的,在初始化的时候他们分先后顺序吗?

出0入0汤圆

 楼主| 发表于 2011-3-15 15:04:50 | 显示全部楼层
初始化话的时候是不分先后的,但是在初始化参数时,一定要PDWN=0x00,然后设置参数,最后再PDWN=0x01,注意,在设置参数时,加上点延时,因为PDWN在置位和复位之间需要延时。完后,再校准一次,就是发26个SCLK脉冲,这个datasheet上有,最后再读取几笔数据,去掉不要(不稳定),就行了

出0入0汤圆

发表于 2011-3-15 17:05:17 | 显示全部楼层
回复【32楼】liuxing7851
-----------------------------------------------------------------------

奇怪的现象啊

采集到的数据 (原文件名:2011-03-15_170147.jpg)

出0入0汤圆

 楼主| 发表于 2011-3-15 18:22:33 | 显示全部楼层
这个问题,传感器的方向本来就是人为设置的,未必就是你认为的正向就是正向,负向就是负向,既然上拉是增大,那么可以认为你方向弄错了,反过来就行了。

出0入0汤圆

发表于 2011-3-15 22:52:35 | 显示全部楼层
回复【34楼】liuxing7851
-----------------------------------------------------------------------

但是输出的数据不对啊!应该是0x7f xx xx和0x80 xx xx啊 ...

出0入0汤圆

 楼主| 发表于 2011-3-16 08:12:59 | 显示全部楼层
数据的确不对,原理图贴上来看看,还有确认ADS1232是否损坏,我也碰到过类似问题,最后确认是AD芯片损坏。

出0入0汤圆

发表于 2011-3-16 08:14:58 | 显示全部楼层
回复【36楼】liuxing7851
-----------------------------------------------------------------------

这是第四片ADS1232了  前三片是在TI申请的,不会这么容易坏把?

出0入0汤圆

发表于 2011-3-16 08:49:49 | 显示全部楼层
回复【36楼】liuxing7851
-----------------------------------------------------------------------

电路图

电路图 (原文件名:ADS1232.jpg)

出0入0汤圆

发表于 2011-4-1 23:08:38 | 显示全部楼层
to:aidby2004

晶振上20pF的电容需要么?

出0入0汤圆

发表于 2011-4-28 16:04:47 | 显示全部楼层
回复【39楼】li0713
-----------------------------------------------------------------------

?????
难道可以不要吗?
这个会对ADS1232有什么影响吗?

出0入0汤圆

发表于 2011-6-2 19:46:15 | 显示全部楼层
回复【39楼】aidby2004
-----------------------------------------------------------------------晶振上20pF的电容不需要

出0入0汤圆

发表于 2011-11-22 13:05:58 | 显示全部楼层
必须得接上晶振么?不接可不可以?

出0入0汤圆

发表于 2013-8-15 18:10:50 | 显示全部楼层
求助关于ADS1232的复位使用问题
[复制链接]              
你好,能把你这个的程序发我一份吗?我正在学这块,想参考参考你的程序,非常感谢你。我的QQ邮箱530080904
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 09:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表