最近在使用ADS1230 (20位模数转换器),使用过程中,读取的数据,与设置的增益(64)不符,我现在读回来的数据/AD输入=2,正确时应该是读回来的数据/AD输入=64,请问有遇到相同问题的吗?
这是我的代码:
unsigned long ADS123x_Read() //¶ÁÒ»´ÎÊý¾Ý£¨20룩
{
unsigned char i;
unsigned long k = 0;
while(ADS1230_3_DOUT)
{
; //µÈ´ýÊý¾Ý×¼±¸ºÃ
}
for (i = 0; i<20; i++)
{
k<<=1;
ADS1230_3_SCLK = 1;
DELAY_US(2);
ADS1230_3_SCLK = 0;
DELAY_US(2);
if (ADS1230_3_DOUT)
{
k += 1;
}
DELAY_US(2);
} ADS1230_3_SCLK = 1; //µÚ21¸öʱÖÓÂö³å£¬Ê¹Êý¾ÝÊä³ö½ÅÀ¸ß£¬ÓÃÓÚÑéÖ¤ÏÂÒ»´ÎÊý¾ÝÊÇ·ñ×¼±¸ºÃ£¨µÍ£©¡£
DELAY_US(2);
ADS1230_3_SCLK = 0;
DELAY_US(2);
k &= 0XFFFFF;
return(k);
}
Martin:
能否将你设置的增益64用SPI口读回来看看设置准确了么?
Jason Shen:
1.首先要保证通信成功了,验证的方法就是写完了以后再读回来看。
2.如果是时序的问题,可以使用双通道示波器看看 时钟和数据的波形是否对齐了,是否与ready信号同步。
Hua Yuan1:
回复 Martin:
这款AD的增益配置,是直接通过电平配置,且手册上并没有提供读取增益的方法。
Hua Yuan1:
回复 Jason Shen:
数据能读回来,且读回来的数据时输入数据的2倍,不是设置的64倍
Hua Yuan1:
回复 Hua Yuan1:
将差分输入端短接,输出的AD内码值为3000多,不正常啊
XueFeng Gao:
回复 Hua Yuan1:
我也是遇到同样的问题,换了个芯片还是样,只放大两倍,后4位的数据跳的厉害
XueFeng Gao:
回复 Hua Yuan1:
你好!你的问题解决了吗?我遇到同样的问题.
Huaming Yuan:
回复 XueFeng Gao:
你问题解决了吗?
XueFeng Gao:
回复 Huaming Yuan:
还没有解决,打算重新买芯片试一下,你调的有进展吗?
XueFeng Gao:
回复 Huaming Yuan:
重新买的芯片,换了芯片还是不行,你的问题解决了吗,这是我的电路,看一下和你的有什么不同的地方?