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.

FDC1004-Q1: Stops taking measurements while repeated measurements enabled

Part Number: FDC1004-Q1
Other Parts Discussed in Thread: FDC1004

Hello,

We are measuring a liquid level using the FDC1004 and notice that eventually, while in repeated measurements mode the sensor sometimes stops conversions, and our application just repeatedly reads a stale value.

I have only been able to produce this error once on the bench, but it appears to be happening to units in the field fairly frequently.

 Here is my setup:

On power up, the following registers are written:

CONF_MEAS1 = 0x10E0 (CIN1, CAPDAC, Offset = 7 (21.875pf))

FDC_CONF = 0x580 (100S/s, REPEAT, MEAS_1)

The firmware has a task that then reads the value of MEAS1_MSB, then MEAS1_LSB 10 times a second (10Hz), averages it over 4 seconds, and exports the result.

Every four seconds after exporting the averaged sensor reading, the firmware reads the FDC_CONF and CONF_MEAS1 registers to ensure that they match the expected values.  If they don't match, the expected values are re-written (this check was added to fix an issue that was caused when the circuit voltage fell below the FDC1004 operating voltage, but the microcontroller kept running).

The 10Hz firmware sample reading was never checking the DONE_1 bit in FDC_CONF because since it was reading the value much slower than it was being sampled on the FDC1004 (100Hz), it assumed there would always be a new value ready.

I was able to hook a logic analyzer to the system the one time I reproduced the problem, and saw that the DONE_1 was never being set, FDC_CONF always read 0x580.  Re-writing the configuration, or even changing the measurement from CIN1 to CIN2 did not make any difference.  The only thing that eventually fixed it was to do a software RST command and re-write the configuration. (Note: I didn't have the ability to turn off the REPEAT bit on the fly, so I couldn't test toggling that bit).

Has this behavior ever been noted before?

I've modified the firmware to check for DONE_1 to be set, and if it isn't to do a software reset and reconfigure, but I am hesitant to deploy this firmware to several hundred units in the field because I haven't determined the root cause of why the FDC1004 stops taking measurements.

Any help or suggestions, or even just confirmation that sometimes the FDC1004 stops measurements would be appreciated!

  • Hi David,

    This is not an issue we've seen before. Can you clarify a couple of things?

    1. What is the output data (typically) when the FDC1004 is functioning normally? Any what is the output data when it gets "stuck"?
    2. Does the DONE_1 bit set correctly when the FDC1004 is functioning normally?
    3. Can you elaborate a little more on the under-voltage event for the FDC1004? Does this still occasionally happen?

    Best Regards,
  • Thanks Kristen,

    1. What is the output data (typically) when the FDC1004 is functioning normally? Any what is the output data when it gets "stuck"?

    The output is typically reading a capacitance between 20 and 29 pF. When it gets stuck, the output is just the last capacitance that was in the data register, so it is different every time.
    When I had it stuck on my bench , I was seeing the following values over the I2C interface:
    CONF_MEAS1 = 0x10E0
    GAIN_CAL_CIN1 = 0x4000
    OFFSET_CAL_CIN1 = 0x0000
    FDC_CONF = 0x0580
    MEAS1_MSB = 0x3ADE
    MEAS1_LSB = 0x2000

    2. Does the DONE_1 bit set correctly when the FDC1004 is functioning normally?

    Yes, it appears that it does, as my new firmware version checks to make sure it is set every time now.

    3. Can you elaborate a little more on the under-voltage event for the FDC1004? Does this still occasionally happen?

    The PCB has a 12V input, which is then regulated down with an LDO regulator to 3.3V, which then powers the microcontroller and FDC1004. Occasionally, at vehicle start up (it's not a car, I can't say what it is now), the 12V supply will droop below the LDOs ability to provide 3.3V (to around 2.3V), but not so low that everything will shut off. The microcontroller keeps running down to ~1.8V, but the FDC would reset around 3V, so the FDC1004 would reset, but the microcontroller kept reading the MEAS1_MSB and MEAS1_LSB registers. I accounted for this scenario by programatically keeping the microcontroller from running below 3V, and also implementing the 4 second loop mentioned in the first post (i.e, read the FDC1004 configuration every 4 seconds and re-write it if changed). This seemed to fix this particular issue.

    The current issue, doesn't appear to be tied to vehicle start ups, or any other power issue, but it is very hard to replicate, and very hard to determine the conditions that it occurs under. The vehicles they are attached to are in remote locations and hard to access with diagnostic tools.

    Thanks for any help
  • Hi David,

    Thanks for the additional information. I don't see a problem with your register settings. How often does this issue come up? We've set up a test with the FDC1004 in the lab, but haven't been able to reproduce this error.

    Would you also mind sharing your full register settings? I'd just like to verify that all of the reserved bits are set correctly. It would be great to see a schematic too. If you'd prefer to share these privately, feel free to add me as a friend on E2E and we can continue debugging via direct message.

    Best Regards,
  • Hi David,

    Because we are continuing to debug this offline, I am going to close this thread and mark it as resolved. If you have any other updates that can be shared publicly, please feel free to share them here.

    Best Regards,