This thread has been locked.

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

tms320c6713b accessing max11040 24 bit adc

This Question regarding Accessing ADC MAX11040 through MSBSP Port (SPI Mode).If I send Read command ie 0xF00000 to the ADC will return entire 4 channel continuously.

That is total 24bits  X 4 channels =96 bits.How can I read this this 96 bit data  from the SPI registers.

I configured the data bits to 24 bits and number of words in phase1 as 4.whether the below code will work or not

                                         /*Code Starts here*/

static MCBSP_Config adc_spiConfigR = {
 
  /* Serial Port Control Register (SPCR) */
  MCBSP_SPCR_RMK(

    MCBSP_SPCR_FREE_YES,                                         
    MCBSP_SPCR_SOFT_YES,
    MCBSP_SPCR_FRST_YES,
    MCBSP_SPCR_GRST_YES,
    MCBSP_SPCR_XINTM_XRDY,
    MCBSP_SPCR_XSYNCERR_YES,
    MCBSP_SPCR_XRST_NO,
    MCBSP_SPCR_DLB_OFF,
    MCBSP_SPCR_RJUST_RZF,
    MCBSP_SPCR_CLKSTP_DELAY,
    MCBSP_SPCR_DXENA_OFF,   
    MCBSP_SPCR_RINTM_RRDY,
    MCBSP_SPCR_RSYNCERR_YES,                              
    MCBSP_SPCR_RRST_NO),
  /*  Receive Control Register (RCR) */
  MCBSP_RCR_RMK( 
 
    MCBSP_RCR_RPHASE_SINGLE,
    MCBSP_RCR_RFRLEN2_OF(0),
    MCBSP_RCR_RWDLEN2_24BIT,
    MCBSP_RCR_RCOMPAND_MSB,
    MCBSP_RCR_RFIG_YES,
    MCBSP_RCR_RDATDLY_1BIT,
    MCBSP_RCR_RFRLEN1_OF(3),
    MCBSP_RCR_RWDLEN1_24BIT,/
    MCBSP_RCR_RWDREVRS_DISABLE),


  /* Transmit Control Register (XCR) */
  MCBSP_XCR_RMK(           
   
    MCBSP_XCR_XPHASE_SINGLE,
    MCBSP_XCR_XFRLEN2_OF(0),
    MCBSP_XCR_XWDLEN2_24BIT,
    MCBSP_XCR_XCOMPAND_MSB,
    MCBSP_XCR_XFIG_YES,
    MCBSP_XCR_XDATDLY_1BIT,
    MCBSP_XCR_XFRLEN1_OF(3),
    MCBSP_XCR_XWDLEN1_24BIT,
    MCBSP_XCR_XWDREVRS_DISABLE),
 
  /*serial port sample rate generator register(SRGR) */
  MCBSP_SRGR_RMK(
 
    MCBSP_SRGR_GSYNC_FREE,
    MCBSP_SRGR_CLKSP_FALLING,
    MCBSP_SRGR_CLKSM_INTERNAL,
    MCBSP_SRGR_FSGM_DXR2XSR,
    MCBSP_SRGR_FPER_OF(63),
    MCBSP_SRGR_FWID_OF(40),
    MCBSP_SRGR_CLKGDV_OF(25)
  ),
 
  MCBSP_MCR_DEFAULT,
  MCBSP_RCER_DEFAULT,
  MCBSP_XCER_DEFAULT,
 
  /* serial port pin control register(PCR) */
  MCBSP_PCR_RMK(  
 
    MCBSP_PCR_XIOEN_SP,
    MCBSP_PCR_RIOEN_SP,
    MCBSP_PCR_FSXM_INTERNAL,
    MCBSP_PCR_FSRM_INTERNAL,
    MCBSP_PCR_CLKXM_OUTPUT,
    MCBSP_PCR_CLKRM_OUTPUT,
    MCBSP_PCR_CLKSSTAT_0,
    MCBSP_PCR_DXSTAT_0,  
    MCBSP_PCR_FSXP_ACTIVELOW,
    MCBSP_PCR_FSRP_ACTIVELOW,
    MCBSP_PCR_CLKXP_FALLING,
    MCBSP_PCR_CLKRP_FALLING)
};

 

hMcbsp = MCBSP_open(MCBSP_DEV1, MCBSP_OPEN_RESET);

    MCBSP_config(hMcbsp,&adc_spiConfigR);

  MCBSP_start(hMcbsp,MCBSP_RCV_START | MCBSP_XMIT_START |
                 MCBSP_SRGR_START| MCBSP_SRGR_FRAMESYNC,
                 MCBSP_SRGR_DEFAULT_DELAY);

/*Configuring  Function Register */ 

       while (!MCBSP_xrdy(hMcbsp));

        MCBSP_write(hMcbsp,0x500000);
        
        while (!MCBSP_xrdy(hMcbsp));

        MCBSP_write(hMcbsp,0x6020);


  for (i = 0; i < 50; i++)
    
     {


        while (!MCBSP_xrdy(hMcbsp));

            /*Read command to ADC*/

        MCBSP_write(hMcbsp,0xF00000);

      while (!MCBSP_rrdy(hMcbsp));
              
      CH_A_DATA [i] = MCBSP_read(hMcbsp);

        while (!MCBSP_rrdy(hMcbsp));

        CH_B_DATA[i] = MCBSP_read(hMcbsp);   
       
        while (!MCBSP_rrdy(hMcbsp));

        CH_C_DATA [i] = MCBSP_read(hMcbsp);
       
        while (!MCBSP_rrdy(hMcbsp));

        CH_D_DATA [i] = MCBSP_read(hMcbsp);

        delayusec(50);

      }