Other Parts Discussed in Thread: IWRL6432
Tool/software:
Hello,
I'm going through a step-by-step sequence of creating my own custom application from the group up, though at this stage it's pretty much a stripped back version of {SDK/source/control/mmwave} I've currently got basic control of the DFE, setting up chirp parameters and executing frames. I'd like to export the data to Matlab to verify its validity before I start configuring the HWA.
My chirp profile settings are taken from the mmWaveSensing estimator for "Short Range Default" and I've check various monitors so I'm fairly convinced I'm correctly transmitting data.
I am viewing the ADC data using the Memory Browser in CCS, looking at the APP_HWA_ADCBUF_RD register (0x5506 0000).
After all my setup sequence, I'm effectively running the following loop with a breakpoint on the frame complete printf to view the ADC data.
err = rl_sensSensorStart(M_DFP_DEVICE_INDEX_0, &z_fecssSensStart); // Wait for frame to end do { err = rl_sensStatusGet(M_DFP_DEVICE_INDEX_0, &z_fecssSensStatus); } while (z_fecssSensStatus.w_FramePeriodTimerVal != 0); printf("Frame Complete\n");
I appear to be capturing h_NumOfAdcSamples worth of 16-bit samples (256 in this case).
However, I'm confused by the format of these samples. It's a 12-bit ADC, so I'm assuming there's some padding going on but I cannot see any consistency. I'd expect either the first or last nibble of each 16-bit to be 0 or F, but it appears to alternate between the two.
Please may somebody confirm how the ADC samples are stored as 16-bits in the ACCEL memory?