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.

ADS1158: ADC1158 occasional configuration/SPI communication failure; no activity on MISO signal from ADC

Part Number: ADS1158

HI,

In my case also ADS1158 is not responding, Can anyone suggest correct initialization sequence of this ADC.

I have tried to read some channel as well as tried to toggle GPIOs. But not  able to do both with my current code.

as of now iam using below initialization.

void init_ADC(unsigned short channels)
{
digitalWrite(CS, LOW);
delayMicroseconds(5);
SPI.transfer(0x70); // in default auto scan mode
delayMicroseconds(5);
SPI.transfer(0x00);
delayMicroseconds(5);
SPI.transfer(0x80); // slow mode,disabled current sources
delayMicroseconds(5);
SPI.transfer(0x00); // No fixed mode channel selection
delayMicroseconds(5);
SPI.transfer(0x00); // No diff mode channel selection
delayMicroseconds(5);
SPI.transfer(channels & 0x00FF); // select the channels from AN0 to AN7
delayMicroseconds(5);
SPI.transfer((channels & 0xFF00) >> 8); // select the channels from AN8 to AN15
delayMicroseconds(5);
SPI.transfer(0x01); // Only offset no monitoring
delayMicroseconds(5);
digitalWrite(CS, HIGH);
}

 

  • Hi Vijeesh,

    Welcome to the TI E2E Forums!

    Do you have a schematic of your circuit that you could share, and have you checked to see if the /DRDY pin is pulsing at regular intervals?
    /DRDY is a kind of "heartbeat" that will tell you if the ADC is working. If you do not see /DRDY puling, then I would check three things: 1) Power supply voltages, 2) GPIO pins (make sure the device is not being held in power down or reset) and 3) The crystal (or external clock) to make sure the device is clocked.

    For start-up initialization, I would recommend looking at the "Configuration Guide" section of the ADS1158 datasheet (page 40). In addition to comments there, I would also recommend that during power up your software 1) Wait for the power supplies to settle and two apply the external clock (if applicable) and them 2) Wait for the tWAKE period to complete before trying to communicate with the device. Other than that, your configuration above should be fine; perhaps just try reading the registers back to make sure they are programmed as you expect.

    Best regards,
    Chris