Reading only one channel using ADS8330

Trying to read values from just a channel 0 from ADS8330 ( datasheet) using Arduino Due. I’m still new to Arduino and electronics in general so getting code right from datasheets is hard.

Here is adopted code to read two channels that works, not sure I got it perfectly right according to the datasheet though. It is meant to work in default two channel auto mode.

Below is the code I’ve compiled from this (enums) and this code. It should read just channel 0, but apparently reads both in sequence.

My understanding is the commands are meant for “MANUAL TRIGGER / READ While Sampling” scheme (p. 12) to read channel 0.
Any suggestions what is wrong with the code?

#include <SPI.h>

#define ADC_CS_PIN                2
#define ADC_CONVERSION_PIN        3
#define ADC_EOC_PIN               4

/* Command Definitions */
#define ADS8330_CMR_DEFAULT 0b1111000000000000ul /* reset to device default */
#define ADS8330_CMR_WCFR    0b1110000000000000ul /* write device commands */
#define ADS8330_CMR_RCFR    0b1100000000000000ul /* read device commands */
#define ADS8330_CMR_WAKE    0b1011000000000000ul /* wake device from nap */
#define ADS8330_CMR_RDATA   0b1101000000000000ul /* read ADC data */
#define ADS8330_CMR_CH0     0b0000000000000000ul /* select ADC channel 0 */
#define ADS8330_CMR_CH1     0b0001000000000000ul /* select ADC channel 1 */

#define ADS8330_CFR_D11     0b0000100000000000ul /* auto channel */
#define ADS8330_CFR_D10     0b0000010000000000ul /* internal conversion clock */
#define ADS8330_CFR_D9      0b0000001000000000ul /* manual conversion */
#define ADS8330_CFR_D6_7    0b0000000011000000ul /* EOC low */
#define ADS8330_CFR_D5      0b0000000000100000ul /* EOC output */
#define ADS8330_CFR_D2_3_4_MANU  0b0000000000010100ul /* power save */
#define ADS8330_CFR_D2_3_4_AUTO  0b0000000000011100ul /* power save */
#define ADS8330_CFR_D1      0b0000000000000010ul /* tag bit */
#define ADS8330_CFR_D0      0b0000000000000001ul /* device run normal/reset */

#define ADS8330_CMR_CONF_MANU    ADS8330_CMR_WCFR | ADS8330_CFR_D10 | ADS8330_CFR_D9
#define ADS8330_CMR_CONF_AUTO    ADS8330_CMR_WCFR | ADS8330_CFR_D10
#define ADS8330_CFR_CONF_MANU    ADS8330_CFR_D6_7 | ADS8330_CFR_D5 | ADS8330_CFR_D2_3_4_MANU | ADS8330_CFR_D0
#define ADS8330_CFR_CONF_AUTO    ADS8330_CFR_D6_7 | ADS8330_CFR_D5 | ADS8330_CFR_D2_3_4_AUTO | ADS8330_CFR_D0

uint16_t    adc_ch0_value;
float       adc_ch0_volts;
const float adc_referecnce_voltage = 3.3f;
const float adc_factor = adc_referecnce_voltage / UINT16_MAX;

void setup()
{  
  Serial.begin(115200);
  while (!Serial){
    delay(1);
  }
  
  SPI.setDataMode(SPI_MODE0);

  SPI.begin(ADC_CS_PIN);
  
  pinMode(ADC_CS_PIN, OUTPUT);
  pinMode(ADC_CONVERSION_PIN, OUTPUT);
  pinMode(ADC_EOC_PIN, INPUT);  

  digitalWrite(ADC_CS_PIN, HIGH);
  digitalWrite(ADC_CONVERSION_PIN, HIGH);  
  
  uint16_t command = 0;
  
  command = (ADS8330_CMR_WCFR | ADS8330_CMR_DEFAULT);
  digitalWrite(ADC_CS_PIN, LOW);
  SPI.transfer16(command);
  digitalWrite(ADC_CS_PIN, HIGH);
  
  command = (ADS8330_CMR_CONF_MANU | ADS8330_CFR_CONF_MANU);
  digitalWrite(ADC_CS_PIN, LOW);
  SPI.transfer16(command);
  digitalWrite(ADC_CS_PIN, HIGH);
  
  command = ADS8330_CMR_RCFR;
  digitalWrite(ADC_CS_PIN, LOW);
  SPI.transfer16(command);
  digitalWrite(ADC_CS_PIN, HIGH);
  
  command = ADS8330_CMR_CH0;
  digitalWrite(ADC_CS_PIN, LOW);
  SPI.transfer16(command);
  digitalWrite(ADC_CS_PIN, HIGH);
}

void loop()
{
  // READ CH0
  
  digitalWrite(ADC_CS_PIN, LOW);
  SPI.transfer16(ADS8330_CMR_CH0);
  digitalWrite(ADC_CS_PIN, HIGH);
    
  digitalWrite(ADC_CONVERSION_PIN, LOW);
  digitalWrite(ADC_CONVERSION_PIN, HIGH);
  
  while (digitalRead(ADC_EOC_PIN) == LOW);
    
  digitalWrite(ADC_CS_PIN, LOW);
  adc_ch0_value = SPI.transfer16(ADS8330_CMR_RDATA);
  digitalWrite(ADC_CS_PIN, HIGH);
  
  adc_ch0_volts = adc_ch0_value * adc_factor;
  
  // ------------------------
    
  Serial.println(adc_ch0_volts, 5);
  Serial.println();
  
  delay(10);
}