Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

ADS1292R : ADS1292 SPI communication dosen't work at all.

Part Number: ADS1292R

Hi, I'm a korean beginner developer, so please understand that I'm not good at using Eng.

I'm developing ECG kit for Arduino with ADS1292R for 4 wks. but I have a problem now.

The problem is that SPI communication dosen't work at all even SDATAC at first. and I don't know the reason hardware or software....

I have been double checked my Hardware twice, but there is no short circuit.

Here's how I found out that SPI communication is not working:

Test1.[>>> issue reset squence > toggle START pin High > check DRDY change continuously High-Low (with oscilloscope) > toggle START pin Low > issue SDATAC to stop read data continuously mode >  toggle START pin High again > check DRDY stay always Low  DRDY still change continuous High-Low  (I guessed that DRDY stay low if Read data continuous mode was stopped by SDATAC command)]

Did anyone experience the same problem? Do you have any troubleshooting suggestions?

Can you find the cause for this on the below code, SPI configuration or schematics that I am using?

//~~~~~~~~~~~~~~~//

#include <SPI.h>

//~~skip about register and commands definition~~//


void send_Command(int cmd){


digitalWrite(PIN_CS, LOW);
delayMicroseconds(1);
SPI.transfer(cmd);
delayMicroseconds(6);
digitalWrite(PIN_CS, HIGH);
delayMicroseconds(5);


}

void init_Pins() {

pinMode(SCLK, OUTPUT);//pin13
pinMode(DIN, OUTPUT);//MOSIpin11
pinMode(DOUT, INPUT);//MISOpin12
pinMode(PIN_CS, OUTPUT);//pin10
pinMode(PIN_RESET, OUTPUT);//pin7
pinMode(PIN_START, OUTPUT);//pin8
pinMode(PIN_DRDY, INPUT);//pin9

digitalWrite(PIN_CS, HIGH);
digitalWrite(PIN_START, LOW);
delay(1);

}


void init_Serial() {

Serial.begin(9600);
Serial.flush();
delayMicroseconds(100);

}

 

void init_SPI() {


SPI.begin();
SPI.setDataMode(SPI_MODE1);
SPI.setClockDivider(SPI_CLOCK_DIV16);
SPI.setBitOrder(MSBFIRST);


}

void init_ads() {


digitalWrite(PIN_RESET, HIGH);
delay(1000);
digitalWrite(PIN_RESET, LOW);
delay(1000);
digitalWrite(PIN_RESET, HIGH);
delay(100);// Issue Reset Pulse

digitalWrite(PIN_CS, LOW);
delay(1000);
digitalWrite(PIN_CS, HIGH);
delay(500);// Reset communication

send_Command(SDATAC);
digitalWrite(PIN_START, HIGH);

}


void setup() {


delay(3000);
init_Pins();
init_Serial();
init_SPI();
init_ads();


}

void loop() {

}

//~~~~~~~~~~~~~~~//

and all the ADS1292R register is default (because I can't communicate by SPI at all)

Schematic

3V3 provided from Arduino 3.3V.

1.8k:3.3k Logic converter.

I'm studying alone, so I don't have any person who can confirm my design...

even i knew that DVDD and AVDD or DGND and AGND must be separated, after order PCB...

Yellow: DIN(0x0A: SDATAC)

Blue: SCLK

CS(LOW) during transaction

DRDY

please help me....

thanks