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