AD7705 NodeMcu(arduino) SPI Output Data freezes

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.