• TI thinks resolved

AFE4300 EVM : Achieving Deterministic Phase in the IQ Mode


I finally managed to get the EVM running with an Arduino and so far everything looks like it is working fine. I am able to get appropriate magnitude and phase values at a single frequency without any issue in the IQ mode.

As mentioned in the data sheet, I noticed that when the frequency is changed in the IQ mode the output data becomes very non-deterministic. The datasheet (section 8.1.3) suggests either 1. doing a fresh calibration or 2. using an SPI synchronous with the device clock. I had a couple of questions on both approaches. 

It looks like both I and Q changes when the frequency is changed. I understand that magnitude should be calibrated because of the variation in gain etc. but the phase values look drastically different. Does this mean I should calculate the phase offset and add it to all the values? I haven't tested this but I am assuming it should work. 

I need to look into creating a synchronous SPI system but I was wondering why a sufficient delay will not work. Can I do the following to get it to work :  disable IQ_MODE, write the DAC Frequency and IQ_DEMOD_CLK_DIV_FAC values, provide a couple of ms worth of delay and reenable IQ_MODE?

I am getting a bit confused on how an SPI synchronous to the device clock would work. Is there a timing diagram someone can share?

Thank you

P.S. For everyone trying to get an Arduino(powered at 5V) to interface with the AFE4300 EVM, make sure every signal is pulled down to 3.3V. I used a simple voltage divider circuit with 3 10Ohms 

  • Hi Mathews,

    Yes, you are correct about the phase offset calculation. Every time you change the frequency , you should calculate the phase offset and use this information to correct the phase in body impedance measurement.

    The frequency of the IQ mode is changed as soon as the given registers are written but the source of the frequency is the device clock. Now if you synchronize both the clocks (i.e. device clock as well as SPI clock) the frequency generation starts from the same initial point every time. This makes them deterministic.

    Hope this helps.