Post Go back to editing

SigmaStudio problem with more than 8 mics

Category: Software
Software Version: SigmaStudio 4.5

Hi everyone,

I'm new on this platform and I hope you'll be able to help me.

I'm working with an hardware setup composed by an SHARC Audio Module ADZS-SC589-MINI, which is used as A2B master node, and 2 EVAL-AD2428WC1BZ (that can be only A2B slaves). 

I'm using SigmaStudio v.4.5 to generate the A2B configuration file. With this setup I managed to use, master side, TDM4 with both DRX0 and DRX1 active with 32-bit TDM slots (6.144MHz frequency). I attach the SigmaStudio capture that I used.

This setup really works fine!! This means that:

- The harware is set correctly;

- The code on CrossCore Embedded Studio 2.9.3 is good;

- The SigmaStudio generated A2B configuration file is ok.

So I tried to get closer to the final objective, and here comes the issue: I tried to start from the previous SigmaStudio file, in order to increase the number of  EVAL-AD2428WC1BZ boards to 4. The A2B network at the end will serve 16 mics. I also decreased the number of bits per TDM slot to 16 (in order to halve the required clock, since i reached the top limit). I leave below the capture of this new SigmaStudio config:

I put here also the Master and Slave (they are all the same) configurations:

and finally the Stream Configuration:

The thing that I would like to know is the correctness or not of my SigmaStudio setup. If it is correct probably the error is in the C code on CrossCore Embedded Studio.

If I missed to specify something please tell me.

Thank You

Dott. Elia Vignoli

  • Hi, Dott.Elia Vignoli,

    As per observation of your settings, One comment - PDM mics on AD2428WC1BZ PDM mics requires alternate clock to operate. A2B has an option to generate alternate clock on IO7 pin. please enable the alternate clock on IO7 as shown in below picture. I hope that will solve your problem.

    Thanks,

    Swaroop B U

  • Hi Swaroop B U,

    I just have applied your suggest, but unfortunately this doesn't change anything. The situation is this one: I guess that the A2B network is initiated correctly and all the slaves are recognized. This because the sound flow is enabled to all mics. The problem is that the sound is somewhat corrupted when I try to listen it from the LINE OUT port of the SHARC Audio Module ADZS-SC589-MINI. Seems that the TDM frames are not properly allocated, or there is some issue in the timing.

    Now, my idea is that probably there could something in the code that doesn't work properly, but still I'm a bit perplexed since with 8 mics works all perfectly. Unfortunately I cannot share the code with you (due to unfeasibility because of the huge dimensions and due to some restrictions that I have). But If you have any other suggest, please let me know.

    Dott. Elia Vignoli

  • Hi, Dott.Elia Vignoli 

    Keep the settings same as in the 1st testing setup of 8 mics.
    Please make sure your DSP settings and the A2B main settings are in sync.

    As per your setup observation, in DSP configuration increase the number of incoming slots to receive the incoming data.

    Please refer the below link for the matching the settings of DSP and the A2B main Settings.

    When using ADAU1452 on AD2428WD1BZ evaluation board as audio Host, how should I configure TDM settings? - Q&A - A2B - EngineerZone (analog.com) 

    Hope this will solve your problem.

    Thanks.
    Swaroop B U 

  • Thank You Swaroop B U,

    I cannot understand the picture that you attached in your previous reply. Where does it come from? How can I obtain the block Input1?

    I took a look to the link you provided to me. The problem is that my framework is quite different wrt the one in that page. Before dive into the C code I want to ask you: there is any reason in your opinion why the code shouldn't work by adding other 8 mics?

    I want also to point out that the transition between 4 and 8 mics works good. Indeed I can use both 4 or 8 mics with the same setup (obviously by changing the appropriate things inside the code, for example regarding the number of TDM slots of the BCLK freq.). So I don't understand why it doesn't work with more mics. It's frustrating.

    Dott. Elia Vignoli

  • Hi, EliaVignoli

    Could you please share your A2B configuration file (XML or Exported .C file ), 

    We will try to reproduce your setup using your configuration file at our end and get back to you.

    Thanks,

    Swaroop B U

  • Would be great Swaroop B U!! Here the code you requested (.C format):

    /*******************************************************************************
    Copyright (c) 2022 - Analog Devices Inc. All Rights Reserved.
    This software is proprietary & confidential to Analog Devices, Inc.
    and its licensors.
    ******************************************************************************
    * @file: adi_a2b_busconfig.c
    * @brief: This file contains A2B Schematic information
    * @version: $Revision$
    * @date: Wednesday, May 18, 2022-9:48:40 AM
    * BCF Version - 1.0.0
    * A2B DLL version- 19.3.0
    * A2B Stack DLL version- 19.3.0.0
    * SigmaStudio version- 4.05.000.1779
    * Developed by: Automotive Software and Systems team, Bangalore, India
    * THIS IS A SIGMASTUDIO GENERATED FILE AND SHALL NOT BE MODIFIED OUTSIDE OF SIGMASTUDIO
    *****************************************************************************/
    
    /*! \addtogroup Target_Independent
    * @{
    */
    
    /*! \addtogroup Bus_Configuration Bus Configuration
    * @{
    */
    
    #include "adi_a2b_datatypes.h"
    #include "adi_a2b_graphdata.h"
    #include "adi_a2b_busconfig.h"
    
    static ADI_A2B_MASTER_SLAVE_CONFIG sChainConfig0;
    static ADI_A2B_MASTER_NCD sMasterNode0;
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode0;
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode1;
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode2;
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode3;
    static A2B_PERIPHERAL_DEVICE_CONFIG  Target_PeriConfig0;
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave0_PeriConfig0;
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave1_PeriConfig0;
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave2_PeriConfig0;
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave3_PeriConfig0;
    
    
    ADI_A2B_MEM_BCF_DATA
    
    /* BUS CONFIGURATION */ 
    ADI_A2B_BCD sBusDescription = 
     { 
    	/* Number of master nodes/daisy chains in the network */ 
    	.nNumMasterNode  = 1u, 
     
    	/* Array of Master-slave daisy chains */ 
     	.apNetworkconfig = {  &sChainConfig0, NULL_PTR, NULL_PTR, NULL_PTR }, 
    
    	/* Network control guidance */ 
    	.sTargetProperties    = 
     	{ 
    		/* Discovery Mode Selection */ 
    		.eDiscoveryMode     = A2B_SIMPLE_DISCOVERY,
    
    		/* Delay (in milliseconds) to wait after a software reset and before discovery start*/ 
    		.nDiscoveryStartDelay     = 25,
    
    		/*  Enable/Disable  Line diagnostics (Post discovery) */ 
    		.bLineDiagnostics   = ENABLED,
    
    		/*  Enable/Disable automatic discovery upon critical faults (during discovery process) */ 
    		.bAutoDiscCriticalFault = DISABLED,
    
    		/*  Number of automatic discovery attempts (during discovery process) */ 
    		.nAttemptsCriticalFault = 0,
    
    		/* Auto-rediscovery upon post discovery line fault */ 
    		.bAutoRediscOnFault = DISABLED,
    
    		/*! Interval (in milliseconds) between re-discovery attempt */ 
    		.nRediscInterval = 100,
    
    		/*! Number of peripheral devices connected to Target */
    		.nNumPeriDevice = 1,
    
    		/*! Array of peripheral configuration pointers */
     		.apPeriConfig = { 	&Target_PeriConfig0, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR }
     	}, 
    
     };
    
     /************************************************* CHAIN 0 DESCRIPTION  ********************************************************************************/
    
     /* MASTER-SLAVE DAISY CHAIN0 */ 
     
    ADI_A2B_MEM_BCF_DATA 
    static ADI_A2B_MASTER_SLAVE_CONFIG sChainConfig0= 
     { 
     	/* Pointer to master node */ 
    	.pMasterConfig = &sMasterNode0, 
     
    	/*! Number of Slave nodes */ 
    	.nNumSlaveNode = 4, 
     
    	/*! Array of slave node pointers */ 
    	.apSlaveConfig = { &sChain0_SlaveNode0, &sChain0_SlaveNode1, &sChain0_SlaveNode2, &sChain0_SlaveNode3, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR}, 
    
    	.sCommonSetting = 
     	{ 
    		/*! Master I2C address - 7 bit */ 
    		.nMasterI2CAddr = 0x68, 
    
    		/*! Bus I2C address - 7 bit */ 
    		.nBusI2CAddr = 0x69, 
    
    		/*! Enable down stream */ 
    		.bEnableDwnstream = ENABLED, 
    
    		/*! Enable down stream */ 
    		.bEnableUpstream = ENABLED, 
    
    		/*! Down slot size */ 
    		.nDwnSlotSize = A2B_DNSLOT_SIZE_24, 
    
     		/*! Up slot size  */ 
    		.nUpSlotSize = A2B_UPSLOT_SIZE_24 ,
    
     		/*! Floating point compression for upstream  */ 
    		.bUpstreamCompression  = DISABLED,
    
    		/*! Floating point compression for downstream  */  
    		.bDwnstreamCompression = DISABLED,
    
    		/*! Reduce Data Rate on A2B Bus   */  
    		.bEnableReduceRate = DISABLED,
    
    		/*! System level reduced rate factor   */  
    		.nSysRateDivFactor =1,
    
    	} 
     };
    
     /************************************************* START OF MASTER NODE 0 DESCRIPTION ********************************************************************************/ 
    
     /*  MASTER NODE DESCRIPTION   */ 
    
    ADI_A2B_MEM_BCF_DATA
    static ADI_A2B_MASTER_NCD sMasterNode0= 
    {
    	/*! Node ID */
    	.nNodeID			= 0x0u ,
    
    	/*! Source node ID : '0xFF' indicates Target processor */
    	.nSrcNodeID			= 0xFFu ,
    
    	/*! Transceiver part number */
    	.ePartNum			= ADI_A2B_AD2428 ,
    
    	.sAuthSettings =
    	{
    		/*! Vendor ID - ADI */
    		.nVendorID			= 0xADu ,
    
    		/*! Silicon version  - ADI */
    		.nVersionID			= 0x0u ,
    
    		/*! Product ID - AD24xx */
    		.nProductID			= 0x28u ,
    
    		/*! Interface Capability - I2C */
    		.nCapability		= 0x1u ,
    	},
    
    	.sCustomNodeAuthSettings =
    	{
    		/*! Enable/Disable Custom Node ID settings */
    		.bCustomNodeIdAuth		= DISABLED ,
    
    	},
    
    	.sI2SSettings =
    	{
    		/*! TDM mode  */
    		.nTDMMode			= A2B_TDM8 ,
    
    		/*! TDM channel size  */
    		.nTDMChSize			= A2B_16BIT_TDM ,
    
    		/*! SYNC mode - Pulse/50% duty cycle   */
    		.nSyncMode			= A2B_PULSE_SYNC ,
    
    		/*! SYNC Polarity- Rising/Falling edge */
    		.nSyncPolarity		= FALLING_EDGE ,
    
    		/*! Early frame sync status */
    		.bEarlySync			= DISABLED ,
    
    		/*! Serial RX on DTX1 Pin */
    		.bSerialRxOnDTx1			= DISABLED ,
    
    		/*! DTXn change BCLK edge */
    		.nBclkTxPolarity	= FALLING_EDGE ,
    
    		/*! DRXn Sampling BCLK edge */
    		.nBclkRxPolarity	= RAISING_EDGE ,
    
    		/*! Interleave slots between Tx pins  */
    		.bTXInterleave		= ENABLED ,
    
    		/*! Interleave slots between Rx pins  */
    		.bRXInterleave		= ENABLED ,
    
    		/*! Transmit Channel offset in TDM - 0 to 63 */
    		.nTxOffset			= 0x0u ,
    
    		/*! Receive channel offset in TDM - 0 to 63 */
    		.nRxOffset			= 0x0u ,
    
    		/*! Tx Pin TriState before driving TDM slots */
    		.bTriStateBeforeTx	= DISABLED ,
    
    		/*! Tx Pin Tristate after driving TDM slots */
    		.bTriStateAfterTx	= DISABLED ,
    
    		.sI2SRateConfig =
    		{
    			/*! Enable RR valid bit in LSB */
    			.bRRValidBitLSB	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra bit */
    			.bRRValidBitExtraBit	= DISABLED ,
    
    			/*! Enable Reduced rate strobe in ADR1/IO1 */
    			.bRRStrobe	= DISABLED ,
    
    			/*! Strobe direction High or Low */
    			.bRRStrobeDirection	= A2B_LOW ,
    
    		},
    	},
    	.sConfigCtrlSettings =
    	{
    		/*! Early acknowledge for I2C read/write */
    		.bI2CEarlyAck		= DISABLED ,
    
    		/*! Response cycles  */
    		.nRespCycle			= 0x51u ,
    
    		/*! Pass up slots */
    		.nPassUpSlots		= 0x10u ,
    
    		/*! Pass down slots */
    		.nPassDwnSlots		= 0x0u ,
    
    		/*! Data control for Master */
    		.nDatctrl		= 0x3u ,
    
    	},
    	.sGPIOSettings =
    	{
    		.sPinMuxSettings =
    		{
    			/*! GPIO 1 Pin multiplexing */
    			.bGPIO1PinUsage	= A2B_GPIO_1_DISABLE ,
    
    			/*! GPIO 2 Pin multiplexing */
    			.bGPIO2PinUsage	= A2B_GPIO_2_DISABLE ,
    
    			/*! GPIO 3 Pin multiplexing */
    			.bGPIO3PinUsage	= A2B_GPIO_3_AS_DTX0 ,
    
    			/*! GPIO 4 Pin multiplexing */
    			.bGPIO4PinUsage	= A2B_GPIO_4_AS_DTX1 ,
    
    			/*! GPIO 5 Pin multiplexing */
    			.bGPIO5PinUsage	= A2B_GPIO_5_AS_DRX0 ,
    
    			/*! GPIO 6 Pin multiplexing */
    			.bGPIO6PinUsage	= A2B_GPIO_6_AS_DRX1 ,
    			/*! GPIO 7 Pin multiplexing */
    			.bGPIO7PinUsage	= A2B_GPIO_7_DISABLE ,
    
    		},
    		.sPinIntConfig =
    		{
    			/*! Enable GPIO 1 Input pin interrupt  */
    			.bGPIO1Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 1 Input pin  */
    			.bGPIO1IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 2 Input pin interrupt  */
    			.bGPIO2Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 2 Input pin  */
    			.bGPIO2IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 3 Input pin interrupt  */
    			.bGPIO3Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 3 Input pin  */
    			.bGPIO3IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 4 Input pin interrupt  */
    			.bGPIO4Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 4 Input pin  */
    			.bGPIO4IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 5 Input pin interrupt  */
    			.bGPIO5Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 5 Input pin  */
    			.bGPIO5IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 6 Input pin interrupt  */
    			.bGPIO6Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 6 Input pin  */
    			.bGPIO6IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 7 Input pin interrupt  */
    			.bGPIO7Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 7 Input pin  */
    			.bGPIO7IntPolarity	= RAISING_EDGE ,
    
    		},
    		.sOutPinVal =
    		{
    			/*! Data value for GPIO 1 output pin  */
    			.bGPIO1Val = A2B_LOW ,
    
    			/*! Data value for GPIO 2 output pin  */
    			.bGPIO2Val = A2B_LOW ,
    
    			/*! Data value for GPIO 3 output pin  */
    			.bGPIO3Val = A2B_LOW ,
    
    			/*! Data value for GPIO 4 output pin  */
    			.bGPIO4Val = A2B_LOW ,
    
    			/*! Data value for GPIO 5 output pin  */
    			.bGPIO5Val = A2B_LOW ,
    
    			/*! Data value for GPIO 6 output pin  */
    			.bGPIO6Val = A2B_LOW ,
    
    			/*! Data value for GPIO 7 output pin  */
    			.bGPIO7Val = A2B_LOW ,
    
    		},
    
    		/*! Digital Pin drive strength */
    		.bHighDriveStrength = ENABLED ,
    
    		/*! IRQ Pin Invert */
    		.bIRQInv = DISABLED ,
    
    		/*! Enable tristate when inactive */
    		.bIRQTriState = DISABLED ,
    
    	},
    
    	.sInterruptSettings =
    	{
    		/*! Report Header count error  */
    		.bReportHDCNTErr		= ENABLED ,
    
    		/*! Report Data decoding error  */
    		.bReportDDErr			= ENABLED ,
    
    		/*! Report Data CRC error  */
    		.bReportCRCErr			= ENABLED ,
    
    		/*! Report Data Parity error  */
    		.bReportDataParityErr	= DISABLED ,
    
    		/*! Report Data Bus Power error  */
    		.bReportPwrErr			= ENABLED ,
    
    		/*! Report bit error count overflow error  */
    		.bReportErrCntOverFlow	= ENABLED ,
    
    		/*! Report SRF miss error  */
    		.bReportSRFMissErr	= ENABLED ,
    
    		/*! Report GPIO  1 Interrupt */
    		.bReportGPIO1			= DISABLED ,
    
    		/*! Report GPIO  2 Interrupt */
    		.bReportGPIO2			= DISABLED ,
    
    		/*! Report GPIO  3 Interrupt */
    		.bReportGPIO3			= DISABLED ,
    
    		/*! Report GPIO  4 Interrupt */
    		.bReportGPIO4			= DISABLED ,
    
    		/*! Report GPIO  5 Interrupt */
    		.bReportGPIO5			= DISABLED ,
    
    		/*! Report GPIO  6 Interrupt */
    		.bReportGPIO6			= DISABLED ,
    
    		/*! Report GPIO  7 Interrupt */
    		.bReportGPIO7			= DISABLED ,
    
    		/*! Report I2C failure error  */
    		.bReportI2CErr			= ENABLED ,
    
    		/*! Report Discovery Completion */
    		.bDiscComplete			= ENABLED ,
    
    		/*! Report Interrupt frame error */
    		.bIntFrameCRCErr		= ENABLED ,
    
    		/*! Report Interrupt requests  */
    		.bSlaveIntReq			= ENABLED ,
    
    	},
    
    	.sGPIODSettings =
    	{
    		.sGPIOD1Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD2Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD3Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD4Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD5Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD6Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    		.sGPIOD7Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    
    	},
    
    	.sClkOutSettings =
    	{
    		/*! Enable Clock1 inversion */
    		.bClk1Inv			= DISABLED ,
    
    		/*! Clk1 pre-division */
    		.bClk1PreDiv			= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk1 division */
    		.bClk1Div			= A2B_CLKOUT_DIV_2,
    
    		/*! Enable Clock2 inversion */
    		.bClk2Inv			= DISABLED ,
    
    		/*! Clk2 pre-division */
    		.bClk2PreDiv			= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk2 division */
    		.bClk2Div			= A2B_CLKOUT_DIV_2,
    
    	},
    
    	.sRegSettings =
    	{
    		/*! Switch control register */
    		.nSWCTL		= 0x1u ,
    
    		/*! PDM Control register  */
    		.nPDMCTL	= 0x0u ,
    
    		/*! PDM Control 2 register  */
    		.nPDMCTL2	= 0x0u ,
    
    		/*! PLL Control register  */
    		.nPLLCTL	= 0x0u ,
    
    		/*! LVDSA TX Control Register */
    		.nTXACTL	= 0x0u ,
    
    		/*! LVDSB TX Control Register */
    		.nTXBCTL	= 0x0u ,
    
    		/*! Control Register */
    		.nCONTROL	= 0x0u ,
    
    		/*! Test mode register */
    		.nTESTMODE	= 0x0u ,
    
    		/*! Error control register */
    		.nBECCTL	= 0xEFu ,
    
    		/*! Error management register  */
    		.nERRMGMT	= 0x0u ,
    
    		/*! I2S test register  */
    		.nI2STEST	= 0x0u ,
    
    		/*! Generate error  */
    		.nGENERR	= 0x0u ,
    
    		/*! Raise interrupt register */
    		.nRAISE		= 0x0u ,
    
    		/*! Bus monitor configuration  */
    		.nBMMCFG	= 0x0u ,
    
    	}
    
    };
    
    /************************************************* END OF MASTER NODE 0 DESCRIPTION ********************************************************************************/
    
     /************************************************* START OF SLAVE NODE 0 DESCRIPTION ********************************************************************************/
    
    /* SLAVE NODE DESCRIPTION */ 
    
    ADI_A2B_MEM_BCF_DATA
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode0= 
    {
    	/* Node ID  */
    	.nNodeID			= 0x0u ,
    
    	/* Source node ID  */
    	.nSrcNodeID			= 0x0u ,
    
    	/*! Transceiver part number */
    	.ePartNum			= ADI_A2B_AD2428 ,
    
    	/* Auto-configure Node Enabled */
    	.bEnableAutoConfig			= DISABLED ,
    
    	.sAuthSettings =
    	{
    		/*! Vendor ID - ADI */
    		.nVendorID			= 0xADu ,
    
    		/*! Silicon version  */
    		.nVersionID			= 0x0u ,
    
    		/*! PRODUCT ID -AD2410 */
    		.nProductID			= 0x28u ,
    
    		/*! Expected capablity - I2C */
    		.nCapability		= 0x1u ,
    	},
    
    	.sCustomNodeAuthSettings =
    	{
    		/*! Enable/Disable Custom Node ID settings */
    		.bCustomNodeIdAuth		= DISABLED ,
    
    	},
    
    	.sI2SSettings =
    	{
    		/*! TDM mode  */
    		.nTDMMode		= A2B_TDM2 ,
    
    		/*! TDM channel size  */
    		.nTDMChSize			= A2B_16BIT_TDM ,
    
    		/*! SYNC mode - Pulse/50% duty cycle   */
    		.nSyncMode			= A2B_PULSE_SYNC ,
    
    		/*! SYNC Polarity- Rising/Falling edge */
    		.nSyncPolarity		= RAISING_EDGE ,
    
    		/*! Early frame sync status */
    		.bEarlySync			= DISABLED ,
    
    		/*! Serial RX on DTX1 Pin */
    		.bSerialRxOnDTx1			= DISABLED ,
    
    		/*! SYNC offset with Super frame */
    		.nSyncOffset		= 0x0 ,
    
    		/*! DTXn change BCLK edge */
    		.nBclkTxPolarity	= RAISING_EDGE ,
    
    		/*! DRXn sampling BCLK edge */
    		.nBclkRxPolarity	= RAISING_EDGE ,
    
    		/*! Interleave slots between Tx pins  */
    		.bTXInterleave		= DISABLED ,
    
    		/*! Interleave slots between Rx pins  */
    		.bRXInterleave		= DISABLED ,
    
    		.sI2SRateConfig =
    		{
    			/* Sample rate */
    			.nSamplingRate		= A2B_SAMPLERATE_48kHz ,
    
    			/*! Reduce / re-transmit higher frequency samples  */
    		.bReduce			= DISABLED ,
    
    			/*! Share A2B bus slots for reduced sampling */
    			.bShareBusSlot	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra bit */
    			.bRRValidBitLSB 	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra Channel */
    			.bRRValidBitExtraBit	= DISABLED ,
    
    			/*! Enable Reduced rate strobe in ADR1/IO1 */
    			.bRRStrobe	= DISABLED ,
    
    			/*! Strobe direction High or Low */
    			.bRRStrobeDirection	= A2B_LOW ,
    
    		},
    	},
    
    	.sPDMSettings =
    	{
    		/*! Number of PDM0 slots  */
    		.nNumSlotsPDM0		= A2B_PDM0SLOTS_2 ,
    
    		/*! Number of PDM1 slots  */
    		.nNumSlotsPDM1		= A2B_PDM1SLOTS_2 ,
    
    		/*! Use High Pass Filter  */
    		.bHPFUse		= ENABLED ,
    
    		/*! PDM rate  */
    		.nPDMRate		= A2B_PDM_RATE_SFF ,
    
    		/*! PDM Inverted Version of Alternate Clock */
    		.bPDMInvClk		= DISABLED ,
    
    		/*! PDM Alternate Clock */
    		.bPDMAltClk		= ENABLED ,
    
    		/*! PDM0 Falling Edge First */
    		.bPDM0FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM1 Falling Edge First */
    		.bPDM1FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM Destination */
    		.ePDMDestination		= A2B_BUS_ONLY ,
    
    	},
    
    	.sConfigCtrlSettings =
    	{
    		/*! I2C interface frequency */
    		.nI2CFrequency		= A2B_I2C_100kHz ,
    
    		/*! Response cycles  */
    		.nRespCycle			= 0x51u ,
    
    		/*! Expected super/audio frame rate */
    		.nSuperFrameRate	= A2B_SFF_RATE_48_0kHz ,
    
    		/*! Number of broadcast slots */
    		.nBroadCastSlots	= 0x0u ,
    
    		/*! Local down slots */
    		.nLocalDwnSlotsConsume		= 0x0u ,
    
    		/*! Local Up slots */
    		.nLocalUpSlotsContribute		= 0x4u ,
    
    		/*! Pass up slots */
    		.nPassUpSlots		= 0xCu ,
    
    		/*! Pass down slots */
    		.nPassDwnSlots		= 0x0u ,
    
    		/*! Number of slots for contribution */
    		.nSlotsforDwnstrmContribute		= 0x0u ,
    
    		/*! Number of Upslots consumed */
    		.nLocalUpSlotsConsume		= 0x0u ,
    
    		/*! Array of downstream  masks */ 
    		.anUpstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for downstream contribution */
    		.nOffsetDwnstrmContribute		= 0x0u ,
    
    		/*! Enable Down slot consume through mask */
    		.bUseDwnslotConsumeMasks		= ENABLED ,
    
    		/*! Array of downstream  masks */ 
    		.anDwnstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for Upstream contribution*/
    		.nOffsetUpstrmContribute		= 0x0u ,
    
    	},
    	.sGPIOSettings =
    	{
    		.sPinMuxSettings =
    		{
    			/*! GPIO 0 Pin multiplexing */
    			.bGPIO0PinUsage	= A2B_GPIO_0_DISABLE ,
    
    			/*! GPIO 1 Pin multiplexing */
    			.bGPIO1PinUsage	= A2B_GPIO_1_DISABLE ,
    
    			/*! GPIO 2 Pin multiplexing */
    			.bGPIO2PinUsage	= A2B_GPIO_2_AS_CLKOUT ,
    
    			/*! GPIO 3 Pin multiplexing */
    			.bGPIO3PinUsage	= A2B_GPIO_3_DISABLE ,
    
    			/*! GPIO 4 Pin multiplexing */
    			.bGPIO4PinUsage	= A2B_GPIO_4_DISABLE ,
    
    			/*! GPIO 5 Pin multiplexing */
    			.bGPIO5PinUsage	= A2B_GPIO_5_AS_PDM0 ,
    
    			/*! GPIO 6 Pin multiplexing */
    			.bGPIO6PinUsage	= A2B_GPIO_6_AS_PDM1 ,
    
    			/*! GPIO 7 Pin multiplexing */
    			.bGPIO7PinUsage	= A2B_GPIO_7_DISABLE ,
    		},
    		.sPinIntConfig =
    		{
    			/*! Enable GPIO 0 Input pin interrupt  */
    			.bGPIO0Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 0 Input pin  */
    			.bGPIO0IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 1 Input pin interrupt  */
    			.bGPIO1Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 1 Input pin  */
    			.bGPIO1IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 2 Input pin interrupt  */
    			.bGPIO2Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 2 Input pin  */
    			.bGPIO2IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 3 Input pin interrupt  */
    			.bGPIO3Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 3 Input pin  */
    			.bGPIO3IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 4 Input pin interrupt  */
    			.bGPIO4Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 4 Input pin  */
    			.bGPIO4IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 5 Input pin interrupt  */
    			.bGPIO5Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 5 Input pin  */
    			.bGPIO5IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 6 Input pin interrupt  */
    			.bGPIO6Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 6 Input pin  */
    			.bGPIO6IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 7 Input pin interrupt  */
    			.bGPIO7Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 7 Input pin  */
    			.bGPIO7IntPolarity	= RAISING_EDGE ,
    
    		},
    		.sOutPinVal =
    		{
    			/*! Data value for GPIO 0 output pin  */
    			.bGPIO0Val = A2B_LOW ,
    
    			/*! Data value for GPIO 1 output pin  */
    			.bGPIO1Val = A2B_LOW ,
    
    			/*! Data value for GPIO 2 output pin  */
    			.bGPIO2Val = A2B_LOW ,
    
    			/*! Data value for GPIO 3 output pin  */
    			.bGPIO3Val = A2B_LOW ,
    
    			/*! Data value for GPIO 4 output pin  */
    			.bGPIO4Val = A2B_LOW ,
    
    			/*! Data value for GPIO 5 output pin  */
    			.bGPIO5Val = A2B_LOW ,
    
    			/*! Data value for GPIO 6 output pin  */
    			.bGPIO6Val = A2B_LOW ,
    
    			/*! Data value for GPIO 7 output pin  */
    			.bGPIO7Val = A2B_LOW ,
    
    		},
    
    		/*! Digital Pin drive strength */
    		.bHighDriveStrength = ENABLED ,
    
    		/*! IRQ Pin Invert */
    		.bIRQInv = DISABLED ,
    
    		/*! Enable tristate when inactive */
    		.bIRQTriState = DISABLED ,
    
    	},
    
    	.sInterruptSettings =
    	{
    		/*! Report Header count error  */
    		.bReportHDCNTErr		= DISABLED ,
    
    		/*! Report Data decoding error  */
    		.bReportDDErr			= DISABLED ,
    
    		/*! Report Data CRC error  */
    		.bReportCRCErr			= DISABLED ,
    
    		/*! Report Data Parity error  */
    		.bReportDataParityErr	= DISABLED ,
    
    		/*! Report Data Bus Power error  */
    		.bReportPwrErr			= ENABLED ,
    
    		/*! Report bit error count overflow error  */
    		.bReportErrCntOverFlow	= DISABLED ,
    
    		/*! Report SRF miss error  */
    		.bReportSRFMissErr	= DISABLED ,
    
    		/*! Report SRF crc error  */
    		.bReportSRFCrcErr		= DISABLED ,
    
    		/*! Report GPIO  0 Interrupt */
    		.bReportGPIO0			= DISABLED ,
    
    		/*! Report GPIO  1 Interrupt */
    		.bReportGPIO1			= DISABLED ,
    
    		/*! Report GPIO  2 Interrupt */
    		.bReportGPIO2			= DISABLED ,
    
    		/*! Report GPIO  3 Interrupt */
    		.bReportGPIO3			= DISABLED ,
    
    		/*! Report GPIO  4 Interrupt */
    		.bReportGPIO4			= DISABLED ,
    
    		/*! Report GPIO  5 Interrupt */
    		.bReportGPIO5			= DISABLED ,
    
    		/*! Report GPIO  6 Interrupt */
    		.bReportGPIO6			= DISABLED ,
    
    		/*! Report GPIO  7 Interrupt */
    		.bReportGPIO7			= DISABLED ,
    
    	},
    
    	.sGPIODSettings =
    	{
    		.sGPIOD0Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD1Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD2Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD3Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD4Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD5Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD6Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD7Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    	},
    
    	.sClkOutSettings =
    	{
    		/*! Enable Clock1 inversion */
    		.bClk1Inv			= DISABLED ,
    
    		/*! Clk1 pre-division */
    		.bClk1PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk1 division */
    		.bClk1Div			= A2B_CLKOUT_DIV_2,
    
    		/*! Enable Clock2 inversion */
    		.bClk2Inv			= DISABLED ,
    
    		/*! Clk2 pre-division */
    		.bClk2PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk2 division */
    		.bClk2Div			= A2B_CLKOUT_DIV_4,
    
    	},
    	.sRegSettings =
    	{
    		/*! Switch control register */
    		.nSWCTL		= 0x1u ,
    
    		/*! Test mode register */
    		.nTESTMODE	= 0x0u ,
    
    		/*! Error control register */
    		.nBECCTL	= 0xEFu ,
    
    		/*! Error management register  */
    		.nERRMGMT	= 0x0u ,
    
    		/*! I2S test register  */
    		.nI2STEST	= 0x0u ,
    
    		/*! Generate error  */
    		.nGENERR	= 0x0u ,
    
    		/*! Raise interrupt register */
    		.nRAISE		= 0x0u ,
    
    		/*! Bus monitor configuration */
    		.nBMMCFG		= 0x0u ,
    
    		/*! Clock sustain configuration   */
    		.nSUSCFG	= 0x0u ,
    
    		/*!  Mailbox 0 control */
    		.nMBOX0CTL		= 0x0u ,
    
    		/*!  Mailbox 1 control */
    		.nMBOX1CTL		= 0x0u ,
    
    		/*! PLL Control register  */
    		.nPLLCTL	= 0x0u ,
    
    		/*! LVDSA TX Control Register */
    		.nTXACTL	= 0x0u ,
    
    		/*! LVDSB TX Control Register */
    		.nTXBCTL	= 0x0u ,
    
    		/*! Control Register */
    		.nCONTROL	= 0x0u ,
    
    	},
    
    		 /* Number of peripheral devices connected  */
    		.nNumPeriDevice = 1,
    
    		 /*Array of peripheral configuration pointers */ 
    		.apPeriConfig = { 	 &sChain0_Slave0_PeriConfig0, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR	}
    
    };
    
    /************************************************* END OF SLAVE NODE 0 DESCRIPTION ********************************************************************************/ 
     
    /************************************************* START OF SLAVE NODE 1 DESCRIPTION ********************************************************************************/
    
    /* SLAVE NODE DESCRIPTION */ 
    
    ADI_A2B_MEM_BCF_DATA
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode1= 
    {
    	/* Node ID  */
    	.nNodeID			= 0x1u ,
    
    	/* Source node ID  */
    	.nSrcNodeID			= 0x0u ,
    
    	/*! Transceiver part number */
    	.ePartNum			= ADI_A2B_AD2428 ,
    
    	/* Auto-configure Node Enabled */
    	.bEnableAutoConfig			= DISABLED ,
    
    	.sAuthSettings =
    	{
    		/*! Vendor ID - ADI */
    		.nVendorID			= 0xADu ,
    
    		/*! Silicon version  */
    		.nVersionID			= 0x0u ,
    
    		/*! PRODUCT ID -AD2410 */
    		.nProductID			= 0x28u ,
    
    		/*! Expected capablity - I2C */
    		.nCapability		= 0x1u ,
    	},
    
    	.sCustomNodeAuthSettings =
    	{
    		/*! Enable/Disable Custom Node ID settings */
    		.bCustomNodeIdAuth		= DISABLED ,
    
    	},
    
    	.sI2SSettings =
    	{
    		/*! TDM mode  */
    		.nTDMMode		= A2B_TDM2 ,
    
    		/*! TDM channel size  */
    		.nTDMChSize			= A2B_16BIT_TDM ,
    
    		/*! SYNC mode - Pulse/50% duty cycle   */
    		.nSyncMode			= A2B_PULSE_SYNC ,
    
    		/*! SYNC Polarity- Rising/Falling edge */
    		.nSyncPolarity		= RAISING_EDGE ,
    
    		/*! Early frame sync status */
    		.bEarlySync			= DISABLED ,
    
    		/*! Serial RX on DTX1 Pin */
    		.bSerialRxOnDTx1			= DISABLED ,
    
    		/*! SYNC offset with Super frame */
    		.nSyncOffset		= 0x0 ,
    
    		/*! DTXn change BCLK edge */
    		.nBclkTxPolarity	= RAISING_EDGE ,
    
    		/*! DRXn sampling BCLK edge */
    		.nBclkRxPolarity	= RAISING_EDGE ,
    
    		/*! Interleave slots between Tx pins  */
    		.bTXInterleave		= DISABLED ,
    
    		/*! Interleave slots between Rx pins  */
    		.bRXInterleave		= DISABLED ,
    
    		.sI2SRateConfig =
    		{
    			/* Sample rate */
    			.nSamplingRate		= A2B_SAMPLERATE_48kHz ,
    
    			/*! Reduce / re-transmit higher frequency samples  */
    		.bReduce			= DISABLED ,
    
    			/*! Share A2B bus slots for reduced sampling */
    			.bShareBusSlot	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra bit */
    			.bRRValidBitLSB 	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra Channel */
    			.bRRValidBitExtraBit	= DISABLED ,
    
    			/*! Enable Reduced rate strobe in ADR1/IO1 */
    			.bRRStrobe	= DISABLED ,
    
    			/*! Strobe direction High or Low */
    			.bRRStrobeDirection	= A2B_LOW ,
    
    		},
    	},
    
    	.sPDMSettings =
    	{
    		/*! Number of PDM0 slots  */
    		.nNumSlotsPDM0		= A2B_PDM0SLOTS_2 ,
    
    		/*! Number of PDM1 slots  */
    		.nNumSlotsPDM1		= A2B_PDM1SLOTS_2 ,
    
    		/*! Use High Pass Filter  */
    		.bHPFUse		= ENABLED ,
    
    		/*! PDM rate  */
    		.nPDMRate		= A2B_PDM_RATE_SFF ,
    
    		/*! PDM Inverted Version of Alternate Clock */
    		.bPDMInvClk		= DISABLED ,
    
    		/*! PDM Alternate Clock */
    		.bPDMAltClk		= ENABLED ,
    
    		/*! PDM0 Falling Edge First */
    		.bPDM0FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM1 Falling Edge First */
    		.bPDM1FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM Destination */
    		.ePDMDestination		= A2B_BUS_ONLY ,
    
    	},
    
    	.sConfigCtrlSettings =
    	{
    		/*! I2C interface frequency */
    		.nI2CFrequency		= A2B_I2C_100kHz ,
    
    		/*! Response cycles  */
    		.nRespCycle			= 0x4Du ,
    
    		/*! Expected super/audio frame rate */
    		.nSuperFrameRate	= A2B_SFF_RATE_48_0kHz ,
    
    		/*! Number of broadcast slots */
    		.nBroadCastSlots	= 0x0u ,
    
    		/*! Local down slots */
    		.nLocalDwnSlotsConsume		= 0x0u ,
    
    		/*! Local Up slots */
    		.nLocalUpSlotsContribute		= 0x4u ,
    
    		/*! Pass up slots */
    		.nPassUpSlots		= 0x8u ,
    
    		/*! Pass down slots */
    		.nPassDwnSlots		= 0x0u ,
    
    		/*! Number of slots for contribution */
    		.nSlotsforDwnstrmContribute		= 0x0u ,
    
    		/*! Number of Upslots consumed */
    		.nLocalUpSlotsConsume		= 0x0u ,
    
    		/*! Array of downstream  masks */ 
    		.anUpstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for downstream contribution */
    		.nOffsetDwnstrmContribute		= 0x0u ,
    
    		/*! Enable Down slot consume through mask */
    		.bUseDwnslotConsumeMasks		= ENABLED ,
    
    		/*! Array of downstream  masks */ 
    		.anDwnstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for Upstream contribution*/
    		.nOffsetUpstrmContribute		= 0x0u ,
    
    	},
    	.sGPIOSettings =
    	{
    		.sPinMuxSettings =
    		{
    			/*! GPIO 0 Pin multiplexing */
    			.bGPIO0PinUsage	= A2B_GPIO_0_DISABLE ,
    
    			/*! GPIO 1 Pin multiplexing */
    			.bGPIO1PinUsage	= A2B_GPIO_1_DISABLE ,
    
    			/*! GPIO 2 Pin multiplexing */
    			.bGPIO2PinUsage	= A2B_GPIO_2_AS_CLKOUT ,
    
    			/*! GPIO 3 Pin multiplexing */
    			.bGPIO3PinUsage	= A2B_GPIO_3_DISABLE ,
    
    			/*! GPIO 4 Pin multiplexing */
    			.bGPIO4PinUsage	= A2B_GPIO_4_DISABLE ,
    
    			/*! GPIO 5 Pin multiplexing */
    			.bGPIO5PinUsage	= A2B_GPIO_5_AS_PDM0 ,
    
    			/*! GPIO 6 Pin multiplexing */
    			.bGPIO6PinUsage	= A2B_GPIO_6_AS_PDM1 ,
    
    			/*! GPIO 7 Pin multiplexing */
    			.bGPIO7PinUsage	= A2B_GPIO_7_DISABLE ,
    		},
    		.sPinIntConfig =
    		{
    			/*! Enable GPIO 0 Input pin interrupt  */
    			.bGPIO0Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 0 Input pin  */
    			.bGPIO0IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 1 Input pin interrupt  */
    			.bGPIO1Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 1 Input pin  */
    			.bGPIO1IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 2 Input pin interrupt  */
    			.bGPIO2Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 2 Input pin  */
    			.bGPIO2IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 3 Input pin interrupt  */
    			.bGPIO3Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 3 Input pin  */
    			.bGPIO3IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 4 Input pin interrupt  */
    			.bGPIO4Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 4 Input pin  */
    			.bGPIO4IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 5 Input pin interrupt  */
    			.bGPIO5Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 5 Input pin  */
    			.bGPIO5IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 6 Input pin interrupt  */
    			.bGPIO6Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 6 Input pin  */
    			.bGPIO6IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 7 Input pin interrupt  */
    			.bGPIO7Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 7 Input pin  */
    			.bGPIO7IntPolarity	= RAISING_EDGE ,
    
    		},
    		.sOutPinVal =
    		{
    			/*! Data value for GPIO 0 output pin  */
    			.bGPIO0Val = A2B_LOW ,
    
    			/*! Data value for GPIO 1 output pin  */
    			.bGPIO1Val = A2B_LOW ,
    
    			/*! Data value for GPIO 2 output pin  */
    			.bGPIO2Val = A2B_LOW ,
    
    			/*! Data value for GPIO 3 output pin  */
    			.bGPIO3Val = A2B_LOW ,
    
    			/*! Data value for GPIO 4 output pin  */
    			.bGPIO4Val = A2B_LOW ,
    
    			/*! Data value for GPIO 5 output pin  */
    			.bGPIO5Val = A2B_LOW ,
    
    			/*! Data value for GPIO 6 output pin  */
    			.bGPIO6Val = A2B_LOW ,
    
    			/*! Data value for GPIO 7 output pin  */
    			.bGPIO7Val = A2B_LOW ,
    
    		},
    
    		/*! Digital Pin drive strength */
    		.bHighDriveStrength = ENABLED ,
    
    		/*! IRQ Pin Invert */
    		.bIRQInv = DISABLED ,
    
    		/*! Enable tristate when inactive */
    		.bIRQTriState = DISABLED ,
    
    	},
    
    	.sInterruptSettings =
    	{
    		/*! Report Header count error  */
    		.bReportHDCNTErr		= DISABLED ,
    
    		/*! Report Data decoding error  */
    		.bReportDDErr			= DISABLED ,
    
    		/*! Report Data CRC error  */
    		.bReportCRCErr			= DISABLED ,
    
    		/*! Report Data Parity error  */
    		.bReportDataParityErr	= DISABLED ,
    
    		/*! Report Data Bus Power error  */
    		.bReportPwrErr			= ENABLED ,
    
    		/*! Report bit error count overflow error  */
    		.bReportErrCntOverFlow	= DISABLED ,
    
    		/*! Report SRF miss error  */
    		.bReportSRFMissErr	= DISABLED ,
    
    		/*! Report SRF crc error  */
    		.bReportSRFCrcErr		= DISABLED ,
    
    		/*! Report GPIO  0 Interrupt */
    		.bReportGPIO0			= DISABLED ,
    
    		/*! Report GPIO  1 Interrupt */
    		.bReportGPIO1			= DISABLED ,
    
    		/*! Report GPIO  2 Interrupt */
    		.bReportGPIO2			= DISABLED ,
    
    		/*! Report GPIO  3 Interrupt */
    		.bReportGPIO3			= DISABLED ,
    
    		/*! Report GPIO  4 Interrupt */
    		.bReportGPIO4			= DISABLED ,
    
    		/*! Report GPIO  5 Interrupt */
    		.bReportGPIO5			= DISABLED ,
    
    		/*! Report GPIO  6 Interrupt */
    		.bReportGPIO6			= DISABLED ,
    
    		/*! Report GPIO  7 Interrupt */
    		.bReportGPIO7			= DISABLED ,
    
    	},
    
    	.sGPIODSettings =
    	{
    		.sGPIOD0Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD1Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD2Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD3Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD4Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD5Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD6Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD7Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    	},
    
    	.sClkOutSettings =
    	{
    		/*! Enable Clock1 inversion */
    		.bClk1Inv			= DISABLED ,
    
    		/*! Clk1 pre-division */
    		.bClk1PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk1 division */
    		.bClk1Div			= A2B_CLKOUT_DIV_2,
    
    		/*! Enable Clock2 inversion */
    		.bClk2Inv			= DISABLED ,
    
    		/*! Clk2 pre-division */
    		.bClk2PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk2 division */
    		.bClk2Div			= A2B_CLKOUT_DIV_4,
    
    	},
    	.sRegSettings =
    	{
    		/*! Switch control register */
    		.nSWCTL		= 0x1u ,
    
    		/*! Test mode register */
    		.nTESTMODE	= 0x0u ,
    
    		/*! Error control register */
    		.nBECCTL	= 0xEFu ,
    
    		/*! Error management register  */
    		.nERRMGMT	= 0x0u ,
    
    		/*! I2S test register  */
    		.nI2STEST	= 0x0u ,
    
    		/*! Generate error  */
    		.nGENERR	= 0x0u ,
    
    		/*! Raise interrupt register */
    		.nRAISE		= 0x0u ,
    
    		/*! Bus monitor configuration */
    		.nBMMCFG		= 0x0u ,
    
    		/*! Clock sustain configuration   */
    		.nSUSCFG	= 0x0u ,
    
    		/*!  Mailbox 0 control */
    		.nMBOX0CTL		= 0x0u ,
    
    		/*!  Mailbox 1 control */
    		.nMBOX1CTL		= 0x0u ,
    
    		/*! PLL Control register  */
    		.nPLLCTL	= 0x0u ,
    
    		/*! LVDSA TX Control Register */
    		.nTXACTL	= 0x0u ,
    
    		/*! LVDSB TX Control Register */
    		.nTXBCTL	= 0x0u ,
    
    		/*! Control Register */
    		.nCONTROL	= 0x0u ,
    
    	},
    
    		 /* Number of peripheral devices connected  */
    		.nNumPeriDevice = 1,
    
    		 /*Array of peripheral configuration pointers */ 
    		.apPeriConfig = { 	 &sChain0_Slave1_PeriConfig0, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR	}
    
    };
    
    /************************************************* END OF SLAVE NODE 1 DESCRIPTION ********************************************************************************/ 
     
    /************************************************* START OF SLAVE NODE 2 DESCRIPTION ********************************************************************************/
    
    /* SLAVE NODE DESCRIPTION */ 
    
    ADI_A2B_MEM_BCF_DATA
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode2= 
    {
    	/* Node ID  */
    	.nNodeID			= 0x2u ,
    
    	/* Source node ID  */
    	.nSrcNodeID			= 0x1u ,
    
    	/*! Transceiver part number */
    	.ePartNum			= ADI_A2B_AD2428 ,
    
    	/* Auto-configure Node Enabled */
    	.bEnableAutoConfig			= DISABLED ,
    
    	.sAuthSettings =
    	{
    		/*! Vendor ID - ADI */
    		.nVendorID			= 0xADu ,
    
    		/*! Silicon version  */
    		.nVersionID			= 0x0u ,
    
    		/*! PRODUCT ID -AD2410 */
    		.nProductID			= 0x28u ,
    
    		/*! Expected capablity - I2C */
    		.nCapability		= 0x1u ,
    	},
    
    	.sCustomNodeAuthSettings =
    	{
    		/*! Enable/Disable Custom Node ID settings */
    		.bCustomNodeIdAuth		= DISABLED ,
    
    	},
    
    	.sI2SSettings =
    	{
    		/*! TDM mode  */
    		.nTDMMode		= A2B_TDM2 ,
    
    		/*! TDM channel size  */
    		.nTDMChSize			= A2B_16BIT_TDM ,
    
    		/*! SYNC mode - Pulse/50% duty cycle   */
    		.nSyncMode			= A2B_PULSE_SYNC ,
    
    		/*! SYNC Polarity- Rising/Falling edge */
    		.nSyncPolarity		= RAISING_EDGE ,
    
    		/*! Early frame sync status */
    		.bEarlySync			= DISABLED ,
    
    		/*! Serial RX on DTX1 Pin */
    		.bSerialRxOnDTx1			= DISABLED ,
    
    		/*! SYNC offset with Super frame */
    		.nSyncOffset		= 0x0 ,
    
    		/*! DTXn change BCLK edge */
    		.nBclkTxPolarity	= RAISING_EDGE ,
    
    		/*! DRXn sampling BCLK edge */
    		.nBclkRxPolarity	= RAISING_EDGE ,
    
    		/*! Interleave slots between Tx pins  */
    		.bTXInterleave		= DISABLED ,
    
    		/*! Interleave slots between Rx pins  */
    		.bRXInterleave		= DISABLED ,
    
    		.sI2SRateConfig =
    		{
    			/* Sample rate */
    			.nSamplingRate		= A2B_SAMPLERATE_48kHz ,
    
    			/*! Reduce / re-transmit higher frequency samples  */
    		.bReduce			= DISABLED ,
    
    			/*! Share A2B bus slots for reduced sampling */
    			.bShareBusSlot	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra bit */
    			.bRRValidBitLSB 	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra Channel */
    			.bRRValidBitExtraBit	= DISABLED ,
    
    			/*! Enable Reduced rate strobe in ADR1/IO1 */
    			.bRRStrobe	= DISABLED ,
    
    			/*! Strobe direction High or Low */
    			.bRRStrobeDirection	= A2B_LOW ,
    
    		},
    	},
    
    	.sPDMSettings =
    	{
    		/*! Number of PDM0 slots  */
    		.nNumSlotsPDM0		= A2B_PDM0SLOTS_2 ,
    
    		/*! Number of PDM1 slots  */
    		.nNumSlotsPDM1		= A2B_PDM1SLOTS_2 ,
    
    		/*! Use High Pass Filter  */
    		.bHPFUse		= ENABLED ,
    
    		/*! PDM rate  */
    		.nPDMRate		= A2B_PDM_RATE_SFF ,
    
    		/*! PDM Inverted Version of Alternate Clock */
    		.bPDMInvClk		= DISABLED ,
    
    		/*! PDM Alternate Clock */
    		.bPDMAltClk		= ENABLED ,
    
    		/*! PDM0 Falling Edge First */
    		.bPDM0FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM1 Falling Edge First */
    		.bPDM1FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM Destination */
    		.ePDMDestination		= A2B_BUS_ONLY ,
    
    	},
    
    	.sConfigCtrlSettings =
    	{
    		/*! I2C interface frequency */
    		.nI2CFrequency		= A2B_I2C_100kHz ,
    
    		/*! Response cycles  */
    		.nRespCycle			= 0x49u ,
    
    		/*! Expected super/audio frame rate */
    		.nSuperFrameRate	= A2B_SFF_RATE_48_0kHz ,
    
    		/*! Number of broadcast slots */
    		.nBroadCastSlots	= 0x0u ,
    
    		/*! Local down slots */
    		.nLocalDwnSlotsConsume		= 0x0u ,
    
    		/*! Local Up slots */
    		.nLocalUpSlotsContribute		= 0x4u ,
    
    		/*! Pass up slots */
    		.nPassUpSlots		= 0x4u ,
    
    		/*! Pass down slots */
    		.nPassDwnSlots		= 0x0u ,
    
    		/*! Number of slots for contribution */
    		.nSlotsforDwnstrmContribute		= 0x0u ,
    
    		/*! Number of Upslots consumed */
    		.nLocalUpSlotsConsume		= 0x0u ,
    
    		/*! Array of downstream  masks */ 
    		.anUpstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for downstream contribution */
    		.nOffsetDwnstrmContribute		= 0x0u ,
    
    		/*! Enable Down slot consume through mask */
    		.bUseDwnslotConsumeMasks		= ENABLED ,
    
    		/*! Array of downstream  masks */ 
    		.anDwnstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for Upstream contribution*/
    		.nOffsetUpstrmContribute		= 0x0u ,
    
    	},
    	.sGPIOSettings =
    	{
    		.sPinMuxSettings =
    		{
    			/*! GPIO 0 Pin multiplexing */
    			.bGPIO0PinUsage	= A2B_GPIO_0_DISABLE ,
    
    			/*! GPIO 1 Pin multiplexing */
    			.bGPIO1PinUsage	= A2B_GPIO_1_DISABLE ,
    
    			/*! GPIO 2 Pin multiplexing */
    			.bGPIO2PinUsage	= A2B_GPIO_2_AS_CLKOUT ,
    
    			/*! GPIO 3 Pin multiplexing */
    			.bGPIO3PinUsage	= A2B_GPIO_3_DISABLE ,
    
    			/*! GPIO 4 Pin multiplexing */
    			.bGPIO4PinUsage	= A2B_GPIO_4_DISABLE ,
    
    			/*! GPIO 5 Pin multiplexing */
    			.bGPIO5PinUsage	= A2B_GPIO_5_AS_PDM0 ,
    
    			/*! GPIO 6 Pin multiplexing */
    			.bGPIO6PinUsage	= A2B_GPIO_6_AS_PDM1 ,
    
    			/*! GPIO 7 Pin multiplexing */
    			.bGPIO7PinUsage	= A2B_GPIO_7_DISABLE ,
    		},
    		.sPinIntConfig =
    		{
    			/*! Enable GPIO 0 Input pin interrupt  */
    			.bGPIO0Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 0 Input pin  */
    			.bGPIO0IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 1 Input pin interrupt  */
    			.bGPIO1Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 1 Input pin  */
    			.bGPIO1IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 2 Input pin interrupt  */
    			.bGPIO2Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 2 Input pin  */
    			.bGPIO2IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 3 Input pin interrupt  */
    			.bGPIO3Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 3 Input pin  */
    			.bGPIO3IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 4 Input pin interrupt  */
    			.bGPIO4Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 4 Input pin  */
    			.bGPIO4IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 5 Input pin interrupt  */
    			.bGPIO5Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 5 Input pin  */
    			.bGPIO5IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 6 Input pin interrupt  */
    			.bGPIO6Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 6 Input pin  */
    			.bGPIO6IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 7 Input pin interrupt  */
    			.bGPIO7Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 7 Input pin  */
    			.bGPIO7IntPolarity	= RAISING_EDGE ,
    
    		},
    		.sOutPinVal =
    		{
    			/*! Data value for GPIO 0 output pin  */
    			.bGPIO0Val = A2B_LOW ,
    
    			/*! Data value for GPIO 1 output pin  */
    			.bGPIO1Val = A2B_LOW ,
    
    			/*! Data value for GPIO 2 output pin  */
    			.bGPIO2Val = A2B_LOW ,
    
    			/*! Data value for GPIO 3 output pin  */
    			.bGPIO3Val = A2B_LOW ,
    
    			/*! Data value for GPIO 4 output pin  */
    			.bGPIO4Val = A2B_LOW ,
    
    			/*! Data value for GPIO 5 output pin  */
    			.bGPIO5Val = A2B_LOW ,
    
    			/*! Data value for GPIO 6 output pin  */
    			.bGPIO6Val = A2B_LOW ,
    
    			/*! Data value for GPIO 7 output pin  */
    			.bGPIO7Val = A2B_LOW ,
    
    		},
    
    		/*! Digital Pin drive strength */
    		.bHighDriveStrength = ENABLED ,
    
    		/*! IRQ Pin Invert */
    		.bIRQInv = DISABLED ,
    
    		/*! Enable tristate when inactive */
    		.bIRQTriState = DISABLED ,
    
    	},
    
    	.sInterruptSettings =
    	{
    		/*! Report Header count error  */
    		.bReportHDCNTErr		= DISABLED ,
    
    		/*! Report Data decoding error  */
    		.bReportDDErr			= DISABLED ,
    
    		/*! Report Data CRC error  */
    		.bReportCRCErr			= DISABLED ,
    
    		/*! Report Data Parity error  */
    		.bReportDataParityErr	= DISABLED ,
    
    		/*! Report Data Bus Power error  */
    		.bReportPwrErr			= ENABLED ,
    
    		/*! Report bit error count overflow error  */
    		.bReportErrCntOverFlow	= DISABLED ,
    
    		/*! Report SRF miss error  */
    		.bReportSRFMissErr	= DISABLED ,
    
    		/*! Report SRF crc error  */
    		.bReportSRFCrcErr		= DISABLED ,
    
    		/*! Report GPIO  0 Interrupt */
    		.bReportGPIO0			= DISABLED ,
    
    		/*! Report GPIO  1 Interrupt */
    		.bReportGPIO1			= DISABLED ,
    
    		/*! Report GPIO  2 Interrupt */
    		.bReportGPIO2			= DISABLED ,
    
    		/*! Report GPIO  3 Interrupt */
    		.bReportGPIO3			= DISABLED ,
    
    		/*! Report GPIO  4 Interrupt */
    		.bReportGPIO4			= DISABLED ,
    
    		/*! Report GPIO  5 Interrupt */
    		.bReportGPIO5			= DISABLED ,
    
    		/*! Report GPIO  6 Interrupt */
    		.bReportGPIO6			= DISABLED ,
    
    		/*! Report GPIO  7 Interrupt */
    		.bReportGPIO7			= DISABLED ,
    
    	},
    
    	.sGPIODSettings =
    	{
    		.sGPIOD0Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD1Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD2Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD3Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD4Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD5Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD6Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD7Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    	},
    
    	.sClkOutSettings =
    	{
    		/*! Enable Clock1 inversion */
    		.bClk1Inv			= DISABLED ,
    
    		/*! Clk1 pre-division */
    		.bClk1PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk1 division */
    		.bClk1Div			= A2B_CLKOUT_DIV_2,
    
    		/*! Enable Clock2 inversion */
    		.bClk2Inv			= DISABLED ,
    
    		/*! Clk2 pre-division */
    		.bClk2PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk2 division */
    		.bClk2Div			= A2B_CLKOUT_DIV_4,
    
    	},
    	.sRegSettings =
    	{
    		/*! Switch control register */
    		.nSWCTL		= 0x1u ,
    
    		/*! Test mode register */
    		.nTESTMODE	= 0x0u ,
    
    		/*! Error control register */
    		.nBECCTL	= 0xEFu ,
    
    		/*! Error management register  */
    		.nERRMGMT	= 0x0u ,
    
    		/*! I2S test register  */
    		.nI2STEST	= 0x0u ,
    
    		/*! Generate error  */
    		.nGENERR	= 0x0u ,
    
    		/*! Raise interrupt register */
    		.nRAISE		= 0x0u ,
    
    		/*! Bus monitor configuration */
    		.nBMMCFG		= 0x0u ,
    
    		/*! Clock sustain configuration   */
    		.nSUSCFG	= 0x0u ,
    
    		/*!  Mailbox 0 control */
    		.nMBOX0CTL		= 0x0u ,
    
    		/*!  Mailbox 1 control */
    		.nMBOX1CTL		= 0x0u ,
    
    		/*! PLL Control register  */
    		.nPLLCTL	= 0x0u ,
    
    		/*! LVDSA TX Control Register */
    		.nTXACTL	= 0x0u ,
    
    		/*! LVDSB TX Control Register */
    		.nTXBCTL	= 0x0u ,
    
    		/*! Control Register */
    		.nCONTROL	= 0x0u ,
    
    	},
    
    		 /* Number of peripheral devices connected  */
    		.nNumPeriDevice = 1,
    
    		 /*Array of peripheral configuration pointers */ 
    		.apPeriConfig = { 	 &sChain0_Slave2_PeriConfig0, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR	}
    
    };
    
    /************************************************* END OF SLAVE NODE 2 DESCRIPTION ********************************************************************************/ 
     
    /************************************************* START OF SLAVE NODE 3 DESCRIPTION ********************************************************************************/
    
    /* SLAVE NODE DESCRIPTION */ 
    
    ADI_A2B_MEM_BCF_DATA
    static ADI_A2B_SLAVE_NCD sChain0_SlaveNode3= 
    {
    	/* Node ID  */
    	.nNodeID			= 0x3u ,
    
    	/* Source node ID  */
    	.nSrcNodeID			= 0x2u ,
    
    	/*! Transceiver part number */
    	.ePartNum			= ADI_A2B_AD2428 ,
    
    	/* Auto-configure Node Enabled */
    	.bEnableAutoConfig			= DISABLED ,
    
    	.sAuthSettings =
    	{
    		/*! Vendor ID - ADI */
    		.nVendorID			= 0xADu ,
    
    		/*! Silicon version  */
    		.nVersionID			= 0x0u ,
    
    		/*! PRODUCT ID -AD2410 */
    		.nProductID			= 0x28u ,
    
    		/*! Expected capablity - I2C */
    		.nCapability		= 0x1u ,
    	},
    
    	.sCustomNodeAuthSettings =
    	{
    		/*! Enable/Disable Custom Node ID settings */
    		.bCustomNodeIdAuth		= DISABLED ,
    
    	},
    
    	.sI2SSettings =
    	{
    		/*! TDM mode  */
    		.nTDMMode		= A2B_TDM2 ,
    
    		/*! TDM channel size  */
    		.nTDMChSize			= A2B_16BIT_TDM ,
    
    		/*! SYNC mode - Pulse/50% duty cycle   */
    		.nSyncMode			= A2B_PULSE_SYNC ,
    
    		/*! SYNC Polarity- Rising/Falling edge */
    		.nSyncPolarity		= RAISING_EDGE ,
    
    		/*! Early frame sync status */
    		.bEarlySync			= DISABLED ,
    
    		/*! Serial RX on DTX1 Pin */
    		.bSerialRxOnDTx1			= DISABLED ,
    
    		/*! SYNC offset with Super frame */
    		.nSyncOffset		= 0x0 ,
    
    		/*! DTXn change BCLK edge */
    		.nBclkTxPolarity	= RAISING_EDGE ,
    
    		/*! DRXn sampling BCLK edge */
    		.nBclkRxPolarity	= RAISING_EDGE ,
    
    		/*! Interleave slots between Tx pins  */
    		.bTXInterleave		= DISABLED ,
    
    		/*! Interleave slots between Rx pins  */
    		.bRXInterleave		= DISABLED ,
    
    		.sI2SRateConfig =
    		{
    			/* Sample rate */
    			.nSamplingRate		= A2B_SAMPLERATE_48kHz ,
    
    			/*! Reduce / re-transmit higher frequency samples  */
    		.bReduce			= DISABLED ,
    
    			/*! Share A2B bus slots for reduced sampling */
    			.bShareBusSlot	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra bit */
    			.bRRValidBitLSB 	= DISABLED ,
    
    			/*! Enable Valid RR bit in Extra Channel */
    			.bRRValidBitExtraBit	= DISABLED ,
    
    			/*! Enable Reduced rate strobe in ADR1/IO1 */
    			.bRRStrobe	= DISABLED ,
    
    			/*! Strobe direction High or Low */
    			.bRRStrobeDirection	= A2B_LOW ,
    
    		},
    	},
    
    	.sPDMSettings =
    	{
    		/*! Number of PDM0 slots  */
    		.nNumSlotsPDM0		= A2B_PDM0SLOTS_2 ,
    
    		/*! Number of PDM1 slots  */
    		.nNumSlotsPDM1		= A2B_PDM1SLOTS_2 ,
    
    		/*! Use High Pass Filter  */
    		.bHPFUse		= ENABLED ,
    
    		/*! PDM rate  */
    		.nPDMRate		= A2B_PDM_RATE_SFF ,
    
    		/*! PDM Inverted Version of Alternate Clock */
    		.bPDMInvClk		= DISABLED ,
    
    		/*! PDM Alternate Clock */
    		.bPDMAltClk		= ENABLED ,
    
    		/*! PDM0 Falling Edge First */
    		.bPDM0FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM1 Falling Edge First */
    		.bPDM1FallingEdgeFrst		= DISABLED ,
    
    		/*! PDM Destination */
    		.ePDMDestination		= A2B_BUS_ONLY ,
    
    	},
    
    	.sConfigCtrlSettings =
    	{
    		/*! I2C interface frequency */
    		.nI2CFrequency		= A2B_I2C_100kHz ,
    
    		/*! Response cycles  */
    		.nRespCycle			= 0x45u ,
    
    		/*! Expected super/audio frame rate */
    		.nSuperFrameRate	= A2B_SFF_RATE_48_0kHz ,
    
    		/*! Number of broadcast slots */
    		.nBroadCastSlots	= 0x0u ,
    
    		/*! Local down slots */
    		.nLocalDwnSlotsConsume		= 0x0u ,
    
    		/*! Local Up slots */
    		.nLocalUpSlotsContribute		= 0x4u ,
    
    		/*! Pass up slots */
    		.nPassUpSlots		= 0x0u ,
    
    		/*! Pass down slots */
    		.nPassDwnSlots		= 0x0u ,
    
    		/*! Number of slots for contribution */
    		.nSlotsforDwnstrmContribute		= 0x0u ,
    
    		/*! Number of Upslots consumed */
    		.nLocalUpSlotsConsume		= 0x0u ,
    
    		/*! Array of downstream  masks */ 
    		.anUpstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for downstream contribution */
    		.nOffsetDwnstrmContribute		= 0x0u ,
    
    		/*! Enable Down slot consume through mask */
    		.bUseDwnslotConsumeMasks		= ENABLED ,
    
    		/*! Array of downstream  masks */ 
    		.anDwnstreamConsumeSlots = { SLOT_0_DISABLED, SLOT_1_DISABLED, SLOT_2_DISABLED, SLOT_3_DISABLED, SLOT_4_DISABLED, SLOT_5_DISABLED, SLOT_6_DISABLED, SLOT_7_DISABLED, 
     									 SLOT_8_DISABLED, SLOT_9_DISABLED, SLOT_10_DISABLED, SLOT_11_DISABLED, SLOT_12_DISABLED, SLOT_13_DISABLED, SLOT_14_DISABLED, SLOT_15_DISABLED, 
     									 SLOT_16_DISABLED, SLOT_17_DISABLED, SLOT_18_DISABLED, SLOT_19_DISABLED, SLOT_20_DISABLED, SLOT_21_DISABLED, SLOT_22_DISABLED, SLOT_23_DISABLED, 
     									 SLOT_24_DISABLED, SLOT_25_DISABLED, SLOT_26_DISABLED, SLOT_27_DISABLED, SLOT_28_DISABLED, SLOT_29_DISABLED, SLOT_30_DISABLED, SLOT_31_DISABLED},
    		/*! Offset from the RX Buffer for Upstream contribution*/
    		.nOffsetUpstrmContribute		= 0x0u ,
    
    	},
    	.sGPIOSettings =
    	{
    		.sPinMuxSettings =
    		{
    			/*! GPIO 0 Pin multiplexing */
    			.bGPIO0PinUsage	= A2B_GPIO_0_DISABLE ,
    
    			/*! GPIO 1 Pin multiplexing */
    			.bGPIO1PinUsage	= A2B_GPIO_1_DISABLE ,
    
    			/*! GPIO 2 Pin multiplexing */
    			.bGPIO2PinUsage	= A2B_GPIO_2_AS_CLKOUT ,
    
    			/*! GPIO 3 Pin multiplexing */
    			.bGPIO3PinUsage	= A2B_GPIO_3_DISABLE ,
    
    			/*! GPIO 4 Pin multiplexing */
    			.bGPIO4PinUsage	= A2B_GPIO_4_DISABLE ,
    
    			/*! GPIO 5 Pin multiplexing */
    			.bGPIO5PinUsage	= A2B_GPIO_5_AS_PDM0 ,
    
    			/*! GPIO 6 Pin multiplexing */
    			.bGPIO6PinUsage	= A2B_GPIO_6_AS_PDM1 ,
    
    			/*! GPIO 7 Pin multiplexing */
    			.bGPIO7PinUsage	= A2B_GPIO_7_DISABLE ,
    		},
    		.sPinIntConfig =
    		{
    			/*! Enable GPIO 0 Input pin interrupt  */
    			.bGPIO0Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 0 Input pin  */
    			.bGPIO0IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 1 Input pin interrupt  */
    			.bGPIO1Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 1 Input pin  */
    			.bGPIO1IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 2 Input pin interrupt  */
    			.bGPIO2Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 2 Input pin  */
    			.bGPIO2IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 3 Input pin interrupt  */
    			.bGPIO3Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 3 Input pin  */
    			.bGPIO3IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 4 Input pin interrupt  */
    			.bGPIO4Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 4 Input pin  */
    			.bGPIO4IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 5 Input pin interrupt  */
    			.bGPIO5Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 5 Input pin  */
    			.bGPIO5IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 6 Input pin interrupt  */
    			.bGPIO6Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 6 Input pin  */
    			.bGPIO6IntPolarity	= RAISING_EDGE ,
    
    			/*! Enable GPIO 7 Input pin interrupt  */
    			.bGPIO7Interrupt	= DISABLED ,
    
    			/*! Interrupt polarity - GPIO 7 Input pin  */
    			.bGPIO7IntPolarity	= RAISING_EDGE ,
    
    		},
    		.sOutPinVal =
    		{
    			/*! Data value for GPIO 0 output pin  */
    			.bGPIO0Val = A2B_LOW ,
    
    			/*! Data value for GPIO 1 output pin  */
    			.bGPIO1Val = A2B_LOW ,
    
    			/*! Data value for GPIO 2 output pin  */
    			.bGPIO2Val = A2B_LOW ,
    
    			/*! Data value for GPIO 3 output pin  */
    			.bGPIO3Val = A2B_LOW ,
    
    			/*! Data value for GPIO 4 output pin  */
    			.bGPIO4Val = A2B_LOW ,
    
    			/*! Data value for GPIO 5 output pin  */
    			.bGPIO5Val = A2B_LOW ,
    
    			/*! Data value for GPIO 6 output pin  */
    			.bGPIO6Val = A2B_LOW ,
    
    			/*! Data value for GPIO 7 output pin  */
    			.bGPIO7Val = A2B_LOW ,
    
    		},
    
    		/*! Digital Pin drive strength */
    		.bHighDriveStrength = ENABLED ,
    
    		/*! IRQ Pin Invert */
    		.bIRQInv = DISABLED ,
    
    		/*! Enable tristate when inactive */
    		.bIRQTriState = DISABLED ,
    
    	},
    
    	.sInterruptSettings =
    	{
    		/*! Report Header count error  */
    		.bReportHDCNTErr		= DISABLED ,
    
    		/*! Report Data decoding error  */
    		.bReportDDErr			= DISABLED ,
    
    		/*! Report Data CRC error  */
    		.bReportCRCErr			= DISABLED ,
    
    		/*! Report Data Parity error  */
    		.bReportDataParityErr	= DISABLED ,
    
    		/*! Report Data Bus Power error  */
    		.bReportPwrErr			= ENABLED ,
    
    		/*! Report bit error count overflow error  */
    		.bReportErrCntOverFlow	= DISABLED ,
    
    		/*! Report SRF miss error  */
    		.bReportSRFMissErr	= DISABLED ,
    
    		/*! Report SRF crc error  */
    		.bReportSRFCrcErr		= DISABLED ,
    
    		/*! Report GPIO  0 Interrupt */
    		.bReportGPIO0			= DISABLED ,
    
    		/*! Report GPIO  1 Interrupt */
    		.bReportGPIO1			= DISABLED ,
    
    		/*! Report GPIO  2 Interrupt */
    		.bReportGPIO2			= DISABLED ,
    
    		/*! Report GPIO  3 Interrupt */
    		.bReportGPIO3			= DISABLED ,
    
    		/*! Report GPIO  4 Interrupt */
    		.bReportGPIO4			= DISABLED ,
    
    		/*! Report GPIO  5 Interrupt */
    		.bReportGPIO5			= DISABLED ,
    
    		/*! Report GPIO  6 Interrupt */
    		.bReportGPIO6			= DISABLED ,
    
    		/*! Report GPIO  7 Interrupt */
    		.bReportGPIO7			= DISABLED ,
    
    	},
    
    	.sGPIODSettings =
    	{
    		.sGPIOD0Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD1Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD2Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD3Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD4Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD5Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD6Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    		.sGPIOD7Config =
    		{
    			/*! Enable/Disable GPIO over distance   */
    			.bGPIODistance	= DISABLED ,
    
    			/*! Enable/Disable  */
    			.bGPIOSignalInv	= DISABLED ,
    
    			/*! Bus port masks */ 
    			.abBusPortMask = { A2B_MASK_BUSFLAG_0, A2B_MASK_BUSFLAG_1, A2B_MASK_BUSFLAG_2, A2B_MASK_BUSFLAG_3, A2B_MASK_BUSFLAG_4, A2B_MASK_BUSFLAG_5, A2B_MASK_BUSFLAG_6, A2B_MASK_BUSFLAG_7},
    
    
    		},
    	},
    
    	.sClkOutSettings =
    	{
    		/*! Enable Clock1 inversion */
    		.bClk1Inv			= DISABLED ,
    
    		/*! Clk1 pre-division */
    		.bClk1PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk1 division */
    		.bClk1Div			= A2B_CLKOUT_DIV_2,
    
    		/*! Enable Clock2 inversion */
    		.bClk2Inv			= DISABLED ,
    
    		/*! Clk2 pre-division */
    		.bClk2PreDiv		= A2B_CLKOUT_PREDIV_02,
    
    		/*! Clk2 division */
    		.bClk2Div			= A2B_CLKOUT_DIV_4,
    
    	},
    	.sRegSettings =
    	{
    		/*! Switch control register */
    		.nSWCTL		= 0x0u ,
    
    		/*! Test mode register */
    		.nTESTMODE	= 0x0u ,
    
    		/*! Error control register */
    		.nBECCTL	= 0xEFu ,
    
    		/*! Error management register  */
    		.nERRMGMT	= 0x0u ,
    
    		/*! I2S test register  */
    		.nI2STEST	= 0x0u ,
    
    		/*! Generate error  */
    		.nGENERR	= 0x0u ,
    
    		/*! Raise interrupt register */
    		.nRAISE		= 0x0u ,
    
    		/*! Bus monitor configuration */
    		.nBMMCFG		= 0x0u ,
    
    		/*! Clock sustain configuration   */
    		.nSUSCFG	= 0x0u ,
    
    		/*!  Mailbox 0 control */
    		.nMBOX0CTL		= 0x0u ,
    
    		/*!  Mailbox 1 control */
    		.nMBOX1CTL		= 0x0u ,
    
    		/*! PLL Control register  */
    		.nPLLCTL	= 0x0u ,
    
    		/*! LVDSA TX Control Register */
    		.nTXACTL	= 0x0u ,
    
    		/*! LVDSB TX Control Register */
    		.nTXBCTL	= 0x0u ,
    
    		/*! Control Register */
    		.nCONTROL	= 0x0u ,
    
    	},
    
    		 /* Number of peripheral devices connected  */
    		.nNumPeriDevice = 1,
    
    		 /*Array of peripheral configuration pointers */ 
    		.apPeriConfig = { 	 &sChain0_Slave3_PeriConfig0, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR	}
    
    };
    
    /************************************************* END OF SLAVE NODE 3 DESCRIPTION ********************************************************************************/ 
     
    /************************************************** END OF AD2410 DESCRIPTION ********************************************************************************  */
    
    /************************************************** START OF PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /************************************************** START OF PERIPHERALS CONNECTED TO TARGET PROCESSOR  ********************************************************************************  */
    
    /* Peripheral - 0*/
    
    ADI_A2B_MEM_BCF_DATA
    static A2B_PERIPHERAL_DEVICE_CONFIG  Target_PeriConfig0=
    {
     /*! I2C interface status  */ 
    	 .bI2CInterfaceUse = ENABLED, 
    
    	/*7 bit I2C address */ 
    	.nI2Caddr = 0x50, 
    
    	/* Device type -audio source/sink/host  */ 
    	.eDeviceType = A2B_AUDIO_HOST, 
    
    	/* Tx0 Pin in use */
    	.bUseTx0 = DISABLED, 
    
    	/* Rx0 Pin in use */
    	.bUseRx0 = DISABLED, 
    
    	/* Tx1 Pin in use */
    	.bUseTx1 = DISABLED, 
    
    	/* Rx1 Pin in use */
    	.bUseRx1 = DISABLED, 
    
    	/* No of Tx0 channels  */ 
    	.nChTx0 = 0, 
    
    	/* No of Rx0 channels  */ 
    	.nChRx0 = 8, 
    
    	/* No of Tx1 channels  */ 
    	.nChTx1 = 0, 
    
    	/* No of Rx1 channels  */ 
    	.nChRx1 = 8, 
    
    	/* Number of configuration units  */ 
    	.nNumPeriConfigUnit = 0, 
    
    	.paPeriConfigUnit = NULL_PTR 
     };
    
    /************************************************** END OF PERIPHERALS CONNECTED TO TARGET PROCESSOR  ********************************************************************************  */
    
    /************************************************** START OF CHAIN 0 SLAVE0 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /* Peripheral - 0*/
    
    ADI_A2B_MEM_BCF_DATA
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave0_PeriConfig0=
    {
    	/* I2C interface status  */ 
    	 .bI2CInterfaceUse = DISABLED, 
    
    	/*7 bit I2C address */ 
    	.nI2Caddr = 0x50, 
    
    	/* Device type -audio source/sink/host  */ 
    	.eDeviceType = A2B_AUDIO_SOURCE, 
    
    	/* Tx0 Pin in use */
    	.bUseTx0 = ENABLED, 
    
    	/* Rx0 Pin in use */
    	.bUseRx0 = DISABLED, 
    
    	/* Tx1 Pin in use */
    	.bUseTx1 = ENABLED, 
    
    	/* Rx1 Pin in use */
    	.bUseRx1 = DISABLED, 
    
    	/* No of Tx0 channels  */ 
    	.nChTx0 = 2, 
    
    	/* No of Rx0 channels  */ 
    	.nChRx0 = 0, 
    
    	/* No of Tx1 channels  */ 
    	.nChTx1 = 2, 
    
    	/* No of Rx1 channels  */ 
    	.nChRx1 = 0, 
    
    	/* Number of configuration units  */ 
    	.nNumPeriConfigUnit = 0, 
    
    	/* Pointer to configuration units  */ 
    	.paPeriConfigUnit = NULL_PTR 
     };
    
    /************************************************** END OF CHAIN 0 SLAVE0 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /************************************************** START OF CHAIN 0 SLAVE1 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /* Peripheral - 0*/
    
    ADI_A2B_MEM_BCF_DATA
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave1_PeriConfig0=
    {
    	/* I2C interface status  */ 
    	 .bI2CInterfaceUse = DISABLED, 
    
    	/*7 bit I2C address */ 
    	.nI2Caddr = 0x50, 
    
    	/* Device type -audio source/sink/host  */ 
    	.eDeviceType = A2B_AUDIO_SOURCE, 
    
    	/* Tx0 Pin in use */
    	.bUseTx0 = ENABLED, 
    
    	/* Rx0 Pin in use */
    	.bUseRx0 = DISABLED, 
    
    	/* Tx1 Pin in use */
    	.bUseTx1 = ENABLED, 
    
    	/* Rx1 Pin in use */
    	.bUseRx1 = DISABLED, 
    
    	/* No of Tx0 channels  */ 
    	.nChTx0 = 2, 
    
    	/* No of Rx0 channels  */ 
    	.nChRx0 = 0, 
    
    	/* No of Tx1 channels  */ 
    	.nChTx1 = 2, 
    
    	/* No of Rx1 channels  */ 
    	.nChRx1 = 0, 
    
    	/* Number of configuration units  */ 
    	.nNumPeriConfigUnit = 0, 
    
    	/* Pointer to configuration units  */ 
    	.paPeriConfigUnit = NULL_PTR 
     };
    
    /************************************************** END OF CHAIN 0 SLAVE1 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /************************************************** START OF CHAIN 0 SLAVE2 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /* Peripheral - 0*/
    
    ADI_A2B_MEM_BCF_DATA
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave2_PeriConfig0=
    {
    	/* I2C interface status  */ 
    	 .bI2CInterfaceUse = DISABLED, 
    
    	/*7 bit I2C address */ 
    	.nI2Caddr = 0x50, 
    
    	/* Device type -audio source/sink/host  */ 
    	.eDeviceType = A2B_AUDIO_SOURCE, 
    
    	/* Tx0 Pin in use */
    	.bUseTx0 = ENABLED, 
    
    	/* Rx0 Pin in use */
    	.bUseRx0 = DISABLED, 
    
    	/* Tx1 Pin in use */
    	.bUseTx1 = ENABLED, 
    
    	/* Rx1 Pin in use */
    	.bUseRx1 = DISABLED, 
    
    	/* No of Tx0 channels  */ 
    	.nChTx0 = 2, 
    
    	/* No of Rx0 channels  */ 
    	.nChRx0 = 0, 
    
    	/* No of Tx1 channels  */ 
    	.nChTx1 = 2, 
    
    	/* No of Rx1 channels  */ 
    	.nChRx1 = 0, 
    
    	/* Number of configuration units  */ 
    	.nNumPeriConfigUnit = 0, 
    
    	/* Pointer to configuration units  */ 
    	.paPeriConfigUnit = NULL_PTR 
     };
    
    /************************************************** END OF CHAIN 0 SLAVE2 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /************************************************** START OF CHAIN 0 SLAVE3 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    /* Peripheral - 0*/
    
    ADI_A2B_MEM_BCF_DATA
    static A2B_PERIPHERAL_DEVICE_CONFIG  sChain0_Slave3_PeriConfig0=
    {
    	/* I2C interface status  */ 
    	 .bI2CInterfaceUse = DISABLED, 
    
    	/*7 bit I2C address */ 
    	.nI2Caddr = 0x50, 
    
    	/* Device type -audio source/sink/host  */ 
    	.eDeviceType = A2B_AUDIO_SOURCE, 
    
    	/* Tx0 Pin in use */
    	.bUseTx0 = ENABLED, 
    
    	/* Rx0 Pin in use */
    	.bUseRx0 = DISABLED, 
    
    	/* Tx1 Pin in use */
    	.bUseTx1 = ENABLED, 
    
    	/* Rx1 Pin in use */
    	.bUseRx1 = DISABLED, 
    
    	/* No of Tx0 channels  */ 
    	.nChTx0 = 2, 
    
    	/* No of Rx0 channels  */ 
    	.nChRx0 = 0, 
    
    	/* No of Tx1 channels  */ 
    	.nChTx1 = 2, 
    
    	/* No of Rx1 channels  */ 
    	.nChRx1 = 0, 
    
    	/* Number of configuration units  */ 
    	.nNumPeriConfigUnit = 0, 
    
    	/* Pointer to configuration units  */ 
    	.paPeriConfigUnit = NULL_PTR 
     };
    
    /************************************************** END OF CHAIN 0 SLAVE3 PERIPHERAL DESCRIPTION ********************************************************************************  */
    
    

    I'll wait your reply, thank you.

    Dott. Elia Vignoli

  • Hi Dott.Elia Vignoli,

    We verified on the bench, 16 mic's data we are able to receive at the host.
    changes need to done in your configuration.
        1.  Main node has to set to TDM16 to receive the 16 slots from the 4 nodes.
        2.  In Sub node maintain clock of 3Mhz while using the PDM. 

    Use TDM4 with 16 bit TDM size or Use TDM2 with 32bit, for the PDM clock configuration. PDM mics will operate at 3Mhz. if the configuration is missed audio will be noisy. 

    NOTE: Main node will receive the number of slots is equal to the TDM mode of the Main node. 

    Thanks.
    Swaroop B U.

  • Hi Swaroop B U.

    I would like to thank you about the efforts that you put into it.

    I tried to set my SigmaStudio as you suggested, however I don't understand how I can actually set 3MHz. Is there any flag or option on SigmaStudio?

    Thanks

    Dott. Elia Vignoli

  • Hi EliaVigno,

    Maintain TDM2 and 32bit slot size results in 3Mhz frequency 

    2*32*48Khz =  3072000 Hz  = 3Mhz.
    or maintain TDM4 with 16 bit slot size results in 3mhz frequency.

    Thanks.

  • Thanks Swaroop B. U.

    It makes sense.

    What I can't understand is the following:

    According to my system, I have TDM8 (32-bit) in the master (green circle) and TDM2 (32-bit) in the mics (red circles). 

    Since I have TDM8 in the master I have to provide a clock of 8*32*48000=12.228MHz.

    And, like you said, a clock of 2*32*48000=3.072MHz for the mics.

    What I am not understanding is how I can set the 3.072MHz for the mics. I explain better. 

    From the ADSP-SC589 I can make sure (by using PCG and SRU) that the AD2428 is fed properly by the 12.228MHz signal. In my head this refercence clock is propagated through the A2B bus, reaching the slaves. But the slaves need less frequency than 12.228MHz, so how I can provide the mics the right clock reference?