Tool/software:
Hello,
I'm trying to work out how to set the HWA to run continuously without requiring reinitialisation. In my scenario I don't really care about frames & bursts, I just want to be continuously transmitting chirps -> run FFT per chirp -> process result.
I have configured my device to generate a chirp;
- 16 chirps per burst (this is somewhat arbitrary given I'm running infinitely)
- 1 burst per frame
- 0 frame (infinite)
My HWA is configured;
- TRIGMODE = 2 & FFT1DEN = 1
- Execute FFT and put data in 0x8000 (which it is doing correctly)
- PARAM start 0, PARAM stop 0
- NLOOPS = 4095
I understand this should just be dumping FFT data into 0x5500 8000 on each ping/pong trigger, infinitely until I halt the program.
I haven't yet setup a DMA to transfer the output FFT data for processing, instead to check the HWA operation I have set up three counters which increments on certain interrupts
- Chirp avail IRQ increments infinitely
- HWASS_LOOP_INT counter increments to 1 and stops
- HWASS_PARAMDONE_INT increments to 4095 and stops
I've then added a line to run my HWA initialisation sequence (reset, configured & start) when HWASS_PARAMDONE_INT reaches 4095 and my counters behave as follows
- Chirp avail IRQ increments infinitely
- HWASS_LOOP_INT counter increments to 1 and stops
- HWASS_PARAMDONE_INT increments infinitely in line with Chirp avail IRQ
So I have two questions
- The TRM states if NLOOPS = 4095, the HWA runs infinitely, but in my case it only runs 4095 times, am I missing something here? Do I just need to stick with reinitialising the HWA after 4095?
- What causes the HWASS_LOOP_INT to trigger, and why does it only go once in my scenario?
Thanks