I've connected the AD7705 as per datasheet:
Vdd ->3.3v
Vref+ ->1.25v
Vref- ->gnd
4.9152Mhz crystal with 47pf capacitors.
Input at channel 2:
using a pot->10k
1.2v > Ain2+ > gnd
Ain2- -> gnd
Nodemcu code is:
#include <SPI.h>
unsigned int data;
uint8_t data1,data2;
//unsigned char drdy=1;
void setup() {
// put your setup code here, to run once:
pinMode(D0,INPUT);
Serial.begin(9600);
Serial.println("Starting SPI communication");
SPI.begin();
SPI.setBitOrder(MSBFIRST);
//SPI.setDataMode(SPI_MODE2);
//SPI.setFrequency(100000);
SPI.transfer(0x21);//ch2 21
SPI.transfer(0x0C);
SPI.transfer(0x11);//ch2 11
SPI.transfer(0x40); //self calibration,gain 1, uni polar mode
Serial.println("GOING Inside Loop:");
}
void loop() {
delay(1000);
SPI.transfer(0x39);//ch2 39
while(digitalRead(D0)==HIGH);
data=SPI.transfer(0x00);
data=data<<8;
data|=SPI.transfer(0x00);
Serial.println(data);
}
Problem:
Every time after entering certain data, I am getting a constant 0 or some arbitrary constant value.