Hii,
I am using ADS8694,
When i am going to communicate this IC with Arduino, communication is happening but
when i am going to acquire the data , i am not able to get the correct data. below data is getting when i am giving 1v as input to the channel_0
below attached file is arduino code.
#include <SPI.h>
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#define cs_pin 7
void setup() {
Serial.begin(9600);
SPI.begin();
SPI.setDataMode(SPI_MODE1);
pinMode(cs_pin, OUTPUT); //cs
digitalWrite(cs_pin,HIGH); //cs
delay(1000);
digitalWrite(cs_pin,LOW);
SPI.transfer(0x03);
SPI.transfer(0x01);
digitalWrite(cs_pin,HIGH);
///// Range select register //////////
digitalWrite(cs_pin,LOW);
SPI.transfer(0x05);
SPI.transfer(0x06);
digitalWrite(cs_pin,HIGH);
////// Manual channel slelction ///////
digitalWrite(cs_pin,LOW);
SPI.transfer(0xC0);
SPI.transfer(0x00);
//digitalWrite(cs_pin,HIGH);
//digitalWrite(cs_pin,LOW);
//SPI.transfer(0x00);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
digitalWrite(cs_pin,HIGH);
digitalWrite(cs_pin,LOW);
SPI.transfer(0x00);
SPI.transfer(0x00);
Serial.println(SPI.transfer(0xFF));
Serial.println(SPI.transfer(0xFF));
Serial.println(SPI.transfer(0xFF));
digitalWrite(cs_pin,HIGH);
}
void loop() {
uint32_t adc = 0;
delay(1);
digitalWrite(cs_pin,LOW);
SPI.transfer(0x00);
SPI.transfer(0x00);
adc |= SPI.transfer(0xFF) << 10;
adc |= SPI.transfer(0xFF) << 2;
adc |= SPI.transfer(0xFF);
Serial.println(adc);
digitalWrite(cs_pin,HIGH);
delay(1000);
}
Thanks & Regards,