AnsweredAssumed Answered

2D DMA mode in ADSP-21489

Question asked by RomanR on Feb 18, 2017
Latest reply on Mar 16, 2017 by unh-audio-ee


I use audio codec having 4 channels ADC. Samples are send in TDM 4 channels mode.

I want to use block SIMD mode for FIR filters implementation, so the samples from every ADC have to be in separate circular buffers.

As I see, I can use chained DMA mode in which the modifier in TCB may equal to single buffer length, so single TDM frame may be serviced this, 2D way. But, the next frame will need +4 starting index, so for N samples block N chained TCBs are needed. I will use channel buffers having 2N length (circular buffers must have a minimum length of N+taps), but may I implement such a 2D structure in a simpler way ?

I do not also understand, why index in TCB is so complicated:

(taken from initSPORT01_TDM_mode.c (Block-based Talkthrough) example for ADDS_21479_EzKit)

    TCB_RxBlock_A0[0] = (((unsigned int) TCB_RxBlock_A1 + 3)& OFFSET_MASK)|PCI ;

Could you explain ?






P.S. A presentation with drawings explaining DMA modes (simple, ping-pong, etc.) would help me and others.