Arduino reads AD7780 24bit ADC

I don't think you are reading the bits correctly. Figure 3 in the datasheet shows that the chip starts to present the next bit when you set the clock low. The datasheet shows that the worst case settling time is 80ns, so giving it a delay of 100ms is way more than it needs :slight_smile: Figure 3 also shows that you should read the bit when you set the clock high.
Try this for loop instead of what you have:

  for(int i=0; i< 32; i++)
  {
    digitalWrite(AD7780_SCK, LOW);
    delayMicroseconds(10);
    digitalWrite(AD7780_SCK, HIGH);
    a = digitalRead(AD7780_MISO);
    Serial1.print(a);
    delayMicroseconds(10);
  }

Both delays are still longer than needed and, in particular, the second one may be unnecessary because I'm pretty sure a digitalRead takes several microseconds.

Pete