AnsweredAssumed Answered

ADu350 2-wire Impedance measurement problem

Question asked by Lg963147 on Feb 9, 2017
Latest reply on Mar 1, 2017 by NeoXu

I need to perform the 2-wire Impedance measurement between 2 electrodes using the ADu350 MCU.

First I tried to run the AD example on ADUCM360EBZ evaluation board. It works OK.

Then I tried to measure the AFE3 - AFE4 impedance. I set the DFT_RESULTS_COUNT  equals 4:

      #define DFT_RESULTS_COUNT           (4)

and commented (AFE4 - AFE5) and (AFE3 - AFE5) parts in the sequence. My new sequence is following:

  

     0x001D0043,   /* Safety word: bits 31:16 = command count, bits 7:0 = CRC */
    0x84005818,   /* AFE_FIFO_CFG: DATA_FIFO_SOURCE_SEL = 10 */
    0x8A000034,   /* AFE_WG_CFG: TYPE_SEL = 10 */
    0x98000000,   /* AFE_WG_CFG: SINE_FCW = 0 (placeholder, user programmable) */
    0x9E000000,   /* AFE_WG_AMPLITUDE: SINE_AMPLITUDE = 0 (placeholder, user programmable) */
    0x88000F01,   /* AFE_DAC_CFG: DAC_ATTEN_EN = 1 */
    0xA0000002,   /* AFE_ADC_CFG: MUX_SEL = 00010, GAIN_OFFS_SEL = 00 */
    /* RCAL */
    0x86008811,   /* DMUX_STATE = 1, PMUX_STATE = 1, NMUX_STATE = 8, TMUX_STATE = 8 */
    0x00000640,   /* Wait 100us */
    0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1 */
    0x00000C80,   /* Wait 200us */
    0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
    0x00032340,   /* Wait 13ms */
    0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
    /* AFE3 - AFE4 */
    0x86003344,   /* DMUX_STATE = 3, PMUX_STATE = 3, NMUX_STATE = 4, TMUX_STATE = 4 */
    0x00000640,   /* Wait 100us */
    0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
    0x00032340,   /* Wait 13ms */
    0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
    /* AFE4 - AFE5 */
//    0x86004455,   /* DMUX_STATE = 4, PMUX_STATE = 4, NMUX_STATE = 5, TMUX_STATE = 5 */
//    0x00000640,   /* Wait 100us */
//    0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
//    0x00032340,   /* Wait 13ms */
//    0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
//    /* AFE3 - AFE5 */
//    0x86003355,   /* DMUX_STATE = 3, PMUX_STATE = 3, NMUX_STATE = 5, TMUX_STATE = 5 */
//    0x00000640,   /* Wait 100us */
//    0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
//    0x00032340,   /* Wait 13ms */
//    0x80020EF0,   /* AFE_CFG: WAVEGEN_EN = 0, ADC_CONV_EN = 0, DFT_EN = 0 */

    0x82000002,   /* AFE_SEQ_CFG: SEQ_EN = 0 */

When I run the example, the adi_AFE_RunSequence function returns false because CRC error.

 

Thank you,

 

Leonid Gal

Outcomes