Part Number:OMAP-L138
Hi,
I have plan to use OMAP-L138 for RADAR data processing. I try to get data from external ADC through McASP in I2S mode. But EDMA tuning for this mode not clear for me. I looked for solution in different docs and StarterWare mcasp source code but it is just magic.
Advise me please EDMA settings for McASP in I2S mode for getting 16-bit data through one or two Rx pin.
ADC data format on the figure below.
Part of the code McASP initialize for.
void mcaspI2SConfig(void) { McASPRxReset(SOC_MCASP_0_CTRL_REGS); McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 2, 2); McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, 16, 16, MCASP_RX_MODE_DMA); McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE); McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0); McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32, 0x00, 0xFF); /* Enable the transmitter/receiver slots. I2S uses 2 slots */ McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, 0x0F); McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, 13); McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, 14); /* ** Configure the McASP pins ** Input - Frame Sync, Clock and Serializer Rx */ McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF); McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSR \ | MCASP_PIN_ACLKR \ | MCASP_PIN_AXR(13) \ | MCASP_PIN_AXR(14)); McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR | MCASP_RX_CLKFAIL | MCASP_RX_SYNCERROR | MCASP_RX_OVERRUN); }
Any usefull example of code or advice greatly valuable for me.
Thank you in advance.
Andrey