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.

FDC2114: Amplitude warning and reserved area in DRIVE_CURRENT register

Part Number: FDC2114

Hello,

 

I am using the FDC2114 for capacitance measurements and face some issues concerning an amplitude warning in the DATA register. As described in the data sheet (p.28), "If the amplitude has not settled prior to the conversion start, an Amplitude warning will be generated if reporting of this type of warning is enabled." Therefore, I tried to adjust the correct value in the SETTLECOUNT register.

 

My first approach was to calculate the correct value. SETTLECOUNT must be configured as in equation (4), p. 17 in the data sheet.

  • IDRIVE is configured as 0,038 mA as I measure 1,61 V on IN1B vs ground and 1,35 V on IN1A vs ground.
  • The sensor capacitance is 27 pF, but I am not sure about the parasitic PCB capacitance. Therefore, I used 150 pF for the calculation as the datasheet states that SETTLECOUNT must be programmed to be at least the value calculated from equation (4).
  • The reference frequence is 2,4 MHz

 

The SETTLECOUNT value, I obtain from equation (4), is 5. To give some extra settling time, I programmed the SETTLECOUNT register to 6. With this configuration, I read out an amplitude warning in the DATA register.

 

My second approach was to vary the SETTLECOUNT register from 0x0000 to 0xFFFF (where all other register values were fixed). I tried out about 20 values in the possible range, but I always read out an amplitude warning in the DATA register.

 

Can you kindly give support about the amplitude warning?

 

Related to the above issue, I also checked if I can read back the correct register values. I observed some strange behaviour concerning the reserved area in the DRIVE_CURRENT registers. When I read back the DRIVE_CURRENT register, I do not obtain b000 0000 0000 in the reserved area and I am not sure if this is an issue. I know from the data sheet (p.22) that "fields indicated with Reserved must be written only with indicated values." Can you please give advice if this is an expected behaviour or if this should be investigated further?

 

I appreciate your support.

 

Best regards,

Andrea

  • Hi Andrea

    Thank you for the detailed information.

    Looks like it is related to Drive current setting. Reading all 0s in the DRIVE CURRENT register is not correct. Please make sure that your communication is working fine. 

    Did you measure the Oscillations at the input? It should be between 1.2V to 1.8V. If it is beyond these values, the drive current needs to be adjusted.

    Regards

    Sharath.

  • Hello Sharath,

    thank you for your response!

    I do not read all 0s in the DRIVE CURRENT register. As I described above, I configured IDRIVE to 0,038 mA. Therefore, I write 0x3000 = b 0011 0000 0000 0000 to the DRIVE CURRENT register. When I checked if the correct register value was written, I read back 0x3080 = b 0011 0000 1000 0000, meaning that field CHx_IDRIVE is configured correctly. But the reserved area (bit 10 to 0) is not all 0s as I would expect. I'm not sure if this is the expected behaviour.

    I measured the oscillation amplitude at both INxB vs ground and INxA vs ground and obtained 1,61 V respectively 1,53 V.

    Can you kindly give further advice?

    Best regards,

    Andrea

  • Hi Andrea,

    Please decrease the DRIVE CURRENT so that the amplitude of the signal is as low as 0.5V. My understanding is that amplitude is reaching closer to 1.8V with the sensor. It should be fine even if the amplitude is lower than 1.2V but lower then 0.5V is not recommended. Let us know if it solves the issue.

    Regards

    Sharath.

  • Hello Sharath,

    thank you again for your feedback! I adjusted DRIVE CURRENT to several values and these are the results I obtain:

    IDRIVE

    Oscillation amplitude, measured on INxB vs ground

    Oscillation amplitude, measured on INxA vs ground

    Amplitude Warning
    0.016mA 820 mV 590 mV 1
    0.018mA 870 mV 680 mV 0
    0.021mA 950 mV 720 mV 0
    0.025mA 1,10 V 820 mV 0
    0.028mA 1,24 V 1,01 V 1
    0.033mA 1,42 V 1,17 V 1
    0.038mA 1,68 V 1,43 V 1
    0.044mA 1,90 V 1,62 V 1

    Therefore, I can configure IDRIVE such that no amplitude warning is present. It seems to be the case that the oscillation amplitude must be somewhere between 870 mV and 1,1 V for INxB and somewhere between 680 mV and 820 mV for INxA.

    Can you also give more information about the reserved area in the DRIVE CURRENT register referring to the behaviour I described above?

    Best Regards,

    Andrea

  • Hi Andrea,

    The reserved bits should be treated as don't care bits. It is not recommended to write to those bits, but you can ignore the data you read from the reserved bits.

    Thank you for providing detailed test information. I am glad you found a setting that works with your application.

    Please get back to us if you need any other information in the future.

    Regards

    Sharath.