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