Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

ADS7953: Setup and Data read command Sequence for ADS7953

$
0
0

Part Number:ADS7953

I have referred all the threads regarding the ADS7953 on the TI forums. I have developed a code , i think the programming sequence and code is correct but it is always better to have a second pair of eyes to see whats wrong. 

Can you please check the code and confirm whether it is correct or not ? if the code is correct then i can start looking into the design and schematics for issues. I dont have a logic analyzer so its really hard to tell the origin of the issue. 

the code is attached below. All i am getting is 0 in response which means the communication is failing. 

one more question : can i just write simple commands and expect a response from ADS7953 ? without any configuration ? 

i.e : to Read channel 0

while(1)

{

CS_LOW

spi.transfer(0x10);

spi_transfer(0x80);

CS_HIGH 

CS_LOW

int data_high = spi_transfer(0x00);

int data_low = spi_transfer(0x00);

CS_HIGH

delay(2000);

}

#include <SPI.h>

SPIClass * vspi = NULL;
SPIClass * hspi = NULL;
auto ADC_CLK =  4000000;


#define mosi 14
#define miso 12
#define cs 13
#define clk 27



unsigned int cmd_1 = 0x4200;
unsigned int cmd_2 = 0x8000;
unsigned int cmd_3 = 0xFFFF;
unsigned int cmd_4 = 0x2C00;
unsigned int cmd_5 = 0x2840;
unsigned int cmd_6 = 0x0000;



void setup() {
  // put your setup code here, to run once:
  //  init_spi();
  Serial.begin(115200);
  pinMode(26, OUTPUT);
  pinMode(5, OUTPUT);
  digitalWrite(26, HIGH);
  digitalWrite(5, HIGH);
  pinMode(cs, OUTPUT);
  digitalWrite(cs,HIGH);

  hspi = new SPIClass(HSPI);

  hspi->begin(clk, miso, mosi, cs);

  delay(1000);

  ads7953_setup();

  Serial.println("Setup complete");
}

void loop() {

    ads7953_readData();

  delay(1000);
}



void ads7953_setup()
{
  digitalWrite(cs, HIGH);
  delay(5);

  /* Reset Command */

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_1);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_2);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_3);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_4);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_5);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);

  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  hspi->transfer16(cmd_6);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  delay(100);


}


void ads7953_readData()
{
  hspi->beginTransaction(SPISettings(ADC_CLK, MSBFIRST, SPI_MODE0));
  digitalWrite(cs, LOW);
  int received_data = hspi->transfer16(cmd_6);
  digitalWrite(cs, HIGH);
  hspi->endTransaction();

  Serial.print("Received Data : ");
  Serial.println(received_data);
  delay(10);
}


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>