This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP-EXP432E401Y: Entering an infinite loop in a code 'startup_msp432e401y_ccs.c'.

Part Number: MSP-EXP432E401Y
Other Parts Discussed in Thread: ADS131M08

Tool/software:

Hi,

I am checking a code to integrate ADS131M08 ADC, with the launchpad. The code is below.

#include <stdint.h>
#include <stdbool.h>
#include "ti/devices/msp432e4/driverlib/driverlib.h"
#include "ads131m0x.h"

uint32_t systemClock;
uint16_t register_value;

#define SSI_BASE_ADDR       (SSI3_BASE)

//*****************************************************************************
//
// The error routine that is called if the driver library encounters an error.
//
//*****************************************************************************
//#ifdef DEBUG
//void
//__error__(char *pcFilename, uint32_t ui32Line)
//{
//    while(1);
//}
//#endif

//*****************************************************************************
//
// Main Function. All other functions are written down
//
//*****************************************************************************
int
main(void)
{
    InitSPI();
    adcStartup();
    return 0;
}







//*****************************************************************************
//
//! Configures the MCU's SPI peripheral, for interfacing with the ADC.
//!
//! \fn void InitSPI(void)
//!
//! \return None.
//
//*****************************************************************************
void InitSPI(void)
{
    // Enable the clock to SSI-3 module and configure the SSI Master
    //
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI3);
    while(!(MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_SSI3)))
    {
    }

    //
    // Enable clocks to GPIO Port Q and configure pins as SSI
    //
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOQ);
    while(!(MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOQ)))
    {
    }

    MAP_GPIOPinConfigure(GPIO_PQ0_SSI3CLK);
    //MAP_GPIOPinConfigure(GPIO_PA3_SSI0FSS); // Using GPIO for nCS instead of the FSS pin.
    MAP_GPIOPinConfigure(GPIO_PQ2_SSI3XDAT0);
    MAP_GPIOPinConfigure(GPIO_PQ3_SSI3XDAT1);
    MAP_GPIOPinTypeSSI(GPIO_PORTQ_BASE, (GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3));



    /* Configure the system clock for 120 MHz */
    systemClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN |
                                              SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480),
                                              120000000);
    // Configure: SPI MODE 1, 5 MHz SCLK, 8-bits per frame
    MAP_SSIConfigSetExpClk(SSI_BASE_ADDR, systemClock, SSI_FRF_MOTO_MODE_1,   \
                           SSI_MODE_MASTER, (systemClock/24), 8);
    //MAP_SSIEnable(SSI_BASE_ADDR);

    //
    // Enable the SSI2 module.
    //
    SSIEnable(SSI_BASE_ADDR);
    SSIAdvModeSet(SSI_BASE_ADDR, SSI_ADV_MODE_READ_WRITE);
    SSIAdvFrameHoldDisable(SSI_BASE_ADDR);

    //
    // Read any residual data from the SSI port.  This makes sure the receive
    // FIFOs are empty, so we don't read any unwanted junk.  This is done here
    // because the SPI SSI mode is full-duplex, which allows you to send and
    // receive at the same time.  The SSIDataGetNonBlocking function returns
    // "true" when data was returned, and "false" when no data was returned.
    // The "non-blocking" function checks if there is any data in the receive
    // FIFO and does not "hang" if there isn't.
    //
    uint32_t junk;
    while(MAP_SSIDataGetNonBlocking(SSI_BASE_ADDR, &junk));
}


//*****************************************************************************
//
//! Start up sequence for the ADS131M0x.
//!
//! \fn void adcStartup(void)
//!
//! Before calling this function, the device must be powered,
//! the SPI/GPIO pins of the MCU must have already been configured,
//! and (if applicable) the external clock source should be provided to CLKIN.
//!
//! \return None.
//
//*****************************************************************************
void adcStartup(void)
{
    /* (OPTIONAL) Provide additional delay time for power supply settling */
    delay_ms(100);

    /* (REQUIRED) Set nRESET pin high for ADC operation */
    setSYNC_RESET(HIGH);
    delay_ms(20);

    /* (OPTIONAL) Toggle nRESET pin to ensure default register settings. */
    /* NOTE: This also ensures that the device registers are unlocked.   */
    toggleRESET();
    delay_ms(20);

    /* (REQUIRED) Initialize internal 'registerMap' array with device default settings */
    restoreRegisterDefaults();

    /* (OPTIONAL) Validate first response word when beginning SPI communication: (0xFF20 | CHANCNT) */
    //uint16_t response = sendCommand(OPCODE_NULL);

    /* (OPTIONAL) Define your initial register settings here */
    //writeSingleRegister(CLOCK_ADDRESS, (CLOCK_DEFAULT & ~CLOCK_OSR_MASK) | CLOCK_OSR_256);

    /* (REQUIRED) Configure MODE register settings
     * NOTE: This function call is required here for this particular code implementation to work.
     * This function will enforce the MODE register settings as selected in the 'ads131m0x.h' header file.
     */
    writeSingleRegister(MODE_ADDRESS, MODE_DEFAULT);

    /* (OPTIONAL) Read back all registers */

    /* (OPTIONAL) Check STATUS register for faults */
}




//*****************************************************************************
//
//! Provides a timing delay with 'ms' resolution.
//!
//! \fn void delay_ms(const uint32_t delay_time_ms)
//!
//! \param delay_time_ms is the number of milliseconds to delay.
//!
//! \return None.
//
//*****************************************************************************
void delay_ms(const uint32_t delay_time_ms)
{
    const uint32_t cycles_per_loop = 3;
    MAP_SysCtlDelay( delay_time_ms * systemClock / (cycles_per_loop * 1000u) );
}


//*****************************************************************************
//
//! Controls the state of the nSYNC/nRESET GPIO pin.
//!
//! \fn void setSYNC_RESET(const bool state)
//!
//! \param state boolean indicating which state to set the nSYNC/nRESET pin (0=low, 1=high)
//!
//! NOTE: The 'HIGH' and 'LOW' macros defined in hal.h can be passed to this
//! function for the 'state' parameter value.
//!
//! \return None.
//
//*****************************************************************************
void setSYNC_RESET(const bool state)
{
    uint8_t value = (uint8_t) (state ? nSYNC_nRESET_PIN : 0);
    MAP_GPIOPinWrite(nSYNC_nRESET_PORT, nSYNC_nRESET_PIN, value);
}


//*****************************************************************************
//
//! Toggles the "nSYNC/nRESET" pin to trigger a reset
//! (LOW, delay 2 ms, then HIGH).
//!
//! \fn void toggleRESET(void)
//!
//! \return None.
//
//*****************************************************************************
void toggleRESET(void)
{
    MAP_GPIOPinWrite(nSYNC_nRESET_PORT, nSYNC_nRESET_PIN, 0);

    // Minimum /RESET pulse width (tSRLRST) equals 2,048 CLKIN periods (1 ms @ 2.048 MHz)
    delay_ms(20);
    delay_ms(20);
    MAP_GPIOPinWrite(nSYNC_nRESET_PORT, nSYNC_nRESET_PIN, nSYNC_nRESET_PIN);

    // tREGACQ delay before communicating with the device again
    delay_ms(20);

    // NOTE: The ADS131M0x's next response word should be (0xFF20 | CHANCNT).
    // A different response may be an indication that the device did not reset.

    // Update register array
    //restoreRegisterDefaults();

    // Write to MODE register to enforce mode settings
    //writeSingleRegister(MODE_ADDRESS, MODE_DEFAULT);
}


//*****************************************************************************
//
//! Updates the registerMap[] array to its default values.
//!
//! \fn void restoreRegisterDefaults(void)
//!
//! NOTES:
//! - If the MCU keeps a copy of the ADS131M0x register settings in memory,
//! then it is important to ensure that these values remain in sync with the
//! actual hardware settings. In order to help facilitate this, this function
//! should be called after powering up or resetting the device (either by
//! hardware pin control or SPI software command).
//!
//! - Reading back all of the registers after resetting the device can
//! accomplish the same result; however, this might be problematic if the
//! device was previously in CRC mode or the WLENGTH was modified, since
//! resetting the device exits these modes. If the MCU is not aware of this
//! mode change, then read register commands will return invalid data due to
//! the expectation of data appearing in a different byte position.
//!
//! \return None.
//
//*****************************************************************************
void restoreRegisterDefaults(void)
{
    registerMap[ID_ADDRESS]             =   0x00;               /* NOTE: This a read-only register */
    registerMap[STATUS_ADDRESS]         =   STATUS_DEFAULT;
    registerMap[MODE_ADDRESS]           =   MODE_DEFAULT;
    registerMap[CLOCK_ADDRESS]          =   CLOCK_DEFAULT;
    registerMap[GAIN1_ADDRESS]          =   GAIN1_DEFAULT;
    registerMap[GAIN2_ADDRESS]          =   GAIN2_DEFAULT;
    registerMap[CFG_ADDRESS]            =   CFG_DEFAULT;
    registerMap[THRSHLD_MSB_ADDRESS]    =   THRSHLD_MSB_DEFAULT;
    registerMap[THRSHLD_LSB_ADDRESS]    =   THRSHLD_LSB_DEFAULT;
    registerMap[CH0_CFG_ADDRESS]        =   CH0_CFG_DEFAULT;
    registerMap[CH0_OCAL_MSB_ADDRESS]   =   CH0_OCAL_MSB_DEFAULT;
    registerMap[CH0_OCAL_LSB_ADDRESS]   =   CH0_OCAL_LSB_DEFAULT;
    registerMap[CH0_GCAL_MSB_ADDRESS]   =   CH0_GCAL_MSB_DEFAULT;
    registerMap[CH0_GCAL_LSB_ADDRESS]   =   CH0_GCAL_LSB_DEFAULT;
#if (CHANNEL_COUNT > 1)
    registerMap[CH1_CFG_ADDRESS]        =   CH1_CFG_DEFAULT;
    registerMap[CH1_OCAL_MSB_ADDRESS]   =   CH1_OCAL_MSB_DEFAULT;
    registerMap[CH1_OCAL_LSB_ADDRESS]   =   CH1_OCAL_LSB_DEFAULT;
    registerMap[CH1_GCAL_MSB_ADDRESS]   =   CH1_GCAL_MSB_DEFAULT;
    registerMap[CH1_GCAL_LSB_ADDRESS]   =   CH1_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 2)
    registerMap[CH2_CFG_ADDRESS]        =   CH2_CFG_DEFAULT;
    registerMap[CH2_OCAL_MSB_ADDRESS]   =   CH2_OCAL_MSB_DEFAULT;
    registerMap[CH2_OCAL_LSB_ADDRESS]   =   CH2_OCAL_LSB_DEFAULT;
    registerMap[CH2_GCAL_MSB_ADDRESS]   =   CH2_GCAL_MSB_DEFAULT;
    registerMap[CH2_GCAL_LSB_ADDRESS]   =   CH2_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 3)
    registerMap[CH3_CFG_ADDRESS]        =   CH3_CFG_DEFAULT;
    registerMap[CH3_OCAL_MSB_ADDRESS]   =   CH3_OCAL_MSB_DEFAULT;
    registerMap[CH3_OCAL_LSB_ADDRESS]   =   CH3_OCAL_LSB_DEFAULT;
    registerMap[CH3_GCAL_MSB_ADDRESS]   =   CH3_GCAL_MSB_DEFAULT;
    registerMap[CH3_GCAL_LSB_ADDRESS]   =   CH3_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 4)
    registerMap[CH4_CFG_ADDRESS]        =   CH4_CFG_DEFAULT;
    registerMap[CH4_OCAL_MSB_ADDRESS]   =   CH4_OCAL_MSB_DEFAULT;
    registerMap[CH4_OCAL_LSB_ADDRESS]   =   CH4_OCAL_LSB_DEFAULT;
    registerMap[CH4_GCAL_MSB_ADDRESS]   =   CH4_GCAL_MSB_DEFAULT;
    registerMap[CH4_GCAL_LSB_ADDRESS]   =   CH4_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 5)
    registerMap[CH5_CFG_ADDRESS]        =   CH5_CFG_DEFAULT;
    registerMap[CH5_OCAL_MSB_ADDRESS]   =   CH5_OCAL_MSB_DEFAULT;
    registerMap[CH5_OCAL_LSB_ADDRESS]   =   CH5_OCAL_LSB_DEFAULT;
    registerMap[CH5_GCAL_MSB_ADDRESS]   =   CH5_GCAL_MSB_DEFAULT;
    registerMap[CH5_GCAL_LSB_ADDRESS]   =   CH5_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 6)
    registerMap[CH6_CFG_ADDRESS]        =   CH6_CFG_DEFAULT;
    registerMap[CH6_OCAL_MSB_ADDRESS]   =   CH6_OCAL_MSB_DEFAULT;
    registerMap[CH6_OCAL_LSB_ADDRESS]   =   CH6_OCAL_LSB_DEFAULT;
    registerMap[CH6_GCAL_MSB_ADDRESS]   =   CH6_GCAL_MSB_DEFAULT;
    registerMap[CH6_GCAL_LSB_ADDRESS]   =   CH6_GCAL_LSB_DEFAULT;
#endif
#if (CHANNEL_COUNT > 7)
    registerMap[CH7_CFG_ADDRESS]        =   CH7_CFG_DEFAULT;
    registerMap[CH7_OCAL_MSB_ADDRESS]   =   CH7_OCAL_MSB_DEFAULT;
    registerMap[CH7_OCAL_LSB_ADDRESS]   =   CH7_OCAL_LSB_DEFAULT;
    registerMap[CH7_GCAL_MSB_ADDRESS]   =   CH7_GCAL_MSB_DEFAULT;
    registerMap[CH7_GCAL_LSB_ADDRESS]   =   CH7_GCAL_LSB_DEFAULT;
#endif
    registerMap[REGMAP_CRC_ADDRESS]     =   REGMAP_CRC_DEFAULT;
}


//*****************************************************************************
//
//! Writes data to a single register.
//!
//! \fn void writeSingleRegister(uint8_t address, uint16_t data)
//!
//! \param address is the address of the register to write to.
//! \param data is the value to write.
//!
//! This command will be ignored if device registers are locked.
//!
//! \return None.
//
//*****************************************************************************
void writeSingleRegister(uint8_t address, uint16_t data)
{
    /* Check that the register address is in range */
    assert(address < NUM_REGISTERS);

    // (OPTIONAL) Enforce certain register field values when
    // writing to the MODE register to fix the operation mode
    if (MODE_ADDRESS == address)
    {
        data = enforce_selected_device_modes(data);
    }

    // Build TX and RX byte array
#ifdef ENABLE_CRC_IN
    uint8_t dataTx[12] = { 0 };     // 3 words, up to 4 bytes each = 12 bytes maximum
    uint8_t dataRx[12] = { 0 };
#else
    uint8_t dataTx[8] = { 0 };      // 2 words, up to 4 bytes long = 8 bytes maximum
    uint8_t dataRx[8] = { 0 };
#endif
    uint16_t opcodes[2];
    opcodes[0] = OPCODE_WREG | (((uint16_t) address) << 7);
    opcodes[1] = data;
    uint8_t numberOfBytes = buildSPIarray(&opcodes[0], 2, dataTx);

    // Send command
    spiSendReceiveArrays(dataTx, dataRx, numberOfBytes);

    // Update internal array
    registerMap[address] = data;

    // (RECOMMENDED) Read back register to confirm register write was successful
    register_value = readSingleRegister(address);

    // NOTE: Enabling the CRC words in the SPI command will NOT prevent an invalid W
}


//*****************************************************************************
//
//! Modifies MODE register data to maintain device operation according to
//! preselected mode(s) (RX_CRC_EN, WLENGTH, etc.).
//!
//! \fn uint16_t enforce_selected_device_mode(uint16_t data)
//!
//! \param data uint16_t register data.
//!
//! \return uint16_t modified register data.
//
//*****************************************************************************
uint16_t enforce_selected_device_modes(uint16_t data)
{


    ///////////////////////////////////////////////////////////////////////////
    // Enforce RX_CRC_EN setting

#ifdef ENABLE_CRC_IN
    // When writing to the MODE register, ensure RX_CRC_EN bit is ALWAYS set
    data |= MODE_RX_CRC_EN_ENABLED;
#else
    // When writing to the MODE register, ensure RX_CRC_EN bit is NEVER set
    data &= ~MODE_RX_CRC_EN_ENABLED;
#endif // ENABLE_CRC_IN


    ///////////////////////////////////////////////////////////////////////////
    // Enforce WLENGH setting

#ifdef WORD_LENGTH_24BIT
    // When writing to the MODE register, ensure WLENGTH bits are ALWAYS set to 01b
    data = (data & ~MODE_WLENGTH_MASK) | MODE_WLENGTH_24BIT;
#elif defined WORD_LENGTH_32BIT_SIGN_EXTEND
    // When writing to the MODE register, ensure WLENGH bits are ALWAYS set to 11b
    data = (data & ~MODE_WLENGTH_MASK) | MODE_WLENGTH_32BIT_MSB_SIGN_EXT;
#elif defined WORD_LENGTH_32BIT_ZERO_PADDED
    // When writing to the MODE register, ensure WLENGH bits are ALWAYS set to 10b
    data = (data & ~MODE_WLENGTH_MASK) | MODE_WLENGTH_32BIT_LSB_ZEROES;
#elif defined WORD_LENGTH_16BIT_TRUNCATED
    // When writing to the MODE register, ensure WLENGH bits are ALWAYS set to 00b
    data = (data & ~MODE_WLENGTH_MASK) | MODE_WLENGTH_16BIT;
#endif


    ///////////////////////////////////////////////////////////////////////////
    // Enforce DRDY_FMT setting

#ifdef DRDY_FMT_PULSE
    // When writing to the MODE register, ensure DRDY_FMT bit is ALWAYS set
    data = (data & ~MODE_DRDY_FMT_MASK) | MODE_DRDY_FMT_NEG_PULSE_FIXED_WIDTH;
#else
    // When writing to the MODE register, ensure DRDY_FMT bit is NEVER set
    data = (data & ~MODE_DRDY_FMT_MASK) | MODE_DRDY_FMT_LOGIC_LOW;
#endif


    ///////////////////////////////////////////////////////////////////////////
    // Enforce CRC_TYPE setting

#ifdef CRC_CCITT
    // When writing to the MODE register, ensure CRC_TYPE bit is NEVER set
    data = (data & ~STATUS_CRC_TYPE_MASK) | STATUS_CRC_TYPE_16BIT_CCITT;
#elif defined CRC_ANSI
    // When writing to the MODE register, ensure CRC_TYPE bit is ALWAYS set
    data = (data & ~STATUS_CRC_TYPE_MASK) | STATUS_CRC_TYPE_16BIT_ANSI;
#endif

    // Return modified register data
    return data;
}


//*****************************************************************************
//
//! Builds SPI TX data arrays according to number of opcodes provided and
//! currently programmed device word length.
//!
//! \fn uint8_t buildSPIarray(const uint16_t opcodeArray[], uint8_t numberOpcodes, uint8_t byteArray[])
//!
//! \param opcodeArray[] pointer to an array of 16-bit opcodes to use in the SPI command.
//! \param numberOpcodes the number of opcodes provided in opcodeArray[].
//! \param byteArray[] pointer to an array of 8-bit SPI bytes to send to the device.
//!
//! NOTE: The calling function must ensure it reserves sufficient memory for byteArray[]!
//!
//! \return number of bytes added to byteArray[].
//
//*****************************************************************************
uint8_t buildSPIarray(const uint16_t opcodeArray[], uint8_t numberOpcodes, uint8_t byteArray[])
{
    /*
     * Frame size = opcode word(s) + optional CRC word
     * Number of bytes per word = 2, 3, or 4
     * Total bytes = bytes per word * number of words
     */
    uint8_t numberWords     = numberOpcodes + (SPI_CRC_ENABLED ? 1 : 0);
    uint8_t bytesPerWord    = getWordByteLength();
    uint8_t numberOfBytes   = numberWords * bytesPerWord;

    int i;
    for (i = 0; i < numberOpcodes; i++)
    {
        // NOTE: Be careful not to accidentally overflow the array here.
        // The array and opcodes are defined in the calling function, so
        // we are trusting that no mistakes were made in the calling function!
        byteArray[(i*bytesPerWord) + 0] = upperByte(opcodeArray[i]);
        byteArray[(i*bytesPerWord) + 1] = lowerByte(opcodeArray[i]);
    }

#ifdef ENABLE_CRC_IN
    // Calculate CRC and put it into TX array
    uint16_t crcWord = calculateCRC(&byteArray[0], numberOfBytes, 0xFFFF);
    byteArray[(i*bytesPerWord) + 0] = upperByte(crcWord);
    byteArray[(i*bytesPerWord) + 1] = lowerByte(crcWord);
#endif

    return numberOfBytes;
}

//*****************************************************************************
//
//! Getter function to access registerMap array from outside of this module.
//!
//! \fn uint16_t getRegisterValue(uint8_t address)
//!
//! NOTE: The internal registerMap arrays stores the last know register value,
//! since the last read or write operation to that register. This function
//! does not communicate with the device to retrieve the current register value.
//! For the most up-to-date register data or retrieving the value of a hardware
//! controlled register, it is recommend to use readSingleRegister() to read the
//! current register value.
//!
//! \return unsigned 16-bit register value.
//
//*****************************************************************************
uint16_t getRegisterValue(uint8_t address)
{
    assert(address < NUM_REGISTERS);
    return registerMap[address];
}

//*****************************************************************************
//
//! Returns the ADS131M0x configured word length used for SPI communication.
//!
//! \fn uint8_t getWordByteLength(void)
//!
//! NOTE: It is important that the MODE register value stored in registerMap[]
//! remains in sync with the device. If these values get out of sync then SPI
//! communication may fail!
//!
//! \return SPI word byte length (2, 3, or 4)
//
//*****************************************************************************
uint8_t getWordByteLength(void)
{
    return wlength_byte_values[WLENGTH];
}

//****************************************************************************
//
// Helper functions
//
//****************************************************************************


//*****************************************************************************
//
//! Takes a 16-bit word and returns the most-significant byte.
//!
//! \fn uint8_t upperByte(uint16_t uint16_Word)
//!
//! \param temp_word is the original 16-bit word.
//!
//! \return 8-bit most-significant byte.
//
//*****************************************************************************
uint8_t upperByte(uint16_t uint16_Word)
{
    uint8_t msByte;
    msByte = (uint8_t) ((uint16_Word >> 8) & 0x00FF);

    return msByte;
}



//*****************************************************************************
//
//! Takes a 16-bit word and returns the least-significant byte.
//!
//! \fn uint8_t lowerByte(uint16_t uint16_Word)
//!
//! \param temp_word is the original 16-bit word.
//!
//! \return 8-bit least-significant byte.
//
//*****************************************************************************
uint8_t lowerByte(uint16_t uint16_Word)
{
    uint8_t lsByte;
    lsByte = (uint8_t) (uint16_Word & 0x00FF);

    return lsByte;
}

//*****************************************************************************
//
//! Takes two 8-bit words and returns a concatenated 16-bit word.
//!
//! \fn uint16_t combineBytes(uint8_t upperByte, uint8_t lowerByte)
//!
//! \param upperByte is the 8-bit value that will become the MSB of the 16-bit word.
//! \param lowerByte is the 8-bit value that will become the LSB of the 16-bit word.
//!
//! \return concatenated 16-bit word.
//
//*****************************************************************************
uint16_t combineBytes(uint8_t upperByte, uint8_t lowerByte)
{
    uint16_t combinedValue;
    combinedValue = ((uint16_t) upperByte << 8) | ((uint16_t) lowerByte);

    return combinedValue;
}


//*****************************************************************************
//
//! Sends SPI byte array on MOSI pin and captures MISO data to a byte array.
//!
//! \fn void spiSendReceiveArrays(const uint8_t dataTx[], uint8_t dataRx[], const uint8_t byteLength)
//!
//! \param const uint8_t dataTx[] byte array of SPI data to send on MOSI.
//!
//! \param uint8_t dataRx[] byte array of SPI data captured on MISO.
//!
//! \param uint8_t byteLength number of bytes to send & receive.
//!
//! NOTE: Make sure 'dataTx[]' and 'dataRx[]' contain at least as many bytes of data,
//! as indicated by 'byteLength'.
//!
//! \return None.
//
//*****************************************************************************
void spiSendReceiveArrays(const uint8_t dataTx[], uint8_t dataRx[], const uint8_t byteLength)
{
    /*
     *
     *  This function should send and receive multiple bytes over the SPI.
     *
     *  A typical SPI send/receive sequence may look like the following:
     *  1) Make sure SPI receive buffer is empty
     *  2) Set the /CS pin low (if controlled by GPIO)
     *  3) Send command bytes to SPI transmit buffer
     *  4) Wait for SPI receive interrupt
     *  5) Retrieve data from SPI receive buffer
     *  6) Set the /CS pin high (if controlled by GPIO)
     */

    // Require that dataTx and dataRx are not NULL pointers
    assert(dataTx && dataRx);

    // Set the nCS pin LOW
    setCS(LOW);

    // Send all dataTx[] bytes on MOSI, and capture all MISO bytes in dataRx[]
    int i;
    for (i = 0; i < byteLength; i++)
    {
        dataRx[i] = spiSendReceiveByte(dataTx[i]);
    }

    // Set the nCS pin HIGH
    setCS(HIGH);
}

//*****************************************************************************
//
//! Controls the state of the /CS GPIO pin.
//!
//! \fn void setCS(const bool state)
//!
//! \param state boolean indicating which state to set the /CS pin (0=low, 1=high)
//!
//! NOTE: The 'HIGH' and 'LOW' macros defined in hal.h can be passed to this
//! function for the 'state' parameter value.
//!
//! \return None.
//
//*****************************************************************************
void setCS(const bool state)
{
    // td(CSSC) delay
    if(state) { SysCtlDelay(2); }

    uint8_t value = (uint8_t) (state ? nCS_PIN : 0);
    MAP_GPIOPinWrite(nCS_PORT, nCS_PIN, value);

    // td(SCCS) delay
    if(!state) { SysCtlDelay(2); }
}

//*****************************************************************************
//
//! Sends SPI byte on MOSI pin and captures MISO return byte value.
//!
//! \fn uint8_t spiSendReceiveByte(const uint8_t dataTx)
//!
//! \param const uint8_t dataTx data byte to send on MOSI pin.
//!
//! NOTE: This function is called by spiSendReceiveArrays(). If it is called
//! directly, then the /CS pin must also be directly controlled.
//!
//! \return Captured MISO response byte.
//
//*****************************************************************************
uint8_t spiSendReceiveByte(const uint8_t dataTx)
{
    /*
     *  This function should send and receive single bytes over the SPI.
     *  NOTE: This function does not control the /CS pin to allow for
     *  more programming flexibility.
     */

    // Remove any residual or old data from the receive FIFO
    uint32_t junk;
    while (SSIDataGetNonBlocking(SSI_BASE_ADDR, &junk));

    // SSI TX & RX
    uint8_t dataRx;
    MAP_SSIDataPut(SSI_BASE_ADDR, (uint32_t) dataTx);
    MAP_SSIDataGet(SSI_BASE_ADDR, (uint32_t *) &dataRx);

    return dataRx;
}

//*****************************************************************************
//
//! Reads the contents of a single register at the specified address.
//!
//! \fn uint16_t readSingleRegister(uint8_t address)
//!
//! \param address is the 8-bit address of the register to read.
//!
//! \return Returns the 8-bit register read result.
//
//*****************************************************************************
uint16_t readSingleRegister(uint8_t address)
{
    /* Check that the register address is in range */
    assert(address < NUM_REGISTERS);

// Build TX and RX byte array
#ifdef ENABLE_CRC_IN
    uint8_t dataTx[8] = { 0 };      // 2 words, up to 4 bytes each = 8 bytes maximum
    uint8_t dataRx[8] = { 0 };
#else
    uint8_t dataTx[4] = { 0 };      // 1 word, up to 4 bytes long = 4 bytes maximum
    uint8_t dataRx[4] = { 0 };
#endif
    uint16_t opcode = OPCODE_RREG | (((uint16_t) address) << 7);
    uint8_t numberOfBytes = buildSPIarray(&opcode, 1, dataTx);

    // [FRAME 1] Send RREG command
    spiSendReceiveArrays(dataTx, dataRx, numberOfBytes);

    // [FRAME 2] Send NULL command to retrieve the register data
    registerMap[address] = sendCommand(OPCODE_NULL);

    return registerMap[address];
}

//*****************************************************************************
//
//! Sends the specified SPI command to the ADC (NULL, STANDBY, or WAKEUP).
//!
//! \fn uint16_t sendCommand(uint16_t opcode)
//!
//! \param opcode SPI command byte.
//!
//! NOTE: Other commands have their own dedicated functions to support
//! additional functionality.
//!
//! \return ADC response byte (typically the STATUS byte).
//
//*****************************************************************************
uint16_t sendCommand(uint16_t opcode)
{
    /* Assert if this function is used to send any of the following opcodes */
    assert(OPCODE_RREG != opcode);      /* Use "readSingleRegister()"   */
    assert(OPCODE_WREG != opcode);      /* Use "writeSingleRegister()"  */
    assert(OPCODE_LOCK != opcode);      /* Use "lockRegisters()"        */
    assert(OPCODE_UNLOCK != opcode);    /* Use "unlockRegisters()"      */
    assert(OPCODE_RESET != opcode);     /* Use "resetDevice()"          */

    // Build TX and RX byte array
#ifdef ENABLE_CRC_IN
    uint8_t dataTx[8] = { 0 };      // 2 words, up to 4 bytes each = 8 bytes maximum
    uint8_t dataRx[8] = { 0 };
#else
    uint8_t dataTx[4] = { 0 };      // 1 word, up to 4 bytes long = 4 bytes maximum
    uint8_t dataRx[4] = { 0 };
#endif
    uint8_t numberOfBytes = buildSPIarray(&opcode, 1, dataTx);

    /* Set the nCS pin LOW */
    setCS(LOW);

    // Send the opcode (and crc word, if enabled)
    int i;
    for (i = 0; i < numberOfBytes; i++)
    {
       dataRx[i] = spiSendReceiveByte(dataTx[i]);
    }

    /* Set the nCS pin HIGH */
    setCS(HIGH);

    // Combine response bytes and return as a 16-bit word
    uint16_t adcResponse = combineBytes(dataRx[0], dataRx[1]);
    return adcResponse;
}




On line 192, stepping at it, shows the code running, but then after pausing, I see that the code gets to an infinite loop inside another code 'startup_mspe401y_ccs.c', at line 340, in the code below.

/******************************************************************************
*
* Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*  Redistributions of source code must retain the above copyright
*  notice, this list of conditions and the following disclaimer.
*
*  Redistributions in binary form must reproduce the above copyright
*  notice, this list of conditions and the following disclaimer in the
*  documentation and/or other materials provided with the
*  distribution.
*
*  Neither the name of Texas Instruments Incorporated nor the names of
*  its contributors may be used to endorse or promote products derived
*  from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
 *****************************************************************************/

#include <stdint.h>


/* External declaration for the reset handler that is to be called when the */
/* processor is started                                                     */
extern void _c_int00(void);

/* External declaration for system initialization function                  */
extern void SystemInit(void);

/* Linker variable that marks the top of the stack. */
extern uint32_t __STACK_TOP;

/* Forward declaration of the default fault handlers. */
void Default_Handler                (void) __attribute__((weak));
extern void Reset_Handler           (void) __attribute__((weak));

/* Cortex-M4 Processor Exceptions */
extern void NMI_Handler             (void) __attribute__((weak, alias("Default_Handler")));
extern void HardFault_Handler       (void) __attribute__((weak, alias("Default_Handler")));
extern void MemManage_Handler       (void) __attribute__((weak, alias("Default_Handler")));
extern void BusFault_Handler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UsageFault_Handler      (void) __attribute__((weak, alias("Default_Handler")));
extern void SVC_Handler             (void) __attribute__((weak, alias("Default_Handler")));
extern void DebugMon_Handler        (void) __attribute__((weak, alias("Default_Handler")));
extern void PendSV_Handler          (void) __attribute__((weak, alias("Default_Handler")));
extern void SysTick_Handler         (void) __attribute__((weak, alias("Default_Handler")));

/* device specific interrupt handler */
extern void GPIOA_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOB_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOC_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOD_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOE_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART0_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART1_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void SSI0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void PWM0_FAULT_IRQHandler   (void) __attribute__((weak, alias("Default_Handler")));
extern void PWM0_0_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void PWM0_1_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void PWM0_2_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void QEI0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC0SS0_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC0SS1_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC0SS2_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC0SS3_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void WATCHDOG_IRQHandler     (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER0A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER0B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER1A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER1B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER2A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER2B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void COMP0_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void COMP1_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void COMP2_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void SYSCTL_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void FLASH_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOF_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOG_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOH_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART2_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void SSI1_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER3A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER3B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C1_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void CAN0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void CAN1_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void EMAC0_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void HIBERNATE_IRQHandler    (void) __attribute__((weak, alias("Default_Handler")));
extern void USB0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void PWM0_3_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void UDMA_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void UDMAERR_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC1SS0_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC1SS1_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC1SS2_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void ADC1SS3_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void EPI0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOJ_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOK_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOL_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void SSI2_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void SSI3_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void UART3_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART4_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART5_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART6_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void UART7_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C2_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C3_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER4A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER4B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER5A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER5B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void SYSEXC_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C4_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C5_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOM_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void GPION_IRQHandler        (void) __attribute__((weak, alias("Default_Handler")));
extern void TAMPER0_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP0_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP1_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP2_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP3_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP4_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP5_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP6_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOP7_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ0_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ1_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ2_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ3_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ4_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ5_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ6_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void GPIOQ7_IRQHandler       (void) __attribute__((weak, alias("Default_Handler")));
extern void SHA0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void AES0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void DES0_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER6A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER6B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER7A_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void TIMER7B_IRQHandler      (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C6_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C7_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C8_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));
extern void I2C9_IRQHandler         (void) __attribute__((weak, alias("Default_Handler")));

/* Interrupt vector table.  Note that the proper constructs must be placed on this to */
/* ensure that it ends up at physical address 0x0000.0000 or at the start of          */
/* the program if located at a start address other than 0.                            */
#ifdef __TI_ARM__
	#pragma RETAIN(interruptVectors)
	#pragma DATA_SECTION(interruptVectors, ".intvecs")
	void (* const interruptVectors[])(void) =
#elif defined(__ti_version__)
	void (* const interruptVectors[])(void)  __attribute((used)) __attribute__((section (".intvecs"))) =
#else
	#error "Compiler is not supported!"
#endif
{
    (void (*)(void))((uint32_t)&__STACK_TOP),
                                            /* The initial stack pointer */
    Reset_Handler,                          /* The reset handler         */
    NMI_Handler,                            /* The NMI handler           */
    HardFault_Handler,                      /* The hard fault handler    */
    MemManage_Handler,                      /* The MPU fault handler     */
    BusFault_Handler,                       /* The bus fault handler     */
    UsageFault_Handler,                     /* The usage fault handler   */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    SVC_Handler,                            /* SVCall handler            */
    DebugMon_Handler,                       /* Debug monitor handler     */
    0,                                      /* Reserved                  */
    PendSV_Handler,                         /* The PendSV handler        */
    SysTick_Handler,                        /* The SysTick handler       */
    GPIOA_IRQHandler,                       /* GPIO Port A               */
    GPIOB_IRQHandler,                       /* GPIO Port B               */
    GPIOC_IRQHandler,                       /* GPIO Port C               */
    GPIOD_IRQHandler,                       /* GPIO Port D               */
    GPIOE_IRQHandler,                       /* GPIO Port E               */
    UART0_IRQHandler,                       /* UART0 Rx and Tx           */
    UART1_IRQHandler,                       /* UART1 Rx and Tx           */
    SSI0_IRQHandler,                        /* SSI0 Rx and Tx            */
    I2C0_IRQHandler,                        /* I2C0 Master and Slave     */
    PWM0_FAULT_IRQHandler,                  /* PWM Fault                 */
    PWM0_0_IRQHandler,                      /* PWM Generator 0           */
    PWM0_1_IRQHandler,                      /* PWM Generator 1           */
    PWM0_2_IRQHandler,                      /* PWM Generator 2           */
    QEI0_IRQHandler,                        /* Quadrature Encoder 0      */
    ADC0SS0_IRQHandler,                     /* ADC Sequence 0            */
    ADC0SS1_IRQHandler,                     /* ADC Sequence 1            */
    ADC0SS2_IRQHandler,                     /* ADC Sequence 2            */
    ADC0SS3_IRQHandler,                     /* ADC Sequence 3            */
    WATCHDOG_IRQHandler,                    /* Watchdog timer            */
    TIMER0A_IRQHandler,                     /* Timer 0 subtimer A        */
    TIMER0B_IRQHandler,                     /* Timer 0 subtimer B        */
    TIMER1A_IRQHandler,                     /* Timer 1 subtimer A        */
    TIMER1B_IRQHandler,                     /* Timer 1 subtimer B        */
    TIMER2A_IRQHandler,                     /* Timer 2 subtimer A        */
    TIMER2B_IRQHandler,                     /* Timer 2 subtimer B        */
    COMP0_IRQHandler,                       /* Analog Comparator 0       */
    COMP1_IRQHandler,                       /* Analog Comparator 1       */
    COMP2_IRQHandler,                       /* Analog Comparator 2       */
    SYSCTL_IRQHandler,                      /* System Control            */
    FLASH_IRQHandler,                       /* FLASH Control             */
    GPIOF_IRQHandler,                       /* GPIO Port F               */
    GPIOG_IRQHandler,                       /* GPIO Port G               */
    GPIOH_IRQHandler,                       /* GPIO Port H               */
    UART2_IRQHandler,                       /* UART2 Rx and Tx           */
    SSI1_IRQHandler,                        /* SSI1 Rx and Tx            */
    TIMER3A_IRQHandler,                     /* Timer 3 subtimer A        */
    TIMER3B_IRQHandler,                     /* Timer 3 subtimer B        */
    I2C1_IRQHandler,                        /* I2C1 Master and Slave     */
    CAN0_IRQHandler,                        /* CAN0                      */
    CAN1_IRQHandler,                        /* CAN1                      */
    EMAC0_IRQHandler,                       /* Ethernet                  */
    HIBERNATE_IRQHandler,                   /* Hibernate                 */
    USB0_IRQHandler,                        /* USB0                      */
    PWM0_3_IRQHandler,                      /* PWM Generator 3           */
    UDMA_IRQHandler,                        /* uDMA Software Transfer    */
    UDMAERR_IRQHandler,                     /* uDMA Error                */
    ADC1SS0_IRQHandler,                     /* ADC1 Sequence 0           */
    ADC1SS1_IRQHandler,                     /* ADC1 Sequence 1           */
    ADC1SS2_IRQHandler,                     /* ADC1 Sequence 2           */
    ADC1SS3_IRQHandler,                     /* ADC1 Sequence 3           */
    EPI0_IRQHandler,                        /* External Bus Interface 0  */
    GPIOJ_IRQHandler,                       /* GPIO Port J               */
    GPIOK_IRQHandler,                       /* GPIO Port K               */
    GPIOL_IRQHandler,                       /* GPIO Port L               */
    SSI2_IRQHandler,                        /* SSI2 Rx and Tx            */
    SSI3_IRQHandler,                        /* SSI3 Rx and Tx            */
    UART3_IRQHandler,                       /* UART3 Rx and Tx           */
    UART4_IRQHandler,                       /* UART4 Rx and Tx           */
    UART5_IRQHandler,                       /* UART5 Rx and Tx           */
    UART6_IRQHandler,                       /* UART6 Rx and Tx           */
    UART7_IRQHandler,                       /* UART7 Rx and Tx           */
    I2C2_IRQHandler,                        /* I2C2 Master and Slave     */
    I2C3_IRQHandler,                        /* I2C3 Master and Slave     */
    TIMER4A_IRQHandler,                     /* Timer 4 subtimer A        */
    TIMER4B_IRQHandler,                     /* Timer 4 subtimer B        */
    TIMER5A_IRQHandler,                     /* Timer 5 subtimer A        */
    TIMER5B_IRQHandler,                     /* Timer 5 subtimer B        */
    SYSEXC_IRQHandler,                      /* FPU                       */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    I2C4_IRQHandler,                        /* I2C4 Master and Slave     */
    I2C5_IRQHandler,                        /* I2C5 Master and Slave     */
    GPIOM_IRQHandler,                       /* GPIO Port M               */
    GPION_IRQHandler,                       /* GPIO Port N               */
    0,                                      /* Reserved                  */
    TAMPER0_IRQHandler,                     /* Tamper                    */
    GPIOP0_IRQHandler,                      /* GPIO Port P(Summary or P0)*/
    GPIOP1_IRQHandler,                      /* GPIO Port P1              */
    GPIOP2_IRQHandler,                      /* GPIO Port P2              */
    GPIOP3_IRQHandler,                      /* GPIO Port P3              */
    GPIOP4_IRQHandler,                      /* GPIO Port P4              */
    GPIOP5_IRQHandler,                      /* GPIO Port P5              */
    GPIOP6_IRQHandler,                      /* GPIO Port P6              */
    GPIOP7_IRQHandler,                      /* GPIO Port P7              */
    GPIOQ0_IRQHandler,                      /* GPIO Port Q(Summary or Q0)*/
    GPIOQ1_IRQHandler,                      /* GPIO Port Q1              */
    GPIOQ2_IRQHandler,                      /* GPIO Port Q2              */
    GPIOQ3_IRQHandler,                      /* GPIO Port Q3              */
    GPIOQ4_IRQHandler,                      /* GPIO Port Q4              */
    GPIOQ5_IRQHandler,                      /* GPIO Port Q5              */
    GPIOQ6_IRQHandler,                      /* GPIO Port Q6              */
    GPIOQ7_IRQHandler,                      /* GPIO Port Q7              */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    SHA0_IRQHandler,                        /* SHA/MD5 0                 */
    AES0_IRQHandler,                        /* AES 0                     */
    DES0_IRQHandler,                        /* DES3DES 0                 */
    0,                                      /* Reserved                  */
    TIMER6A_IRQHandler,                     /* Timer 6 subtimer A        */
    TIMER6B_IRQHandler,                     /* Timer 6 subtimer B        */
    TIMER7A_IRQHandler,                     /* Timer 7 subtimer A        */
    TIMER7B_IRQHandler,                     /* Timer 7 subtimer B        */
    I2C6_IRQHandler,                        /* I2C6 Master and Slave     */
    I2C7_IRQHandler,                        /* I2C7 Master and Slave     */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    I2C8_IRQHandler,                        /* I2C8 Master and Slave     */
    I2C9_IRQHandler,                        /* I2C9 Master and Slave     */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
    0,                                      /* Reserved                  */
};

/* Forward declaration of the default fault handlers. */
/* This is the code that gets called when the processor first starts execution */
/* following a reset event.  Only the absolutely necessary set is performed,   */
/* after which the application supplied entry() routine is called.  Any fancy  */
/* actions (such as making decisions based on the reset cause register, and    */
/* resetting the bits in that register) are left solely in the hands of the    */
/* application.                                                                */
void Reset_Handler(void)
{
    SystemInit();

    /* Jump to the CCS C Initialization Routine. */
    __asm("    .global _c_int00\n"
          "    b.w     _c_int00");
}

/* This is the code that gets called when the processor receives an unexpected  */
/* interrupt.  This simply enters an infinite loop, preserving the system state */
/* for examination by a debugger.                                               */
void Default_Handler(void)
{
    /* Fault trap exempt from ULP advisor */
	#ifdef __TI_ARM__
		#pragma diag_push
		#pragma CHECK_ULP("-2.1")
	#endif

	/* Enter an infinite loop. */
	while(1)
	{
	}

	#ifdef __TI_ARM__
		#pragma diag_pop
	#endif
}

Am I doing something wrong?I am also attaching the .h file here, if anyone needs to check with a launchpad. Please help.

#ifndef ADS131M0X_H_
#define ADS131M0X_H_

// Standard libraries
#include <assert.h>

//****************************************************************************
//
// Select the device variant to use...
//
//****************************************************************************

#define CHANNEL_COUNT (8)   // ADS131M08 -> 8 Channels

#if ((CHANNEL_COUNT < 1) || (CHANNEL_COUNT > 8))
    #error Invalid channel count configured in 'ads131m0x.h'.
#endif

//****************************************************************************
//
// Select the desired MODE register settings...
// NOTE: These settings will be enforced and not modifiable during runtime!
//
//****************************************************************************

/* Pick one (and only one) mode to use... */
//#define WORD_LENGTH_16BIT_TRUNCATED
#define WORD_LENGTH_24BIT
//#define WORD_LENGTH_32BIT_SIGN_EXTEND
//#define WORD_LENGTH_32BIT_ZERO_PADDED

/* Enable this define statement to use the DRDY pulse format... */
#define DRDY_FMT_PULSE

/* Enable this define statement to use CRC on DIN... */
//#define ENABLE_CRC_IN

/* Select CRC type */
#define CRC_CCITT
//#define CRC_ANSI

/* Disable assertions when not in the CCS "Debug" configuration */
#ifndef _DEBUG
    #define NDEBUG
#endif


//
// Validation
//

// Throw an error if no WORD_LENGTH mode was selected above
#if !defined WORD_LENGTH_16BIT_TRUNCATED &&  \
    !defined WORD_LENGTH_24BIT && \
    !defined WORD_LENGTH_32BIT_SIGN_EXTEND && \
    !defined WORD_LENGTH_32BIT_ZERO_PADDED
#error Must define at least one WORD_LENGTH mode
#endif

// Throw an error if none or both CRC types are selected
#if !defined CRC_CCITT && !defined CRC_ANSI
#error Must define at least one CRC type
#endif
#if defined CRC_CCITT && defined CRC_ANSI
#error Must define only one CRC type
#endif



//****************************************************************************
//
// Constants
//
//****************************************************************************

#define NUM_REGISTERS                           ((uint8_t) 64)



//****************************************************************************
//
// SPI command opcodes
//
//****************************************************************************

#define OPCODE_NULL                             ((uint16_t) 0x0000)
#define OPCODE_RESET                            ((uint16_t) 0x0011)
#define OPCODE_RREG                             ((uint16_t) 0xA000)
#define OPCODE_WREG                             ((uint16_t) 0x6000)
#define OPCODE_STANDBY                          ((uint16_t) 0x0022)
#define OPCODE_WAKEUP                           ((uint16_t) 0x0033)
#define OPCODE_LOCK                             ((uint16_t) 0x0555)
#define OPCODE_UNLOCK                           ((uint16_t) 0x0655)



//****************************************************************************
//
// Register definitions
//
//****************************************************************************

/* NOTE: Whenever possible, macro names (defined below) were derived from
 * datasheet defined names; however, updates to documentation may cause
 * mismatches between names defined here in example code from those shown
 * in the device datasheet.
 */


/* Register 0x00 (ID) definition - READ ONLY
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                    RESERVED[3:0]                  |                    CHANCNT[3:0]                   |                                               REVID[7:0]                                              |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* ID register address & default value */
    #define ID_ADDRESS                                                      ((uint8_t)  0x00)
    #define ID_DEFAULT                                                      ((uint16_t) 0x2000 | (CHANNEL_COUNT << 8))  // NOTE: May change with future device revisions!

    /* RESERVED field mask */
    #define ID_RESERVED_MASK                                                ((uint16_t) 0xF000)

    /* CHANCNT field mask & values */
    #define ID_CHANCNT_MASK                                                 ((uint16_t) 0x0F00)
    #define ID_CHANCNT_4CH                                                  ((uint16_t) 0x0004 << 8)
    #define ID_CHANCNT_6CH                                                  ((uint16_t) 0x0006 << 8)
    #define ID_CHANCNT_8CH                                                  ((uint16_t) 0x0008 << 8)

    /* REVID field mask & values */
    #define ID_REVID_MASK                                                   ((uint16_t) 0x00FF)
    #define ID_REVID_REVA                                                   ((uint16_t) 0x0000 << 0)    // DEFAULT



/* Register 0x01 (STATUS) definition - READ ONLY
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |    LOCK    |  F_RESYNC  |   REG_MAP  |   CRC_ERR  |  CRC_TYPE  |    RESET   |       WLENGTH[1:0]      |    DRDY7   |    DRDY6   |    DRDY5   |    DRDY4   |    DRDY3   |    DRDY2   |    DRDY1   |    DRDY0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *  NOTE 1: Bits 0 through 7 are hardware controlled. Reading these values multiple times may return different results.
 *  NOTE 2: Bits 0 through 4 are RESERVED on the ADS131M04. These bits will always read 0.
 */

    /* STATUS register address & default value */
    #define STATUS_ADDRESS                                                  ((uint8_t)  0x01)
    #define STATUS_DEFAULT                                                  ((uint16_t) 0x0500)

    /* LOCK field mask & values */
    #define STATUS_LOCK_MASK                                                ((uint16_t) 0x8000)
    #define STATUS_LOCK_UNLOCKED                                            ((uint16_t) 0x0000 << 15)   // DEFAULT
    #define STATUS_LOCK_LOCKED                                              ((uint16_t) 0x0001 << 15)

    /* F_RESYNC field mask & values */
    #define STATUS_F_RESYNC_MASK                                            ((uint16_t) 0x4000)
    #define STATUS_F_RESYNC_NO_FAULT                                        ((uint16_t) 0x0000 << 14)   // DEFAULT
    #define STATUS_F_RESYNC_FAULT                                           ((uint16_t) 0x0001 << 14)

    /* REG_MAP field mask & values */
    #define STATUS_REG_MAP_MASK                                             ((uint16_t) 0x2000)
    #define STATUS_REG_MAP_NO_CHANGE_CRC                                    ((uint16_t) 0x0000 << 13)   // DEFAULT
    #define STATUS_REG_MAP_CHANGED_CRC                                      ((uint16_t) 0x0001 << 13)

    /* CRC_ERR field mask & values */
    #define STATUS_CRC_ERR_MASK                                             ((uint16_t) 0x1000)
    #define STATUS_CRC_ERR_NO_CRC_ERROR                                     ((uint16_t) 0x0000 << 12)   // DEFAULT
    #define STATUS_CRC_ERR_INPUT_CRC_ERROR                                  ((uint16_t) 0x0001 << 12)

    /* CRC_TYPE field mask & values */
    #define STATUS_CRC_TYPE_MASK                                            ((uint16_t) 0x0800)
    #define STATUS_CRC_TYPE_16BIT_CCITT                                     ((uint16_t) 0x0000 << 11)   // DEFAULT
    #define STATUS_CRC_TYPE_16BIT_ANSI                                      ((uint16_t) 0x0001 << 11)

    /* RESET field mask & values */
    #define STATUS_RESET_MASK                                               ((uint16_t) 0x0400)
    #define STATUS_RESET_NO_RESET                                           ((uint16_t) 0x0000 << 10)
    #define STATUS_RESET_RESET_OCCURRED                                     ((uint16_t) 0x0001 << 10)   // DEFAULT

    /* WLENGTH field mask & values */
    #define STATUS_WLENGTH_MASK                                             ((uint16_t) 0x0300)
    #define STATUS_WLENGTH_16BIT                                            ((uint16_t) 0x0000 << 8)
    #define STATUS_WLENGTH_24BIT                                            ((uint16_t) 0x0001 << 8)    // DEFAULT
    #define STATUS_WLENGTH_32BIT_LSB_ZEROES                                 ((uint16_t) 0x0002 << 8)
    #define STATUS_WLENGTH_32BIT_MSB_SIGN_EXT                               ((uint16_t) 0x0003 << 8)

#if (CHANNEL_COUNT > 7)

    /* DRDY7 field mask & values */
    #define STATUS_DRDY7_MASK                                               ((uint16_t) 0x0080)
    #define STATUS_DRDY7_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 7)
    #define STATUS_DRDY7_NEW_DATA                                           ((uint16_t) 0x0001 << 7)

#endif
#if (CHANNEL_COUNT > 6)

    /* DRDY6 field mask & values */
    #define STATUS_DRDY6_MASK                                               ((uint16_t) 0x0040)
    #define STATUS_DRDY6_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 6)
    #define STATUS_DRDY6_NEW_DATA                                           ((uint16_t) 0x0001 << 6)

#endif
#if (CHANNEL_COUNT > 5)

    /* DRDY5 field mask & values */
    #define STATUS_DRDY5_MASK                                               ((uint16_t) 0x0020)
    #define STATUS_DRDY5_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 5)
    #define STATUS_DRDY5_NEW_DATA                                           ((uint16_t) 0x0001 << 5)

#endif
#if (CHANNEL_COUNT > 4)

    /* DRDY4 field mask & values */
    #define STATUS_DRDY4_MASK                                               ((uint16_t) 0x0010)
    #define STATUS_DRDY4_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 4)
    #define STATUS_DRDY4_NEW_DATA                                           ((uint16_t) 0x0001 << 4)

#endif
#if (CHANNEL_COUNT > 3)

    /* DRDY3 field mask & values */
    #define STATUS_DRDY3_MASK                                               ((uint16_t) 0x0008)
    #define STATUS_DRDY3_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 3)
    #define STATUS_DRDY3_NEW_DATA                                           ((uint16_t) 0x0001 << 3)

#endif
#if (CHANNEL_COUNT > 2)

    /* DRDY2 field mask & values */
    #define STATUS_DRDY2_MASK                                               ((uint16_t) 0x0004)
    #define STATUS_DRDY2_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 2)
    #define STATUS_DRDY2_NEW_DATA                                           ((uint16_t) 0x0001 << 2)

#endif
#if (CHANNEL_COUNT > 1)

    /* DRDY1 field mask & values */
    #define STATUS_DRDY1_MASK                                               ((uint16_t) 0x0002)
    #define STATUS_DRDY1_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 1)
    #define STATUS_DRDY1_NEW_DATA                                           ((uint16_t) 0x0001 << 1)

#endif

    /* DRDY0 field mask & values */
    #define STATUS_DRDY0_MASK                                               ((uint16_t) 0x0001)
    #define STATUS_DRDY0_NO_NEW_DATA                                        ((uint16_t) 0x0000 << 0)
    #define STATUS_DRDY0_NEW_DATA                                           ((uint16_t) 0x0001 << 0)



/* Register 0x02 (MODE) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |      RESERVED0[1:0]     | REG_CRC_EN |  RX_CRC_EN |  CRC_TYPE  |    RESET   |       WLENGTH[1:0]      |             RESERVED1[2:0]           |   TIMEOUT  |       DRDY_SEL[1:0]     |  DRDY_HiZ  |  DRDY_FMT  |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* MODE register address & default value */
    #define MODE_ADDRESS                                                    ((uint8_t)  0x02)
    #define MODE_DEFAULT                                                    ((uint16_t) 0x0510)

    /* RESERVED0 field mask */
    #define MODE_RESERVED0_MASK                                             ((uint16_t) 0xC000)

    /* REG_CRC_EN field mask & values */
    #define MODE_REG_CRC_EN_MASK                                            ((uint16_t) 0x2000)
    #define MODE_REG_CRC_EN_DISABLED                                        ((uint16_t) 0x0000 << 13)   // DEFAULT
    #define MODE_REG_CRC_EN_ENABLED                                         ((uint16_t) 0x0001 << 13)

    /* RX_CRC_EN field mask & values */
    #define MODE_RX_CRC_EN_MASK                                             ((uint16_t) 0x1000)
    #define MODE_RX_CRC_EN_DISABLED                                         ((uint16_t) 0x0000 << 12)   // DEFAULT
    #define MODE_RX_CRC_EN_ENABLED                                          ((uint16_t) 0x0001 << 12)

    /* CRC_TYPE field mask & values */
    #define MODE_CRC_TYPE_MASK                                              ((uint16_t) 0x0800)
    #define MODE_CRC_TYPE_16BIT_CCITT                                       ((uint16_t) 0x0000 << 11)   // DEFAULT
    #define MODE_CRC_TYPE_16BIT_ANSI                                        ((uint16_t) 0x0001 << 11)

    /* RESET field mask & values */
    #define MODE_RESET_MASK                                                 ((uint16_t) 0x0400)
    #define MODE_RESET_NO_RESET                                             ((uint16_t) 0x0000 << 10)
    #define MODE_RESET_RESET_OCCURRED                                       ((uint16_t) 0x0001 << 10)   // DEFAULT

    /* WLENGTH field mask & values */
    #define MODE_WLENGTH_MASK                                               ((uint16_t) 0x0300)
    #define MODE_WLENGTH_16BIT                                              ((uint16_t) 0x0000 << 8)
    #define MODE_WLENGTH_24BIT                                              ((uint16_t) 0x0001 << 8)
    #define MODE_WLENGTH_32BIT_LSB_ZEROES                                   ((uint16_t) 0x0002 << 8)
    #define MODE_WLENGTH_32BIT_MSB_SIGN_EXT                                 ((uint16_t) 0x0003 << 8)

    /* RESERVED1 field mask */
    #define MODE_RESERVED1_MASK                                             ((uint16_t) 0x00E0)

    /* TIMEOUT field mask & values */
    #define MODE_TIMEOUT_MASK                                               ((uint16_t) 0x0010)
    #define MODE_TIMEOUT_DISABLED                                           ((uint16_t) 0x0000 << 4)
    #define MODE_TIMEOUT_ENABLED                                            ((uint16_t) 0x0001 << 4)    // DEFAULT

    /* DRDY_SEL field mask & values */
    #define MODE_DRDY_SEL_MASK                                              ((uint16_t) 0x000C)
    #define MODE_DRDY_SEL_MOST_LAGGING                                      ((uint16_t) 0x0000 << 2)    // DEFAULT
    #define MODE_DRDY_SEL_LOGIC_OR                                          ((uint16_t) 0x0001 << 2)
    #define MODE_DRDY_SEL_MOST_LEADING                                      ((uint16_t) 0x0002 << 2)    // Alternative value: ((uint16_t) 0x0003 << 2)

    /* DRDY_HiZ field mask & values */
    #define MODE_DRDY_HiZ_MASK                                              ((uint16_t) 0x0002)
    #define MODE_DRDY_HiZ_LOGIC_HIGH                                        ((uint16_t) 0x0000 << 1)    // DEFAULT
    #define MODE_DRDY_HiZ_HIGH_IMPEDANCE                                    ((uint16_t) 0x0001 << 1)

    /* DRDY_FMT field mask & values */
    #define MODE_DRDY_FMT_MASK                                              ((uint16_t) 0x0001)
    #define MODE_DRDY_FMT_LOGIC_LOW                                         ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define MODE_DRDY_FMT_NEG_PULSE_FIXED_WIDTH                             ((uint16_t) 0x0001 << 0)



/* Register 0x03 (CLOCK) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   CH7_EN   |   CH6_EN   |   CH5_EN   |   CH4_EN   |   CH3_EN   |   CH2_EN   |   CH1_EN   |   CH0_EN   |             RESERVED[2:0]            |               OSR[2:0]               |         PWR[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *  NOTE 1: Bits 12 through 15 are RESERVED on the ADS131M04.
 */

    /* CLOCK register address & default value */
    #define CLOCK_ADDRESS                                                   ((uint8_t)  0x03)

    #if (CHANNEL_COUNT == 8)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0xFF0E)
    #endif
    #if (CHANNEL_COUNT == 7)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x7F0E)
    #endif
    #if (CHANNEL_COUNT == 6)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x3F0E)
    #endif
    #if (CHANNEL_COUNT == 5)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x1F0E)
    #endif
    #if (CHANNEL_COUNT == 4)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x0F0E)
    #endif
    #if (CHANNEL_COUNT == 3)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x070E)
    #endif
    #if (CHANNEL_COUNT == 2)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x030E)
    #endif
    #if (CHANNEL_COUNT == 1)
    #define CLOCK_DEFAULT                                                   ((uint16_t) 0x010E)
    #endif

#if (CHANNEL_COUNT > 7)

    /* CH7_EN field mask & values */
    #define CLOCK_CH7_EN_MASK                                               ((uint16_t) 0x8000)
    #define CLOCK_CH7_EN_DISABLED                                           ((uint16_t) 0x0000 << 15)
    #define CLOCK_CH7_EN_ENABLED                                            ((uint16_t) 0x0001 << 15)

#endif
#if (CHANNEL_COUNT > 6)

    /* CH6_EN field mask & values */
    #define CLOCK_CH6_EN_MASK                                               ((uint16_t) 0x4000)
    #define CLOCK_CH6_EN_DISABLED                                           ((uint16_t) 0x0000 << 14)
    #define CLOCK_CH6_EN_ENABLED                                            ((uint16_t) 0x0001 << 14)

#endif
#if (CHANNEL_COUNT > 5)

    /* CH5_EN field mask & values */
    #define CLOCK_CH5_EN_MASK                                               ((uint16_t) 0x2000)
    #define CLOCK_CH5_EN_DISABLED                                           ((uint16_t) 0x0000 << 13)
    #define CLOCK_CH5_EN_ENABLED                                            ((uint16_t) 0x0001 << 13)

#endif
#if (CHANNEL_COUNT > 4)

    /* CH4_EN field mask & values */
    #define CLOCK_CH4_EN_MASK                                               ((uint16_t) 0x1000)
    #define CLOCK_CH4_EN_DISABLED                                           ((uint16_t) 0x0000 << 12)
    #define CLOCK_CH4_EN_ENABLED                                            ((uint16_t) 0x0001 << 12)

#endif
#if (CHANNEL_COUNT > 3)

    /* CH3_EN field mask & values */
    #define CLOCK_CH3_EN_MASK                                               ((uint16_t) 0x0800)
    #define CLOCK_CH3_EN_DISABLED                                           ((uint16_t) 0x0000 << 11)
    #define CLOCK_CH3_EN_ENABLED                                            ((uint16_t) 0x0001 << 11)

#endif
#if (CHANNEL_COUNT > 2)

    /* CH2_EN field mask & values */
    #define CLOCK_CH2_EN_MASK                                               ((uint16_t) 0x0400)
    #define CLOCK_CH2_EN_DISABLED                                           ((uint16_t) 0x0000 << 10)
    #define CLOCK_CH2_EN_ENABLED                                            ((uint16_t) 0x0001 << 10)

#endif
#if (CHANNEL_COUNT > 1)

    /* CH1_EN field mask & values */
    #define CLOCK_CH1_EN_MASK                                               ((uint16_t) 0x0200)
    #define CLOCK_CH1_EN_DISABLED                                           ((uint16_t) 0x0000 << 9)
    #define CLOCK_CH1_EN_ENABLED                                            ((uint16_t) 0x0001 << 9)

#endif

    /* CH0_EN field mask & values */
    #define CLOCK_CH0_EN_MASK                                               ((uint16_t) 0x0100)
    #define CLOCK_CH0_EN_DISABLED                                           ((uint16_t) 0x0000 << 8)
    #define CLOCK_CH0_EN_ENABLED                                            ((uint16_t) 0x0001 << 8)    // DEFAULT

    /* RESERVED1 field mask */
    #define CLOCK_RESERVED_MASK                                             ((uint16_t) 0x00E0)

    /* OSR field mask & values */
    #define CLOCK_OSR_MASK                                                  ((uint16_t) 0x001C)
    #define CLOCK_OSR_128                                                   ((uint16_t) 0x0000 << 2)
    #define CLOCK_OSR_256                                                   ((uint16_t) 0x0001 << 2)
    #define CLOCK_OSR_512                                                   ((uint16_t) 0x0002 << 2)
    #define CLOCK_OSR_1024                                                  ((uint16_t) 0x0003 << 2)    // DEFAULT
    #define CLOCK_OSR_2048                                                  ((uint16_t) 0x0004 << 2)
    #define CLOCK_OSR_4096                                                  ((uint16_t) 0x0005 << 2)
    #define CLOCK_OSR_8192                                                  ((uint16_t) 0x0006 << 2)
    #define CLOCK_OSR_16384                                                 ((uint16_t) 0x0007 << 2)

    /* PWR field mask & values */
    #define CLOCK_PWR_MASK                                                  ((uint16_t) 0x0003)
    #define CLOCK_PWR_VLP                                                   ((uint16_t) 0x0000 << 0)
    #define CLOCK_PWR_LP                                                    ((uint16_t) 0x0001 << 0)
    #define CLOCK_PWR_HR                                                    ((uint16_t) 0x0002 << 0)     // DEFAULT, Alternative value: ((uint16_t) 0x0003 << 2)



/* Register 0x04 (GAIN1) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |  RESERVED0 |             PGAGAIN3[2:0]            |  RESERVED1 |             PGAGAIN2[2:0]            |  RESERVED2 |             PGAGAIN1[2:0]            |  RESERVED3 |             PGAGAIN0[2:0]            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* GAIN1 register address & default value */
    #define GAIN1_ADDRESS                                                   ((uint8_t)  0x04)
    #define GAIN1_DEFAULT                                                   ((uint16_t) 0x0000)

    /* RESERVED0 field mask & values */
    #define GAIN1_RESERVED0_MASK                                            ((uint16_t) 0x8000)

    /* PGAGAIN3 field mask & values */
    #define GAIN1_PGAGAIN3_MASK                                             ((uint16_t) 0x7000)
    #define GAIN1_PGAGAIN3_1                                                ((uint16_t) 0x0000 << 12)    // DEFAULT
    #define GAIN1_PGAGAIN3_2                                                ((uint16_t) 0x0001 << 12)
    #define GAIN1_PGAGAIN3_4                                                ((uint16_t) 0x0002 << 12)
    #define GAIN1_PGAGAIN3_8                                                ((uint16_t) 0x0003 << 12)
    #define GAIN1_PGAGAIN3_16                                               ((uint16_t) 0x0004 << 12)
    #define GAIN1_PGAGAIN3_32                                               ((uint16_t) 0x0005 << 12)
    #define GAIN1_PGAGAIN3_64                                               ((uint16_t) 0x0006 << 12)
    #define GAIN1_PGAGAIN3_128                                              ((uint16_t) 0x0007 << 12)

    /* RESERVED1 field mask & values */
    #define GAIN1_RESERVED1_MASK                                            ((uint16_t) 0x0800)

    /* PGAGAIN2 field mask & values */
    #define GAIN1_PGAGAIN2_MASK                                             ((uint16_t) 0x0700)
    #define GAIN1_PGAGAIN2_1                                                ((uint16_t) 0x0000 << 8)    // DEFAULT
    #define GAIN1_PGAGAIN2_2                                                ((uint16_t) 0x0001 << 8)
    #define GAIN1_PGAGAIN2_4                                                ((uint16_t) 0x0002 << 8)
    #define GAIN1_PGAGAIN2_8                                                ((uint16_t) 0x0003 << 8)
    #define GAIN1_PGAGAIN2_16                                               ((uint16_t) 0x0004 << 8)
    #define GAIN1_PGAGAIN2_32                                               ((uint16_t) 0x0005 << 8)
    #define GAIN1_PGAGAIN2_64                                               ((uint16_t) 0x0006 << 8)
    #define GAIN1_PGAGAIN2_128                                              ((uint16_t) 0x0007 << 8)

    /* RESERVED2 field mask & values */
    #define GAIN1_RESERVED2_MASK                                            ((uint16_t) 0x0080)

    /* PGAGAIN1 field mask & values */
    #define GAIN1_PGAGAIN1_MASK                                             ((uint16_t) 0x0070)
    #define GAIN1_PGAGAIN1_1                                                ((uint16_t) 0x0000 << 4)    // DEFAULT
    #define GAIN1_PGAGAIN1_2                                                ((uint16_t) 0x0001 << 4)
    #define GAIN1_PGAGAIN1_4                                                ((uint16_t) 0x0002 << 4)
    #define GAIN1_PGAGAIN1_8                                                ((uint16_t) 0x0003 << 4)
    #define GAIN1_PGAGAIN1_16                                               ((uint16_t) 0x0004 << 4)
    #define GAIN1_PGAGAIN1_32                                               ((uint16_t) 0x0005 << 4)
    #define GAIN1_PGAGAIN1_64                                               ((uint16_t) 0x0006 << 4)
    #define GAIN1_PGAGAIN1_128                                              ((uint16_t) 0x0007 << 4)

    /* RESERVED3 field mask & values */
    #define GAIN1_RESERVED3_MASK                                            ((uint16_t) 0x0008)

    /* PGAGAIN0 field mask & values */
    #define GAIN1_PGAGAIN0_MASK                                             ((uint16_t) 0x0007)
    #define GAIN1_PGAGAIN0_1                                                ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define GAIN1_PGAGAIN0_2                                                ((uint16_t) 0x0001 << 0)
    #define GAIN1_PGAGAIN0_4                                                ((uint16_t) 0x0002 << 0)
    #define GAIN1_PGAGAIN0_8                                                ((uint16_t) 0x0003 << 0)
    #define GAIN1_PGAGAIN0_16                                               ((uint16_t) 0x0004 << 0)
    #define GAIN1_PGAGAIN0_32                                               ((uint16_t) 0x0005 << 0)
    #define GAIN1_PGAGAIN0_64                                               ((uint16_t) 0x0006 << 0)
    #define GAIN1_PGAGAIN0_128                                              ((uint16_t) 0x0007 << 0)





/* Register 0x05 (GAIN2) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |  RESERVED0 |             PGAGAIN7[2:0]            |  RESERVED1 |             PGAGAIN6[2:0]            |  RESERVED2 |             PGAGAIN5[2:0]            |  RESERVED3 |             PGAGAIN4[2:0]            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * NOTE 1: This register is RESERVED on the ADS131M04. Only write 0x0000 to this register.
 */

    /* GAIN2 register address & default value */
    #define GAIN2_ADDRESS                                                   ((uint8_t)  0x05)
    #define GAIN2_DEFAULT                                                   ((uint16_t) 0x0000)

#if (CHANNEL_COUNT > 4)

    /* RESERVED0 field mask & values */
    #define GAIN2_RESERVED0_MASK                                            ((uint16_t) 0x8000)

    /* PGAGAIN7 field mask & values */
    #define GAIN2_PGAGAIN7_MASK                                             ((uint16_t) 0x7000)
    #define GAIN2_PGAGAIN7_1                                                ((uint16_t) 0x0000 << 12)   // DEFAULT
    #define GAIN2_PGAGAIN7_2                                                ((uint16_t) 0x0001 << 12)
    #define GAIN2_PGAGAIN7_4                                                ((uint16_t) 0x0002 << 12)
    #define GAIN2_PGAGAIN7_8                                                ((uint16_t) 0x0003 << 12)
    #define GAIN2_PGAGAIN7_16                                               ((uint16_t) 0x0004 << 12)
    #define GAIN2_PGAGAIN7_32                                               ((uint16_t) 0x0005 << 12)
    #define GAIN2_PGAGAIN7_64                                               ((uint16_t) 0x0006 << 12)
    #define GAIN2_PGAGAIN7_128                                              ((uint16_t) 0x0007 << 12)

    /* RESERVED1 field mask & values */
    #define GAIN2_RESERVED1_MASK                                            ((uint16_t) 0x0800)

    /* PGAGAIN6 field mask & values */
    #define GAIN2_PGAGAIN6_MASK                                             ((uint16_t) 0x0700)
    #define GAIN2_PGAGAIN6_1                                                ((uint16_t) 0x0000 << 8)    // DEFAULT
    #define GAIN2_PGAGAIN6_2                                                ((uint16_t) 0x0001 << 8)
    #define GAIN2_PGAGAIN6_4                                                ((uint16_t) 0x0002 << 8)
    #define GAIN2_PGAGAIN6_8                                                ((uint16_t) 0x0003 << 8)
    #define GAIN2_PGAGAIN6_16                                               ((uint16_t) 0x0004 << 8)
    #define GAIN2_PGAGAIN6_32                                               ((uint16_t) 0x0005 << 8)
    #define GAIN2_PGAGAIN6_64                                               ((uint16_t) 0x0006 << 8)
    #define GAIN2_PGAGAIN6_128                                              ((uint16_t) 0x0007 << 8)

    /* RESERVED2 field mask & values */
    #define GAIN2_RESERVED2_MASK                                            ((uint16_t) 0x0080)

    /* PGAGAIN5 field mask & values */
    #define GAIN2_PGAGAIN5_MASK                                             ((uint16_t) 0x0070)
    #define GAIN2_PGAGAIN5_1                                                ((uint16_t) 0x0000 << 4)    // DEFAULT
    #define GAIN2_PGAGAIN5_2                                                ((uint16_t) 0x0001 << 4)
    #define GAIN2_PGAGAIN5_4                                                ((uint16_t) 0x0002 << 4)
    #define GAIN2_PGAGAIN5_8                                                ((uint16_t) 0x0003 << 4)
    #define GAIN2_PGAGAIN5_16                                               ((uint16_t) 0x0004 << 4)
    #define GAIN2_PGAGAIN5_32                                               ((uint16_t) 0x0005 << 4)
    #define GAIN2_PGAGAIN5_64                                               ((uint16_t) 0x0006 << 4)
    #define GAIN2_PGAGAIN5_128                                              ((uint16_t) 0x0007 << 4)

    /* RESERVED3 field mask & values */
    #define GAIN2_RESERVED3_MASK                                            ((uint16_t) 0x0008)

    /* PGAGAIN4 field mask & values */
    #define GAIN2_PGAGAIN4_MASK                                             ((uint16_t) 0x0007)
    #define GAIN2_PGAGAIN4_1                                                ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define GAIN2_PGAGAIN4_2                                                ((uint16_t) 0x0001 << 0)
    #define GAIN2_PGAGAIN4_4                                                ((uint16_t) 0x0002 << 0)
    #define GAIN2_PGAGAIN4_8                                                ((uint16_t) 0x0003 << 0)
    #define GAIN2_PGAGAIN4_16                                               ((uint16_t) 0x0004 << 0)
    #define GAIN2_PGAGAIN4_32                                               ((uint16_t) 0x0005 << 0)
    #define GAIN2_PGAGAIN4_64                                               ((uint16_t) 0x0006 << 0)
    #define GAIN2_PGAGAIN4_128                                              ((uint16_t) 0x0007 << 0)

#endif



/* Register 0x06 (CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |            RESERVED0[2:0]            |                    GC_DLY[3:0]                    |    GC_EN   |  CD_ALLCH  |              CD_NUM[2:0]             |              CD_LEN[2:0]             |    CD_EN   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CFG register address & default value */
    #define CFG_ADDRESS                                                     ((uint8_t)  0x06)
    #define CFG_DEFAULT                                                     ((uint16_t) 0x0600)

    /* RESERVED0 field mask & values */
    #define CFG_RESERVED0_MASK                                              ((uint16_t) 0xE000)

    /* GC_DLY field mask & values */
    #define CFG_GC_DLY_MASK                                                 ((uint16_t) 0x1E00)
    #define CFG_GC_DLY_2                                                    ((uint16_t) 0x0000 << 9)
    #define CFG_GC_DLY_4                                                    ((uint16_t) 0x0001 << 9)
    #define CFG_GC_DLY_8                                                    ((uint16_t) 0x0002 << 9)
    #define CFG_GC_DLY_16                                                   ((uint16_t) 0x0003 << 9)    // DEFAULT
    #define CFG_GC_DLY_32                                                   ((uint16_t) 0x0004 << 9)
    #define CFG_GC_DLY_64                                                   ((uint16_t) 0x0005 << 9)
    #define CFG_GC_DLY_128                                                  ((uint16_t) 0x0006 << 9)
    #define CFG_GC_DLY_256                                                  ((uint16_t) 0x0007 << 9)
    #define CFG_GC_DLY_512                                                  ((uint16_t) 0x0008 << 9)
    #define CFG_GC_DLY_1024                                                 ((uint16_t) 0x0009 << 9)
    #define CFG_GC_DLY_2048                                                 ((uint16_t) 0x000A << 9)
    #define CFG_GC_DLY_4096                                                 ((uint16_t) 0x000B << 9)
    #define CFG_GC_DLY_8192                                                 ((uint16_t) 0x000C << 9)
    #define CFG_GC_DLY_16484                                                ((uint16_t) 0x000D << 9)
    #define CFG_GC_DLY_32768                                                ((uint16_t) 0x000E << 9)
    #define CFG_GC_DLY_65536                                                ((uint16_t) 0x000F << 9)

    /* GC_EN field mask & values */
    #define CFG_GC_EN_MASK                                                  ((uint16_t) 0x0100)
    #define CFG_GC_EN_DISABLED                                              ((uint16_t) 0x0000 << 8)    // DEFAULT
    #define CFG_GC_EN_ENABLED                                               ((uint16_t) 0x0001 << 8)

    /* CD_ALLCH field mask & values */
    #define CFG_CD_ALLCH_MASK                                               ((uint16_t) 0x0080)
    #define CFG_CD_ALLCH_ANY_CHANNEL                                        ((uint16_t) 0x0000 << 7)    // DEFAULT
    #define CFG_CD_ALLCH_ALL_CHANNELS                                       ((uint16_t) 0x0001 << 7)

    /* CD_NUM field mask & values */
    #define CFG_CD_NUM_MASK                                                 ((uint16_t) 0x0070)
    #define CFG_CD_NUM_1                                                    ((uint16_t) 0x0000 << 4)    // DEFAULT
    #define CFG_CD_NUM_2                                                    ((uint16_t) 0x0001 << 4)
    #define CFG_CD_NUM_4                                                    ((uint16_t) 0x0002 << 4)
    #define CFG_CD_NUM_8                                                    ((uint16_t) 0x0003 << 4)
    #define CFG_CD_NUM_16                                                   ((uint16_t) 0x0004 << 4)
    #define CFG_CD_NUM_32                                                   ((uint16_t) 0x0005 << 4)
    #define CFG_CD_NUM_64                                                   ((uint16_t) 0x0006 << 4)
    #define CFG_CD_NUM_128                                                  ((uint16_t) 0x0007 << 4)

    /* CD_LEN field mask & values */
    #define CFG_CD_LEN_MASK                                                 ((uint16_t) 0x000E)
    #define CFG_CD_LEN_128                                                  ((uint16_t) 0x0000 << 1)    // DEFAULT
    #define CFG_CD_LEN_256                                                  ((uint16_t) 0x0001 << 1)
    #define CFG_CD_LEN_512                                                  ((uint16_t) 0x0002 << 1)
    #define CFG_CD_LEN_768                                                  ((uint16_t) 0x0003 << 1)
    #define CFG_CD_LEN_1280                                                 ((uint16_t) 0x0004 << 1)
    #define CFG_CD_LEN_1792                                                 ((uint16_t) 0x0005 << 1)
    #define CFG_CD_LEN_2560                                                 ((uint16_t) 0x0006 << 1)
    #define CFG_CD_LEN_3584                                                 ((uint16_t) 0x0007 << 1)

    /* CD_EN field mask & values */
    #define CFG_CD_EN_MASK                                                  ((uint16_t) 0x0001)
    #define CFG_CD_EN_DISABLED                                              ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CFG_CD_EN_ENABLED                                               ((uint16_t) 0x0001 << 0)



/* Register 0x07 (THRSHLD_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                CD_TH_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* THRSHLD_MSB register address & default value */
    #define THRSHLD_MSB_ADDRESS                                             ((uint8_t)  0x07)
    #define THRSHLD_MSB_DEFAULT                                             ((uint16_t) 0x0000)

    /* CD_TH_MSB field mask & values */
    #define THRSHLD_MSB_CD_TH_MSB_MASK                                      ((uint16_t) 0xFFFF)



/* Register 0x08 (THRSHLD_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             CD_TH_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* THRSHLD_LSB register address & default value */
    #define THRSHLD_LSB_ADDRESS                                             ((uint8_t)  0x08)
    #define THRSHLD_LSB_DEFAULT                                             ((uint16_t) 0x0000)

    /* CD_TH_LSB field mask & values */
    #define THRSHLD_LSB_CD_TH_LSB_MASK                                      ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define THRSHLD_LSB_RESERVED0_MASK                                      ((uint16_t) 0x00FF)



/* Register 0x09 (CH0_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE0[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX0[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH0_CFG register address & default value */
    #define CH0_CFG_ADDRESS                                                 ((uint8_t)  0x09)
    #define CH0_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE0 field mask & values */
    #define CH0_CFG_PHASE0_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH0_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX0 field mask & values */
    #define CH0_CFG_MUX0_MASK                                               ((uint16_t) 0x0003)
    #define CH0_CFG_MUX0_AIN0P_AIN0N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH0_CFG_MUX0_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH0_CFG_MUX0_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH0_CFG_MUX0_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x0A (CH0_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL0_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH0_OCAL_MSB register address & default value */
    #define CH0_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x0A)
    #define CH0_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL0_MSB field mask & values */
    #define CH0_OCAL_MSB_OCAL0_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x0B (CH0_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL0_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH0_OCAL_LSB register address & default value */
    #define CH0_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x0B)
    #define CH0_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL0_LSB field mask & values */
    #define CH0_OCAL_LSB_OCAL0_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH0_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x0C (CH0_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL0_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH0_GCAL_MSB register address & default value */
    #define CH0_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x0C)
    #define CH0_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL0_MSB field mask & values */
    #define CH0_GCAL_MSB_GCAL0_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x0D (CH0_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL0_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH0_GCAL_LSB register address & default value */
    #define CH0_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x0D)
    #define CH0_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL0_LSB field mask & values */
    #define CH0_GCAL_LSB_GCAL0_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH0_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#if (CHANNEL_COUNT > 1)

/* Register 0x0E (CH1_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE1[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX1[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH1_CFG register address & default value */
    #define CH1_CFG_ADDRESS                                                 ((uint8_t)  0x0E)
    #define CH1_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE1 field mask & values */
    #define CH1_CFG_PHASE1_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH1_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX1 field mask & values */
    #define CH1_CFG_MUX1_MASK                                               ((uint16_t) 0x0003)
    #define CH1_CFG_MUX1_AIN1P_AIN1N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH1_CFG_MUX1_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH1_CFG_MUX1_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH1_CFG_MUX1_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x0F (CH1_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL1_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH1_OCAL_MSB register address & default value */
    #define CH1_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x0F)
    #define CH1_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL1_MSB field mask & values */
    #define CH1_OCAL_MSB_OCAL1_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x10 (CH1_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL1_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH1_OCAL_LSB register address & default value */
    #define CH1_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x10)
    #define CH1_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL1_LSB field mask & values */
    #define CH1_OCAL_LSB_OCAL1_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH1_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x11 (CH1_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL1_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH1_GCAL_MSB register address & default value */
    #define CH1_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x11)
    #define CH1_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL1_MSB field mask & values */
    #define CH1_GCAL_MSB_GCAL1_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x12 (CH1_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL1_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH1_GCAL_LSB register address & default value */
    #define CH1_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x12)
    #define CH1_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL1_LSB field mask & values */
    #define CH1_GCAL_LSB_GCAL1_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH1_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 2)

/* Register 0x13 (CH2_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE2[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX2[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH2_CFG register address & default value */
    #define CH2_CFG_ADDRESS                                                 ((uint8_t)  0x13)
    #define CH2_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE2 field mask & values */
    #define CH2_CFG_PHASE2_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH2_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX2 field mask & values */
    #define CH2_CFG_MUX2_MASK                                               ((uint16_t) 0x0003)
    #define CH2_CFG_MUX2_AIN2P_AIN2N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH2_CFG_MUX2_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH2_CFG_MUX2_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH2_CFG_MUX2_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x14 (CH2_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL2_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH2_OCAL_MSB register address & default value */
    #define CH2_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x14)
    #define CH2_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL2_MSB field mask & values */
    #define CH2_OCAL_MSB_OCAL2_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x15 (CH2_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL2_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH2_OCAL_LSB register address & default value */
    #define CH2_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x15)
    #define CH2_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL2_LSB field mask & values */
    #define CH2_OCAL_LSB_OCAL2_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH2_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x16 (CH2_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL2_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH2_GCAL_MSB register address & default value */
    #define CH2_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x16)
    #define CH2_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL2_MSB field mask & values */
    #define CH2_GCAL_MSB_GCAL2_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x17 (CH2_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL2_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH2_GCAL_LSB register address & default value */
    #define CH2_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x17)
    #define CH2_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL2_LSB field mask & values */
    #define CH2_GCAL_LSB_GCAL2_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH2_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 3)

/* Register 0x18 (CH3_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE3[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX3[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH3_CFG register address & default value */
    #define CH3_CFG_ADDRESS                                                 ((uint8_t)  0x18)
    #define CH3_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE3 field mask & values */
    #define CH3_CFG_PHASE3_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH3_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX3 field mask & values */
    #define CH3_CFG_MUX3_MASK                                               ((uint16_t) 0x0003)
    #define CH3_CFG_MUX3_AIN3P_AIN3N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH3_CFG_MUX3_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH3_CFG_MUX3_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH3_CFG_MUX3_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x19 (CH3_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL3_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH3_OCAL_MSB register address & default value */
    #define CH3_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x19)
    #define CH3_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL3_MSB field mask & values */
    #define CH3_OCAL_MSB_OCAL3_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x1A (CH3_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL3_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH3_OCAL_LSB register address & default value */
    #define CH3_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x1A)
    #define CH3_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL3_LSB field mask & values */
    #define CH3_OCAL_LSB_OCAL3_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH3_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x1B (CH3_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL3_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH3_GCAL_MSB register address & default value */
    #define CH3_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x1B)
    #define CH3_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL3_MSB field mask & values */
    #define CH3_GCAL_MSB_GCAL3_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x1C (CH3_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL3_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH3_GCAL_LSB register address & default value */
    #define CH3_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x1C)
    #define CH3_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL3_LSB field mask & values */
    #define CH3_GCAL_LSB_GCAL3_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH3_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 4)

/* Register 0x1D (CH4_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE4[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX4[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH4_CFG register address & default value */
    #define CH4_CFG_ADDRESS                                                 ((uint8_t)  0x1D)
    #define CH4_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE4 field mask & values */
    #define CH4_CFG_PHASE4_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH4_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX4 field mask & values */
    #define CH4_CFG_MUX4_MASK                                               ((uint16_t) 0x0003)
    #define CH4_CFG_MUX4_AIN4P_AIN4N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH4_CFG_MUX4_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH4_CFG_MUX4_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH4_CFG_MUX4_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x1E (CH4_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL4_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH4_OCAL_MSB register address & default value */
    #define CH4_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x1E)
    #define CH4_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL4_MSB field mask & values */
    #define CH4_OCAL_MSB_OCAL4_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x1F (CH4_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL4_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH4_OCAL_LSB register address & default value */
    #define CH4_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x1F)
    #define CH4_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL4_LSB field mask & values */
    #define CH4_OCAL_LSB_OCAL4_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH4_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x20 (CH4_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL4_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH4_GCAL_MSB register address & default value */
    #define CH4_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x20)
    #define CH4_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL4_MSB field mask & values */
    #define CH4_GCAL_MSB_GCAL4_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x21 (CH4_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL4_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH4_GCAL_LSB register address & default value */
    #define CH4_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x21)
    #define CH4_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL4_LSB field mask & values */
    #define CH4_GCAL_LSB_GCAL4_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH4_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 5)

/* Register 0x22 (CH5_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE5[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX5[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH5_CFG register address & default value */
    #define CH5_CFG_ADDRESS                                                 ((uint8_t)  0x22)
    #define CH5_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE5 field mask & values */
    #define CH5_CFG_PHASE5_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH5_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX5 field mask & values */
    #define CH5_CFG_MUX5_MASK                                               ((uint16_t) 0x0003)
    #define CH5_CFG_MUX5_AIN5P_AIN5N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH5_CFG_MUX5_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH5_CFG_MUX5_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH5_CFG_MUX5_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x23 (CH5_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL5_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH5_OCAL_MSB register address & default value */
    #define CH5_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x23)
    #define CH5_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL5_MSB field mask & values */
    #define CH5_OCAL_MSB_OCAL5_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x24 (CH5_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL5_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH5_OCAL_LSB register address & default value */
    #define CH5_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x24)
    #define CH5_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL5_LSB field mask & values */
    #define CH5_OCAL_LSB_OCAL5_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH5_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x25 (CH5_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL5_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH5_GCAL_MSB register address & default value */
    #define CH5_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x25)
    #define CH5_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL5_MSB field mask & values */
    #define CH5_GCAL_MSB_GCAL5_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x26 (CH5_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL5_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH5_GCAL_LSB register address & default value */
    #define CH5_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x26)
    #define CH5_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL5_LSB field mask & values */
    #define CH5_GCAL_LSB_GCAL5_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH5_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 6)

/* Register 0x27 (CH6_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE6[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX6[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH6_CFG register address & default value */
    #define CH6_CFG_ADDRESS                                                 ((uint8_t)  0x27)
    #define CH6_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE6 field mask & values */
    #define CH6_CFG_PHASE6_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH6_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX6 field mask & values */
    #define CH6_CFG_MUX6_MASK                                               ((uint16_t) 0x0003)
    #define CH6_CFG_MUX6_AIN6P_AIN6N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH6_CFG_MUX6_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH6_CFG_MUX6_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH6_CFG_MUX6_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x28 (CH6_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL6_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH6_OCAL_MSB register address & default value */
    #define CH6_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x28)
    #define CH6_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL6_MSB field mask & values */
    #define CH6_OCAL_MSB_OCAL6_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x29 (CH6_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL6_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH6_OCAL_LSB register address & default value */
    #define CH6_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x29)
    #define CH6_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL6_LSB field mask & values */
    #define CH6_OCAL_LSB_OCAL6_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH6_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x2A (CH6_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL6_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH6_GCAL_MSB register address & default value */
    #define CH6_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x2A)
    #define CH6_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL6_MSB field mask & values */
    #define CH6_GCAL_MSB_GCAL6_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x2B (CH6_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL6_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH6_GCAL_LSB register address & default value */
    #define CH6_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x2B)
    #define CH6_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL6_LSB field mask & values */
    #define CH6_GCAL_LSB_GCAL6_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH6_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



#endif
#if (CHANNEL_COUNT > 7)

/* Register 0x2C (CH7_CFG) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                           PHASE7[9:0]                                                           |                   RESERVED0[3:0]                  |        MUX7[1:0]        |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH7_CFG register address & default value */
    #define CH7_CFG_ADDRESS                                                 ((uint8_t)  0x2C)
    #define CH7_CFG_DEFAULT                                                 ((uint16_t) 0x0000)

    /* PHASE7 field mask & values */
    #define CH7_CFG_PHASE7_MASK                                             ((uint16_t) 0xFFC0)

    /* RESERVED0 field mask & values */
    #define CH7_CFG_RESERVED0_MASK                                          ((uint16_t) 0x003C)

    /* MUX7 field mask & values */
    #define CH7_CFG_MUX7_MASK                                               ((uint16_t) 0x0003)
    #define CH7_CFG_MUX7_AIN7P_AIN7N                                        ((uint16_t) 0x0000 << 0)    // DEFAULT
    #define CH7_CFG_MUX7_ADC_INPUT_SHORT                                    ((uint16_t) 0x0001 << 0)
    #define CH7_CFG_MUX7_DC_DIAGNOSTIC                                      ((uint16_t) 0x0002 << 0)
    #define CH7_CFG_MUX7_AC_DIAGNOSTIC                                      ((uint16_t) 0x0003 << 0)



/* Register 0x2D (CH7_OCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                OCAL7_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH7_OCAL_MSB register address & default value */
    #define CH7_OCAL_MSB_ADDRESS                                            ((uint8_t)  0x2D)
    #define CH7_OCAL_MSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL7_MSB field mask & values */
    #define CH7_OCAL_MSB_OCAL7_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x2E (CH7_OCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             OCAL7_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH7_OCAL_LSB register address & default value */
    #define CH7_OCAL_LSB_ADDRESS                                            ((uint8_t)  0x2E)
    #define CH7_OCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* OCAL7_LSB field mask & values */
    #define CH7_OCAL_LSB_OCAL7_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH7_OCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)



/* Register 0x2F (CH7_GCAL_MSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                GCAL7_MSB[15:0]                                                                                                |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH7_GCAL_MSB register address & default value */
    #define CH7_GCAL_MSB_ADDRESS                                            ((uint8_t)  0x2F)
    #define CH7_GCAL_MSB_DEFAULT                                            ((uint16_t) 0x8000)

    /* GCAL7_MSB field mask & values */
    #define CH7_GCAL_MSB_GCAL7_MSB_MASK                                     ((uint16_t) 0xFFFF)



/* Register 0x30 (CH7_GCAL_LSB) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                             GCAL7_LSB[7:0]                                            |                                             RESERVED0[7:0]                                            |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* CH7_GCAL_LSB register address & default value */
    #define CH7_GCAL_LSB_ADDRESS                                            ((uint8_t)  0x30)
    #define CH7_GCAL_LSB_DEFAULT                                            ((uint16_t) 0x0000)

    /* GCAL7_LSB field mask & values */
    #define CH7_GCAL_LSB_GCAL7_LSB_MASK                                     ((uint16_t) 0xFF00)

    /* RESERVED0 field mask & values */
    #define CH7_GCAL_LSB_RESERVED0_MASK                                     ((uint16_t) 0x00FF)


#endif

/* Register 0x3E (REGMAP_CRC) definition
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |   Bit 15   |   Bit 14   |   Bit 13   |   Bit 12   |   Bit 11   |   Bit 10   |    Bit 9   |    Bit 8   |    Bit 7   |    Bit 6   |    Bit 5   |    Bit 4   |    Bit 3   |    Bit 2   |    Bit 1   |    Bit 0   |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * |                                                                                                 REG_CRC[15:0]                                                                                                 |
 * -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

    /* REGMAP_CRC register address & default value */
    #define REGMAP_CRC_ADDRESS                                              ((uint8_t)  0x3E)
    #define REGMAP_CRC_DEFAULT                                              ((uint16_t) 0x0000)

    /* REG_CRC field mask & values */
    #define REGMAP_CRC_REG_CRC_MASK                                         ((uint16_t) 0xFFFF)



//****************************************************************************
//
// Channel data structure
//
//****************************************************************************

typedef struct
{
    uint16_t response;
    uint16_t crc;
    int32_t channel0;

#if (CHANNEL_COUNT > 1)
    int32_t channel1;
#endif
#if (CHANNEL_COUNT > 2)
    int32_t channel2;
#endif
#if (CHANNEL_COUNT > 3)
    int32_t channel3;
#endif
#if (CHANNEL_COUNT > 4)
    int32_t channel4;
#endif
#if (CHANNEL_COUNT > 5)
    int32_t channel5;
#endif
#if (CHANNEL_COUNT > 6)
    int32_t channel6;
 #endif
 #if (CHANNEL_COUNT > 7)
    int32_t channel7;
#endif
} adc_channel_data;


//****************************************************************************
//
// Internal variables
//
//****************************************************************************

// Array used to recall device register map configurations */
static uint16_t             registerMap[NUM_REGISTERS];

// Array of SPI word lengths
const static uint8_t        wlength_byte_values[] = {2, 3, 4, 4};

//****************************************************************************
//
// Function prototypes
//
//****************************************************************************

void        adcStartup(void);
void        InitSPI(void);
void        delay_ms(const uint32_t delay_time_ms);
void        setSYNC_RESET(const bool state);
void        toggleRESET(void);
void        restoreRegisterDefaults(void);
void        writeSingleRegister(uint8_t address, uint16_t data);
void        spiSendReceiveArrays(const uint8_t DataTx[], uint8_t DataRx[], const uint8_t byteLength);
void        setCS(const bool state);
uint8_t     spiSendReceiveByte(const uint8_t dataTx);
uint16_t    readSingleRegister(uint8_t address);
uint16_t    sendCommand(uint16_t op_code);

// Getter functions
uint16_t    getRegisterValue(uint8_t address);

// Helper functions
uint8_t     upperByte(uint16_t uint16_Word);
uint8_t     lowerByte(uint16_t uint16_Word);
uint16_t    combineBytes(uint8_t upperByte, uint8_t lowerByte);
int32_t     signExtend(const uint8_t dataBytes[]);


//****************************************************************************
//
// Internal function prototypes
//
//****************************************************************************

uint8_t     buildSPIarray(const uint16_t opcodeArray[], uint8_t numberOpcodes, uint8_t byteArray[]);
uint16_t    enforce_selected_device_modes(uint16_t data);
uint8_t     getWordByteLength(void);

//****************************************************************************
//
// Register macros
//
//****************************************************************************

/** Returns Number of Channels */
#define CHANCNT             ((uint8_t) ((getRegisterValue(ID_ADDRESS) & ID_CHANCNT_MASK) >> 8))

/** Revision ID bits */
#define REVISION_ID         ((uint8_t) ((getRegisterValue(ID_ADDRESS) & ID_REVID_MASK) >> 0))

/** Returns true if SPI interface is locked */
#define SPI_LOCKED          ((bool) (getRegisterValue(STATUS_ADDRESS) & STATUS_LOCK_LOCKED))

/** Returns SPI Communication Word Format*/
#define WLENGTH             ((uint8_t) ((getRegisterValue(MODE_ADDRESS) & STATUS_WLENGTH_MASK) >> 8))

/** Returns true if Register Map CRC byte enable bit is set */
#define REGMAP_CRC_ENABLED  ((bool) (getRegisterValue(MODE_ADDRESS) & MODE_REG_CRC_EN_ENABLED))

/** Returns true if SPI CRC byte enable bit is set */
#define SPI_CRC_ENABLED     ((bool) (getRegisterValue(MODE_ADDRESS) & MODE_RX_CRC_EN_ENABLED))

/** Returns false for CCITT and true for ANSI CRC type */
#define SPI_CRC_TYPE        ((bool) (getRegisterValue(MODE_ADDRESS) & MODE_CRC_TYPE_MASK))

/** Data rate register field setting */
#define OSR_INDEX           ((uint8_t) ((getRegisterValue(CLOCK_ADDRESS) & CLOCK_OSR_MASK) >> 2))

/** Data rate register field setting */
#define POWER_MODE          ((uint8_t) ((getRegisterValue(CLOCK_ADDRESS) & CLOCK_PWR_MASK) >> 0))


//*****************************************************************************
//
// Pin definitions (MSP432E401Y)
//
//*****************************************************************************

#define nDRDY_PORT          (GPIO_PORTM_BASE)
#define nDRDY_PIN           (GPIO_PIN_0)
#define nDRDY_INT           (INT_GPIOM)

#define nCS_PORT            (GPIO_PORTK_BASE)
#define nCS_PIN             (GPIO_PIN_5)

#define nSYNC_nRESET_PORT   (GPIO_PORTK_BASE)
#define nSYNC_nRESET_PIN    (GPIO_PIN_4)


//*****************************************************************************
//
// Macros
//
//*****************************************************************************
/** Alias used for setting GPIOs pins to the logic "high" state */
#define HIGH                ((bool) true)

/** Alias used for setting GPIOs pins to the logic "low" state */
#define LOW                 ((bool) false)

#endif /* ADS131M0X_H_ */

Thanks

Ram.