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: channel reading returns zero

Part Number: FDC2114

Good day,

I am trying to use the fdc2114 to measure humidity. This is the current schematic.

I have tried two libraries/code https://github.com/zharijs/FDC2214, https://e2e.ti.com/support/sensor/capacitive-sensing/f/987/t/495744. Both libraries return 0 for all four channels.

It appears to be able to set the config but can’t get values.

https://pastebin.com/H8SQXEs4 code with sensor OK check.

https://pastebin.com/zw70zYz0 code from other TI thread.

This is my first time working with i2c or the fdc2114. Does someone see a mistake in the schematic or config? Should I rather use an external clock?

Regards

Simon

 

 

  • I see the images were not uploaded, here is the original imagebin.ca/.../49YB04xWjlDn.
  • Hi Simon,

    I would double-check that your register reads and writes are working. If you're sure that both are working, check to make sure that you have bit 9 of the CONFIG register (address 0x1A) set to 0 so that you are using the internal oscillator. We do recommend using an external oscillator to improve part-to-part variation, but the internal oscillator will work.

    I'm also not seeing pull-up resistors for the I2C lines in your schematic. Are those on the other side of your connector?

    Regards,
  • Hi Kristin,

    I was now able to read the config address which returned 011110001000 for the first 12 bits. What do you recommend for the config bytes. I have now set it to 00000100 00001000.

    The address 0x00 still returns 0. Would shorts from the sensor pins to the centre gnd pad cause 0 to be returned?

    Kind regards,
    Simon
  • Hi Simon,

    I would suggest changing the values in a few different registers. First, the CONFIG register has the wrong value written in some of its reserved bits (5:0). The value in these bits should be b00'0001. Then I would use Table 47 in the datasheet to configure the rest of the key registers.

    I would also suggest modifying the ERROR_CONFIG register (address 0x19) from the default value. Change both bit 13 and bit 0 to 1. This will allow you use the status register to monitor whether channel 0 is oscillating correctly, as well as notify you when new data is ready. If you read the status register and see that new data is ready, you should be able to read the correct value from the data registers.

    Finally, shorts between the sensor pin to ground could definitely cause the data registers to store a 0, because the sensor will not be able to oscillate.

    Regards,
  • Hi Simon,

    I haven't heard from you in a while, so I'm assuming you were able to resolve your issue. If this was not the case, please feel free to follow up in this thread or post a new question in the forum. We'd be happy to continue helping you debug your issue.

    Regards,
  • Hi Kristin,

    Sorry I have been using a toaster oven to reflow (without a stencil) while I waited for a rework station. I'm guessing it must be shorts underneath the chip as I have tried all the things you suggested.
    Thanks for the help, I'll post a new question if the issue persists after using a hot air station (arrived yesterday).

    Kind regards,
    Simon