Can the SPT trigger FastDMA?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Can the SPT trigger FastDMA?

256 Views
CelineChan
Contributor I

HW:S32R45+tef82xx

RSDK1.1.0

bsp33

 

Can the SPT trigger FastDMA once when the SPT RFFT processes 1/2 frame, and then trigger FastDMA again when the entire frame RFFT is complete? 

Will the ADC data in the chirp buffer be lost or overwritten between the SPT evt and wait commands? thank you.

As a supplement, When TEF82xx sends two chirps data, it will trigger the SPT to start  RFFT without waiting for all FMCW chirps to be sent over.

 

like this:

/*=========================================================================
* LOOP: loop count 2 as SDADC sample array is double buffered, array holds samples of two chirps
*=========================================================================*/
loop #2

/*=========================================================================
* LOOP: loop count is chirp number per frame divided by two as samples of two chirps are buffered
*=========================================================================*/
loop #(CHIRPS_PER_FRAME >> 2)

/*=========================================================================
* LOOP: loop count 2 as SDADC sample array is double buffered, array holds samples of two chirps
*=========================================================================*/
loop #2

/*=========================================================================
* START of THREAD SCS0
*=========================================================================*/
thread .thd_scs0

/*=========================================================================
* PDMA: transfer SDADC samples from even/odd chirp of all channels(CH#0..CH#7) from CBRAM/SRAM to OPRAM
*=========================================================================*/
pdma.ind .signext .16real .sysram2opram .sync .notrace .nocoherent, SAMPLES_PER_CHIRP, RSDK_SPT_RANGE_INPUT_BASE_ADDR, WR_11, 0x0, 0x1, 0x0, 0x8
pdma.ind .signext .16real .sysram2opram .sync .notrace .nocoherent, SAMPLES_PER_CHIRP, RSDK_SPT_RANGE_INPUT_BASE_ADDR, WR_12, 0x0, 0x1, 0x0, 0x8

......
......


/*=========================================================================
* STOP of THREAD SCS0
*=========================================================================*/
stop

 

/*=========================================================================
* NEXT: end of inner loop
*=========================================================================*/
next

   
/*=========================================================================
* NEXT: end of outer loop
*=========================================================================*/
next

/*=========================================================================
* EVT: set event-0x1f
*=========================================================================*/
evt.cpu 0x1F
    
/*=========================================================================
* WAIT: wait for SW generated event
*=========================================================================*/
wait.cpu 0x1F


/*=========================================================================
 * NEXT: end of inner loop
 *=========================================================================*/
 next

Tags (3)
0 Kudos
Reply
1 Reply

214 Views
CelineChan
Contributor I

The evt command can already trigger the CPU to start Fast DMA which send RFFT result data from SRAM to DDR, but the second half of the DDR data is incorrect.

I have the following two questions that need help. Could someone please help me? Thank you.

1.Does the SPT RFFT need to complete processing an entire frame of data before starting Fast DMA?
2.Can I start Fast DMA when SPT RFFT processing only half of the frame? How can I starting FDMA to send data when the RFFT has processed half of the frame?

0 Kudos
Reply