This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWRL6432BOOST: HWA doesn't seem to be doing anything

Part Number: IWRL6432BOOST

Tool/software:

Hello,

I'm creating my own application not using the API but instead using the firmware functions and writing to registers based off the register maps.

Without the HWA, I am able to;

  • Set up a chirp (currently using "Short Range Default" settings from mmWaveSensignEstimator)
  • Trigger the frame using rl_sensSensorStart
  • Pause on a breakpoint after the frame ends (wait until z_fecssSensStatus.w_FramePeriodTimerVal != 0)
  • View the 128 ADC samples at 0x5506 0000 (APP_HWA_ADCBUF_RD)
  • If I manually change the ADCBUFPIPOSELINV signal in the register editor the data at 0x5506 0000 changes, which leads me to believe I have filled both ping & pong buffers

I'm now moving onto the next stage where I'm trying to use the HWA to run a FFT on the data using the FFT1D mode.

When I enable the HWA, the register at 0x5506 0000 is now full of zeros, but my ADC data is at 0x5500 0000, though there is none at 0x5500 4000 (where I expect either ping/pong data). I also have no data in 0x5500 8000 (which I believe my HWA dest address is set to).

The HWA_CFG > RDSTATUS > LOOPCNT register is reading '1', which makes me think the HWA state machine is running.

  • Hi

    Thanks for your query. Please allow us a couple of days to respond.

    Regards

  • Hello,

    I've made a small bit of progress.

    I now understand both ping & pong data will appear in DMA0 buffer, and I'm able to export the ADC data to Matlab, run a FFT and see peaks where I expect to. So I'm certain my DFE is setup correctly.

    I still cannot get the HWA to work correctly though. I've set a counter to increment whenever HWASS_LOOP_INT is triggered, which doesn't increment at all indicating that the HWA isn't completing a single cycle, which matches with my lack of output data.

    I'm no closer to working out why my HWA won't run though so still need some assistance confirming my HWA settings are suitable. I've also tried software triggering the HWA on the CHIRP_AVAIL interrupt which also doesn't work.

    Thanks

  • Hello, 

    Sorry for the delay here. Have you referred to the SDK example code? You should compare your code for initialization and configuration of the HWA. Since you are just writing to the registers you can try running the example motion detection demo while connected in CCS and place a breakpoint before the HWA is triggered and view the register values.

    Best Regards,

    Josh

  • Hi Josh,

    At the start of the week I compared mine against the hwa_real_fft example as it aligns more closely with what I'm trying to achieve, which resulted in some minor changes to my initialisation sequence but the result remains the same. I believe I am doing the exact same setup sequence as the example does, though I appreciate I must be doing something different otherwise it would work.

    So based off the data I can see, I'm pretty sure I'm setting up the HWA, triggering it (ACC_TRIGGER_IN_STAT shows 1 in software trigger bit), but it doesn't appear to be completing a loop. What could be causing that? Are there any error codes I can read to see if I have an invalid configuration, or perhaps it not completing before the next trigger occurs..? 

  • Hi Josh,

    Sorry for another post so soon. I found the mistake in my earlier code, I hadn't initialised the param register.

    I also assumed with the ping/pong arrangement I could read from 0x5500 0000 (ACCEL_MEM0) and write to 0x5500 4000 (ACCEL_MEM1), however it appears to only work if I read from 0x5500 0000 (ACCEL_MEM0), and write to 0x5500 8000 (ACCEL_MEM2). Perhaps I have misunderstood how the accel mems map to the HWA_DMA0/1 registers