Unable to set 10KSPS Sampling frequency ADC ad7606

This code is 100% working, i am able read data from all the 8 channels.
My main requirement is i want to set a sampling rate of 10KSPS.
The sampling rate is determined by the START_CONVERSION signal.
from this code please modify and please give me to achieve a sampling rate of 10ksps.
Thanks.
@

#include <SPI.h>

uint32_t startTime, elapsedTime, old_res;
#define SCALE_FACTOR 0.000152587890625
/* D14 and D15 should be grounded if you use this ad7606 board  
 *  https://www.amazon.de/RELAND-SUN-Multi-Channel-Datenerfassungsmodul-Synchronisation/dp/B0B4HKSK8B/ref=sr_1_2?keywords=ad7606&qid=1681803018&sr=8-2
 *  i do not use oversampling in this example 
 *  i set range to the ground in this example so the range is +/-5V
*/
#define BUSY 32               // you can use any digital pin   
#define RESET 30              // you can use any digital pin  
#define START_CONVERSION 34   // you can use any digital pin    
#define CHIP_SELECT 53        // SPI CS     
#define D7_out 50             // SPI MISO there is no need to use MOSI port with the ad7606 
#define RD 52                 // SPI SCLK 
// #define RANGE 36           // you can use any digital pin 
#define TOTAL_RAW_BYTES 16
SPISettings _spiSettings;

int bytesToRead = TOTAL_RAW_BYTES;
byte raw[TOTAL_RAW_BYTES];
uint16_t parsed[8];


//--------------SETUP-UP---------------------------
void setup()
{
  initial();
  Serial.begin(2000000);
  while(!Serial){} // wait for usb connection
  SPI.begin();
}
//---------------LOOP--------------------------
void loop()
{
  startTime = micros();  
  readData();
  elapsedTime = micros() - startTime; 
  if (elapsedTime != old_res) 
  {
    Serial.print("Conversion time:\t");
    Serial.print(elapsedTime);
    Serial.println(" microseconds");
    old_res = elapsedTime;
  }  
  parseRawBytes();

  for (int i = 0; i < 8; i++) {
    Serial.print((float)parsed[i] * SCALE_FACTOR, 5);
    Serial.print(",");
  }
 
  Serial.print("\r\n");
}
//-----------------------------------------
void initial()
{
  pinMode(BUSY, INPUT);
  pinMode(RESET, OUTPUT);
  pinMode(START_CONVERSION, OUTPUT);
  pinMode(CHIP_SELECT, OUTPUT);
  pinMode(D7_out, OUTPUT);
  pinMode(RD, OUTPUT);
  digitalWrite(START_CONVERSION, HIGH);
  digitalWrite(CHIP_SELECT, HIGH);
  reset(RESET);
}
//-----------------------------------------
void parseRawBytes() {
  for(int i = 0; i<(sizeof(parsed) / sizeof(int));i++)
    {
      parsed[i] = (raw[i*2] << 8) + raw[(i*2)+1];
    }
}
//-----------------------------------------
/*reset signal*/
void reset(uint8_t port)
{
  digitalWrite(port, HIGH);
 // delayMicroseconds(1);
  digitalWrite(port, LOW);
//  delayMicroseconds(1);
}
//-----------------------------------------
void conversionPulse(uint8_t port)
{
  digitalWrite(port, LOW);
//  delayMicroseconds(1);
  digitalWrite(port, HIGH);  
}
//-----------------------------------------
/*
1- start conversion START_CONVERSION HIGH
2- wait until the busy is LOW again 
3- put the CS to LOW
4- Read a byte from the SPI 
*/
void readData()
{
  conversionPulse(START_CONVERSION);
  while (digitalRead(BUSY) == HIGH) {
  //  delayMicroseconds(1);
  }
  SPI.beginTransaction(_spiSettings);
  digitalWrite(CHIP_SELECT, LOW);
  while (bytesToRead > 0) {
    raw[TOTAL_RAW_BYTES - bytesToRead] = SPI.transfer(0x00);
    bytesToRead--;
  }
  digitalWrite(CHIP_SELECT, HIGH);
  SPI.endTransaction();

  bytesToRead = TOTAL_RAW_BYTES;
}
//-----------------------------------------
/*
  0 +/-  5V
  1 +/- 10V
*/
void setRange(bool range)
{
  pinMode(RANGE, OUTPUT);
  digitalWrite(RANGE,range);
}
//-----------------------------------------
/*OS2 OS1 OS0
oversampling
000 No oversampling Maximum sampling rate is 200KSPS
001  2 times        100 KSPS
010  4 times        50 KSPS
011  8 times        25 KSPS
100 16 times        12.5 KSPS
101 32 times        6.25 KSPS
110 64 times        3.125 KSPS
*/
void setOversampling(uint8_t OS0,uint8_t OS1,uint8_t OS2){
  pinMode(_OS0,OUTPUT);
  pinMode(_OS1,OUTPUT);
  pinMode(_OS2,OUTPUT);
  digitalWrite(_OS0,bitRead(B001,OS0));
  digitalWrite(_OS1,bitRead(B010,OS1));
  digitalWrite(_OS2,bitRead(B100,OS2));
}

Hello there. May I ask how do you get to read data from all 8 channels? I could only get the first 4 channels, with reading hovering at 1.8V (without connecting to any voltage), and the channels from 5 to 8, all were reading at 0.00000.

Can you post a complete annotated schematic, what you posted is missing a lot of information. The information given indicates to me you need to process more then 1,280,000 bits a second with a 16 MHz, 8 Bit processor. Where are you going to store the intermediate data and what processing are you going to do. I expect you will run out of resources before you reach speed.