请教各位大虾:
有谁玩过ADS1232?我现在有个问题,每次复位后,读数都不一样,比如这次复位后,读数是123.47,传感器不动,读数不变,但是关掉电源,传感器维持现状,重新启动后,读数就是145.35,每次重新复位后,就变了,主芯片是STC10F08XE,看了网上的ADS1232使用笔记,说是在复位后,设置参数前(GAIN,SPEED等参数),要将PDWN置低,然后设置参数,参数设置好后,然后将PDWN拉高,这样就好了,但是我的板子GAIN,SPEED这些参数都是由板子固定的,就是直接接地了,并不用我代码设置,此时如何复位呢?我在复位后,用代码先将PDWN置低,然后延时一段时间,再将PDWN拉高,无效。
急,谢谢!
部分原理图如下,ADS1232只有PDWN,DOUT,SCLK是连接在单片机芯片上由自己控制的。
![](https://www.xiaopingtou.net/data/attach/2001/95i66jzrmk58efe4qx39duq5y0bcwkzu.jpg)
ADS1232部分原理图
(原文件名:ADS1232.jpg)
-----------------------------------------------------------------------
ads1232使用笔记纯属误导。另外ads1232资料上给的信息也不够明确,估计还会有很多人在这里栽跟头。
-----------------------------------------------------------------------
兄弟!能否请教你个问题啊!
你用的 是什么传感器啊?
我用的力值采集的传感器 按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);
}
读数完全取决于你的输入电压。参考电压如果为5V,则测量范围为正负2.5V
0xffxxxx表示负的比较小的数,0x00xxxx表示是正的较小的数,说明你很可能没有输入电压
-----------------------------------------------------------------------
此外,你的程序里面好像没有寻找ADC输出管脚下降沿的动作,那样才能开始输入时钟信号,adc芯片才输出数据,不然,结果肯定错。不知道是不是你的寻找下降沿的动作在别的地方?
一周热门 更多>