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: FDC1004 The first data is abnormal

Part Number: FDC1004

Hello We have confirmed that the first data at the start of measurement on the FDC1004 outputs the data from the previous measurement. After measuring the capacitance of the liquid in bottle 1 and detecting the liquid level, the liquid is sucked. After that, the liquid is discharged to bottle 2, but the electrostatic capacity of the liquid in bottle 2 is measured before discharging. Capacitance measurement starts from a specific height and repeats until the liquid level is detected. The problem is that the first data when measuring the capacitance in bottle 2 may output the capacitance of bottle 1. Checking the register gives the following:

012346 A0a=>0Ca A0a<=0Da80n←Bottle 1 measurement incomplete

012346 A0a=>0Ca A0a<=0Da88n←Bottle 1 measurement completed

012346 A0a=>00a A0a<=55aF5n ← Read bottle 1 data

012346 A0a=>01a A0a<=D9a00n←Read bottle 1 data

012347 A0a=>0Ca A0a<=0Da88n←Bottle 1 measurement completed

012347 A0a=>00a A0a<=67a9An ←Read bottle 1 data

012347 A0a=>01a A0a<=AAa00n←Read bottle 1 data

012347 A0a=>0Ca00a00a ← Bottle 1 measurement stop

012710 A0a=>0Ca0Da80a ← Bottle 2 measurement start

012710 A0a=>0Ca A0a<=0Da80n←Bottle 2 measurement incomplete

012711 A0a=>0Ca A0a<=0Da88n←Bottle 2 measurement completed

012711 A0a=>00a A0a<=67a9Bn ← Read bottle 2 data

012711 A0a=>01a A0a<=1Fa00n←Read bottle 2 data

012711 A0a=>0Ca00a00a ← Bottle 2 measurement stop

The capacitance of bottle 2 is about 2pF, but 12.95pF (0x679B1F) is measured. This is equivalent to bottle 1's capacitance of 12.95pF (0x679AAA). I have this problem from time to time. This problem occurs only with the first data in bottle 2. Will there be any problems if the time from the start of measurement to confirmation of completion of measurement is too short?

  • Satoshi,

    What is the liquid you want to measure?

    If it is sticking to the sides of the bottle after the bottle is emptied, that can impact the capacitance reading, making it look like there is still fluid in the bottle.

    Also, a conductive liquid can be difficult to measure with a capacitive sensor. 

    regards,
    John

  • Hello John

    The liquid being measured is pure water.

    The liquid level is detected by bringing the rod-like electrode into contact with the liquid. So the liquid adhering to the side of the bottle has little effect. Also, the rod-like electrode does not touch the side of the bottle.

    Bottle 1 and Bottle 2 have very different capacitances. The problem is that sometimes the value of bottle 1 is output only for the first repeat measurement.

    Thank you for your reply.

  • Satoshi,

    The sensor for the FDC1004 is coming in contact with the liquid you want to measure?
    If that is the case, I'm not sure the approach will give the best results.
    We advise the sensors be separated by a small distance from the liquid to be measured.

    For more info on this, please see our E2E FDC1004 Frequently Asked Questions page.
    It has a lot of info on the FDC1004.
    There are several app notes on liquid-level sensing that show different sensor configurations.

    Regards,
    John

  • Hello John

    The FDC1004 sensor is in contact with liquid. Since the purpose is to detect the liquid level, I think it would be good if we could check the change in capacitance when the sensor comes into contact with the liquid surface.

    What I would like to know is to output the result of the previous repeat measurement, not the data currently being measured. I'm looking at I2C data to find this issue. This is a rare occurrence.

    Another problem is that after instructing the FDC1004 to start measurement, the measurement completion register may not be written no matter how many times it is checked. In that case, if the software is not reset, the measurement will remain indefinitely. Please tell me the cause and solution of these problems.

    best regards

    Satoshi

  • Hello John
    I will make an additional inquiry.

    If I write 0xD8 (400S/s, Repeat Measurements ON, Measurements 1 enabled) to the FDC Register and then write 0xD8 to the FDC Register again during measurement, will the FDC1004 operate abnormally?

    Also, does the timing of writing affect the Measurement Done of the FDC Register?

    best regards

    Satoshi

  • Satoshi,

    I will consult with one of my colleagues about your latest question and update this thread tomorrow.

    Regards,

    John

  • Satoshi,

    Could you please measure the sensor waveforms and post the results to this thread.
    Direct contact of the electrodes with the water may be distorting the sensor waveform and corrupting the measurement, which can in turn corrupt the register values.

    Regards,
    John

  • Hello John.

    We will send the sensor waveforms separately.
    By the way, what we want to know is, as shown in the first post, why do we get similar capacitance values before and after Bottle 1 measurement stop? will be
    So, I tried to see the difference in behavior of the evaluation board (FDC1004EVM) with I2C communication.
    As a result, the evaluation board was polling the FDC_CONF register even when the measure was stopped from the application.
    In our application, we write 0x0000 to the FDC_CONF register on the stop event, and write 0x0D80 to the FDC_CONF register when we start the measure. There is no I2C communication between them.
    Should I poll the FDC_CONF register even when the measure is stopped?
    In our control method where there is no access from writing 0x0000 to FDC_CONF to writing 0x0D80, we suspect that the value before writing 0x0000 remains because the buffer inside the FDC1004 is not updated.
    (As an aside, in the first post, the leftmost 6 digits of the register value means mmss.00 (ex. 012346=01min23.46sec))

    Best regards

    Satoshi

  • Satoshi-san,

    Would you please try taking a single measurement, rather than continuous, and reading a few values at a time?

    Regards,
    John

  • Hello John.

    We will send you the waveforms when the liquid surface is not in contact and when the liquid surface is in contact. Since I don't have a high impedance probe, I use an op-amp buffer circuit to check the waveform. Data streaming is also attached.

    Best regards

    Satoshi

  • Satoshi,

    I will speak with a colleague about your latest questions & results and update this thread by COB Friday.

    Regards,
    John

  • Hello John.

     I'm sorry.

    Regarding the waveform I attached the other day, I am measuring 4CH from CIN1 to CIN4, but only CIN1 is measured correctly. We will send you the correct waveform.

    1)Non-contact liquid surface1(Capacitance: 10uF)

    2)Non-contact liquid surface2(Capacitance: 10uF)

    3)liquid surface contact(Capacitance: 16uF)

    best regards

    Satoshi

     

  • Satoshi,

    The waveforms you have showed look okay, so the problem is probably not with them.

    Would it be possible to make your firmware do the same register polling and read/write as the EVM GUI to compare the behavior?

    Regards,
    John

  • Hello John.

    It takes time to rewrite the firmware. By the way, could you please answer the following questions that I asked before? Please let me know if there is such a character in FDC1004.

    --------------------------------------------------------------------------------------------------------------
    By the way, what we want to know is, as shown in the first post, why do we get similar capacitance values before and after Bottle 1 measurement stop? will be
    So, I tried to see the difference in behavior of the evaluation board (FDC1004EVM) with I2C communication.
    As a result, the evaluation board was polling the FDC_CONF register even when the measure was stopped from the application.
    In our application, we write 0x0000 to the FDC_CONF register on the stop event, and write 0x0D80 to the FDC_CONF register when we start the measure. There is no I2C communication between them.
    Should I poll the FDC_CONF register even when the measure is stopped?
    In our control method where there is no access from writing 0x0000 to FDC_CONF to writing 0x0D80, we suspect that the value before writing 0x0000 remains because the buffer inside the FDC1004 is not updated.

    ----------------------------------------------------------------------------------------------------------------

    best regards

    Satoshi

  • Satoshi,

    Apologies for not answering your questions earlier. 
    I will review the questions further and update this thread by COB on Wednesday.

    Regards,
    John

  • Satoshi,

    The EVM GUI software may indeed be polling the FDC_CONF register. 
    It sounds plausible that the last measurement is being preserved in the buffer because the measurement was stopped.
    Your suggestion of polling the register may by a practical solution, but you will need to experiment with that approach to confirm it will work with your application.

    regards,
    John