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: Problem with repeat mode

Part Number: FDC1004

Hi Team,

My customer is seeing some strange behavior with the FDC1004 when it's set in repeat mode. Without repeat mode, everything works as expected - for each channel, they configure, trigger, and read a measurement, and the values make sense. If they set it up such that they configure all measurements and then trigger with repeats, they get a lot of 0x7FFFFF00 values in the measurement registers (max value). They print out channel values every half second, and the values bounce around unexpectedly when they are not touching the capacitive strip. At any given time, at least one channel is reading the max value, 0x7FFFFFF, when it shouldn't be. When they switch out of repeated mode and back to configuring & triggering each individual measurement, this behavior goes away. Instead, they see values close to 0 when not touching the strip, and they can only get maximum values when pressing down on the strip. 

Rather than configure and trigger every measurement every half second, repeat mode is what they would prefer for our application. It's possible it's something to do with timing; perhaps they are trying to read measurements that haven't completed yet. We find the information on repeat mode in the datasheet to be fairly vague:

Section 8.5.3.2:

When the FDC1004 is setup for repeated measurements, multiple configured measurements (up to a maximum of 4) can be performed in this manner, but Register 0x0C must be written in a single transaction.

Section 8.5.3.4:

Once the measurement read is complete, the corresponding DONE_x field (Register 0x0C:bits[3:0]) will return to 0. If an additional single triggered measurement is desired, simply perform the Trigger, Wait, Read steps again. If the FDC1004 is setup for repeated measurements (Register 0x0C:bit[8]) = 1), the FDC1004 will continuously measure until the REPEAT field (Register 0x0C:bit[8]) is set to 0, even if the results are not read back.

Basically they would like to get more detail about how to enable this repeat mode with continuous measurements. They are waiting for the DONE bit but are not sure that's necessary. Also they are not sure exactly what to write in the measurement configuration registers for the channels before setting the 0x0C / FDC register. 

It would be awesome if I could get your guidance and help on this.

Thanks!
Mitchell

  • Hi Mitchell,

    I do recommend waiting for the DONE_n bits to flag before reading the measurement registers. Can you share what your customer is writing to the FDC Configuration register (0x0C) in the repeat mode? Is is different from the value they are writing in the single measurement mode?

    Best Regards,

  • This problem was investigated offline. The cause of the issue was using two separate FDC1004 devices at the same time and shorting the SHLD1 pins together. The SHLDy pins and the CINx pins should not be shorted together when using multiple FDC1004 devices.