This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1118无法读数,无法确定是芯片坏了还是模拟的SPI程序有问题,求高招?模拟SPI程序如下。

Other Parts Discussed in Thread: ADS1118, MSP430F149

void WriteSPI(uint config)
{
char i;
unsigned int temp;
CS_H;
SCLK_L;
CS_L;

_NOP();
for(i = 0;i <16;i++)
{
temp = config&0x8000;
if(temp)
DIN_H;
else
DIN_L;
SCLK_L;
_NOP();
config <<= 1;
SCLK_H;

}
SCLK_L;
CS_H;
}

void Config_ADS1118(uchar channel,uchar mode)
{
unsigned int config;
if(mode)
{
switch (channel)
{
case 0: config = 0xC5EB; break; //FS = 2.048V,SingleShot,860SPS 上拉电阻
case 1: config = 0xD5EB; break;
case 2: config = 0xE5EB; break;
case 3: config = 0xF5EB; break;
}
}
else
{
switch (channel)
{
case 0: config = 0x44EB; break; //FS = 2.048V,Continue,860SPS 上拉电阻
case 1: config = 0x54EB; break;
case 2: config = 0x64EB; break;
case 3: config = 0x74EB; break;
}
}
WriteSPI(config);
WriteSPI(config);
delay_SPI();
delay_SPI();
}

void Read_ADS1118(void)
{
char i;
CS_H;
SCLK_H;
CS_L;
for(i = 0;i<16;i++)
{

SCLK_H;
_NOP();
if(DOUT_val)
value |= 1;
value <<= 1;
SCLK_L;
_NOP();
}
SCLK_L;
CS_H;
}

程序读出来的只有一个不正确的值,不管改变哪个通道采样或改变输入电压值采样值都一样,那位朋友遇到类似的问题?