Sub register for Accumulator CIR memory

Hello,
I want to plot the CIR. The register is 0x25, but I could not find the subregister. please let me know what is it?

The sub register is the point in the CIR that you want the data for. So start at 0 and proceed to sub register 4063 (for 64 MHz PRF)

From section 7.2.38 of the user manual:


NB: Because of an internal memory access delay when reading the accumulator the first octet output is a dummy octet that should be discarded. This is true no matter what sub-index the read begins at.

reg:25:000  CIR[0].real.lo8 Low 8 bits of real part of accumulator sample 0
reg:25:001  CIR[0].real.hi8 High 8 bits of real part of accumulator sample 0
reg:25:002  CIR[0].imag.lo8 Low 8 bits of imaginary part of accumulator sample 0
reg:25:003  CIR[0].imag.lo8 High 8 bits of imaginary part of accumulator sample 0
reg:25:004  CIR[1].real.lo8 Low 8 bits of real part of accumulator sample 1
reg:25:005  CIR[1].real.hi8 High 8 bits of real part of accumulator sample 1
reg:25:006  CIR[1].imag.lo8 Low 8 bits of imaginary part of accumulator sample 1
reg:25:007  CIR[1].imag.lo8 High 8 bits of imaginary part of accumulator sample 1

So if you read 5 bytes starting at sub register 0 you will get one byte of undefined junk followed by 4 bytes containing the first sample.
If you read 5 bytes starting at sub register 4 you will get one byte of undefined junk followed by 4 bytes containing the second sample.

Hi AndyA,

Thank you. I got only zeros :frowning: Do you have any idea to solve my problem?

When are you reading the data?
As soon as you enable receive that memory is reset. So you need to read the CIR data after a valid receive event and before you re-enable receive. This caught me out at first since my code path was to read the packet contents and then if no reply needed to be sent e-enable receive before doing any further processing.
If you have something similar going on then you’ll only ever get 0 for those values.

The other cause that springs to mind is if you were trying to read the CIR data one byte at a time rather than in larger transfers. As noted above the first byte returned is invalid, you need to read a minimum of 2 bytes from the CIR register to get any data.

OK, Thank you AndyA.