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.

Problems with DM3730 EDMA receiving data from McBSP

Other Parts Discussed in Thread: DM3730

Hi, I am new with DM3730 EDMA, now I have some trouble when it receives data from McBSP.

My configuration is like the following:

//basic definition

#define ONE_FRAME_SYM_NUM  (UINT32)1250 

#define     PER_EDMA_PARAM_CHANNEL1_BASEADDR            (0x01C04020)
#define     PER_EDMA_PARAM_CHANNEL1_LINK_BASEADDR       (0x01C04000+(0x20*73))

typedef struct T_PER_EDMAReg2_Tag
{
 volatile unsigned int TPCC_OPT;
 volatile unsigned int TPCC_SRC;
 volatile unsigned int TPCC_ABCNT;
 volatile unsigned int TPCC_DST;
 volatile unsigned int TPCC_BIDX;
 volatile unsigned int TPCC_LNK;
 volatile unsigned int TPCC_CIDX;
 volatile unsigned int TPCC_CCNT;
}T_PER_EDMAReg2;

//progarmme

T_PER_EDMAReg2 *gptPEREDMAReg2CH1 = (T_PER_EDMAReg2 *)PER_EDMA_PARAM_CHANNEL1_BASEADDR;
T_PER_EDMAReg2 *gptEDMALinkToCH1 = (T_PER_EDMAReg2 *)PER_EDMA_PARAM_CHANNEL1_LINK_BASEADDR;

    gptPEREDMAReg2CH1 ->TPCC_OPT = 0x00001200;
    gptPEREDMAReg2CH1 ->TPCC_SRC = (UINT32)MCBSP_DRR_ADDR(1);//DRR address of McBSP1
    gptPEREDMAReg2CH1 ->TPCC_ABCNT = (UINT32)(0x00000004 | (UINT32)(ONE_FRAME_SYM_NUM <<16));
    gptPEREDMAReg2CH1 ->TPCC_DST = (UINT32)&IQBuff[0];//a buffer,the address is 0x800C1DD0
    gptPEREDMAReg2CH1 ->TPCC_BIDX = 0x00040000;
    gptPEREDMAReg2CH1 ->TPCC_LNK = ((UINT32)(ONE_FRAME_SYM_NUM <<16) | 0x4E40);
    gptPEREDMAReg2CH1 ->TPCC_CIDX = 0x0;
    gptPEREDMAReg2CH1 ->TPCC_CCNT = 0x1;

    gptEDMALinkToCH1 ->TPCC_OPT = 0x00201200;
    gptEDMALinkToCH1 ->TPCC_SRC = (UINT32)MCBSP_DRR_ADDR(1);
    gptEDMALinkToCH1 ->TPCC_ABCNT = (UINT32)(0x00000004 | (UINT32)(ONE_FRAME_SYM_NUM <<16));
    gptEDMALinkToCH1 ->TPCC_DST = (UINT32)&IQBuff[0];
    gptEDMALinkToCH1 ->TPCC_BIDX = 0x00040000;
    gptEDMALinkToCH1 ->TPCC_LNK = ((UINT32)(ONE_FRAME_SYM_NUM << 16) | 0x4E40);
    gptEDMALinkToCH1 ->TPCC_CIDX = 0x0;
    gptEDMALinkToCH1 ->TPCC_CCNT = 0x1;

After the programme is executed, check the memory of IQBuff,

For the first time, EDMA transfers data 0x00000000~0x0000009D from DRR of McBSP;

For the second time, EDMA  transfers data 0x00000001(highlight)~0x0000009C from DRR of McBSP;

Now, I want the  data which EDMA transfers the second time to overwrite the  data which EDMA transfers the first time ,what should I do?

Thanks

  • Hi,

    Could you give more detailed description of the problem an what is your environment - software and hardware platform.

    What happens with EDMA transfers after second time?

    BR

    Tsvetolin Shulev

  • Hi Cvetolin Shulev,

    I’m new to dm3730 EDMA.My linux version is 2.6.32.

    My task is to capture voice from MAIN MIC.I have made all the configuration with respect to the MCBSP3.But my problem is PCM data transfers at 16 bits on active high .But the mcbsp side I'm using the I2S mode to transfer data.Is it compatible to interface the mono pcm to the dual phase I2S mode. Even though I'm able to record data it only plays noise. I can see the DRR register values changing on the MCBSP side.But when i try to play it on my PC the length of the audio file is more than 10 times greater than the original recording length.

    MCBSP register values.My task is to only record .playing not required on the device side.

    ***** omap_mcbsp_dump_reg *****
    omap-mcbsp omap-mcbsp.3: DRR2:  0x00f6
    omap-mcbsp omap-mcbsp.3: DRR1:  0x0000
    omap-mcbsp omap-mcbsp.3: PCR0:  0x0000
    omap-mcbsp omap-mcbsp.3: DXR2:  0x0000
    omap-mcbsp omap-mcbsp.3: DXR1:  0x0000
    omap-mcbsp omap-mcbsp.3: SPCR2:  0x02f5
    omap-mcbsp omap-mcbsp.3: SPCR1:  0x0030
    omap-mcbsp omap-mcbsp.3: RCR2:  0x8041
    omap-mcbsp omap-mcbsp.3: RCR1:  0x0000
    omap-mcbsp omap-mcbsp.3: XCR2:  0x8041
    omap-mcbsp omap-mcbsp.3: XCR1:  0x0000
    omap-mcbsp omap-mcbsp.3: SRGR2:  0x0000
    omap-mcbsp omap-mcbsp.3: SRGR1:  0x0f00
                    *********************

    Thanking you,

    Adabal