• TI Thinks Resolved

ADS114S08: Getting full scale reading when reading data from ADS114S08

Intellectual 530 points

Replies: 39

Views: 345

Part Number: ADS114S08

Dear Sir,

We are back to this project once again.

Previously we are using IC ADS114S06.

But now our channel requirements are change so we are now change IC as ADS114S08.

Here below I have attached updated schematic diagram of circuit.

Consider all 3 controller pin (SDO,SDI,SCLK) connections are proper and directly connected to MCU.

There are no any external Pull UP / Pull Down resistors connected.

Currently we are trying to read ambient temperature of IC (system register value 0x50, Reference register value 0x1A, PGA value 0x09)

But we are always getting full scale reading (0x7FFF) instead of desired results.

Please suggest us proper solution for same.

Let us know is there any hardware modification is required or not?

Waiting for your quick reply.

Thanks and best regards,

Jehan Patel

  • Hi Jehan,

    I'm not sure what you mean by "There are no any external Pull UP / Pull Down resistors connected".  You cannot leave digital inputs float, so they must be properly connected to the appropriate levels.  For one example, the RESET pin must be pulled high or the device could float and enter a reset state.  The CLK pin must be set low, or the ADS114S08 could stop operating.  Can you give me more detail as to your schematic and how the pins are truly connected?

    Have you verified that the registers were written correctly by reading back the contents?  Have you monitored the analog supply to make sure that it is operating at nominal operating voltage?  Have you check the voltage or REFOUT to make sure that it is operating at 2.5V?

    Best regards,

    Bob B

  • In reply to Bob Benjamin:

    Hi Bob B,

    Thanks for your reply.

    First as you said all digital inputs must connected to appropriate level, we do the same and connected digital input pins to appropriate level.

    (RESET pin is pulled high , CLK pin is pulled low with this START and CS pins are also pulled low)

    Second you suggested to check on REFOUT and REFCOM pin, we are getting 2.4630V though 1uF capacitor. its like charging and discharging not constant voltage we getting.

    All supply are as per mention in datasheet. 

    After all this modification in our circuit we trying to read default values of registers,  but we are getting random values for all register  and after some time all register become zero so tell us what is problem.

    Let us know is there any hardware modification is required or not?

    Waiting for your quick reply.

    Thanks and best regards,

    Jehan Patel

  • In reply to Jehan Patel:

    Hi Jehan,

    This sounds like you are using a prototyping system that may have long wires interconnecting various supplies and control lines.  If you are seeing the REFOUT with a charge/discharge cycle then it would appear that the supply is drooping either because of current limiting or perhaps poor grounding.  I would look into the reference output connections as well as the analog and digital supply connections.

    Best regards,

    Bob B

  • In reply to Bob Benjamin:

    Hi Bob B,

    First if all thanks for your reply.

    As per your suggestion we reduced interconnecting wires length, now we are getting  constant 2.4946V at REFOUT. 

    But now we facing problem with RESET, we have connected RESET to 3.3V to use RESET command (0x06) but still ADS114S08 reset on Power On RESET.

    Waiting for your quick reply.

    Thanks and best regards,

    Jehan Patel

  • In reply to Jehan Patel:

    Hi Bob B,

    with previous reply i want to add that whenever we give RESET command (0x06) ,we did not get default data. To get default data we have to manually toggle RESET pin. So give us proper RESET pin connection for hardware.

    Waiting for your quick reply.

    Thanks and best regards,

    Jehan Patel

  • In reply to Jehan Patel:

    Hi Jehan,

    The ADS114S08 will reset when power is applied to the device (both analog and digital) after the supplies have reached nominal operating voltage.  Toggling the RESET pin will also issue a device reset as will issuing the RESET command.  If the RESET command is not resetting the ADS114S08 you should monitor the communication with an oscilloscope or logic analyzer.  Noise on the SCLK or DIN can result in the command being ignored. 

    As you are holding CS low, it is quite possible that noise has affected the communication with little ability to regain communication without the hardware RESET on the pin.  There is an SPI timeout feature to help with these issues when CS in permanently tied low (toggling CS resets the SPI communication).  The default setting for the timeout is disabled but can be enabled in the SYS register (9h), but you have to have valid communication prior to setting this bit.  The SPI timeout when enabled will reset the SPI bus following the timeout period.

    I think you still have some wiring issues that is affecting your communication.  Perhaps running at a slower SCLK rate would help during prototyping.

    Best regards,

    Bob B

  • In reply to Bob Benjamin:

    Hi Bob B,

    As per your suggestion we observe SCLK and DIN on oscilloscope and below is image of that. we observe spike on SCLK and DIN. We also observe spike on DIN when nothing is transferred to ADS114S08. 

    with this i want to add that first we are sending 8-bit  data for configuration of ADS114S08 that does not work and after that we changed it to 16-bit  data for configuration of ADS114S08 which works fine. So we want clarify that is there any difference if we configure ADS114S08 with 8-bit or 16-bit data. Because in datasheet they clarify it.

    Thanks and best regards,

    Jehan Patel

  • In reply to Jehan Patel:

    Hi Jehan,

    It appears that you are picking up significant noise on the communication wiring.  Noise on SCLK will be very problematic as this will cause an extra clock causing an issue with decoding of the command within the ADS114S08.

    The communication is byte oriented for the ADS114S08.  You can send multiples of a byte (such as 16 bits) without issue, but it is unclear as to what you mean by sending 8 bit data for communication that does not work.  Can you send me scope shots of each type of communication so that I can compare to see what may be different?  Unless you are now using CS on the device instead of holding it low.  If you attempt to use the SS pin on the SPI peripheral this will be an issue as the communication must hold CS low on the ADS114S08 for the entire communication transaction.  The SS pin would toggle in 8-bit mode every byte which would then cancel the communication.  It is better to control the CS pin with a GPIO instead of the peripheral for cases where more than 2 bytes are sent such as when using the RDATA command.

    Best regards,

    Bob B

  • In reply to Bob Benjamin:

    Hi Bob B,

    1) After Implementing all your suggestions we reading analog signal(1mV) from channel 0 and 1 by setting gain of 16 and Data rate of  4000 SPS (0x0E in Register 4).we are getting desired reading through RDATA (0x12) command but after sometime result goes to zero and again it goes to our desired reading. during this REFOUT is contant 2.4975V. So what is cause for this zero reading...

    2) after that we set gain of 32 and Data rate of 20 SPS  for that we getting zero reading for same analog signal (1mV) .

    3) sometime after writing into registers and read them back for verification we getting zero value for all configured registers.

    Thanks and best regards,

    Jehan Patel

  • In reply to Jehan Patel:

    Hi Jehan,

    I think you are actually spending more time debugging your prototyping situation than actual verifying a design.  It is pretty obvious to me that the route of all your issues is the way you are trying to do this.  There is a reason for PCBs and why systems are not built with a bunch of fly wires.  So you need to improve your prototype so that there is proper power and ground connections, clean with no spikes communication, and that any noise or physical contact with the prototype is prevented.

    See additional responses below.

    Best regards,

    Bob B

    Jehan Patel

    Hi Bob B,

    1) After Implementing all your suggestions we reading analog signal(1mV) from channel 0 and 1 by setting gain of 16 and Data rate of  4000 SPS (0x0E in Register 4).we are getting desired reading through RDATA (0x12) command but after sometime result goes to zero and again it goes to our desired reading. during this REFOUT is contant 2.4975V. So what is cause for this zero reading... [Bob] This appears to be corrupted communication where the RDATA command is not properly decoded.

    2) after that we set gain of 32 and Data rate of 20 SPS  for that we getting zero reading for same analog signal (1mV) . [Bob] Have you verified that the registers are written as expected, including the mux input settings?  If the device has reset, then you also need to make sure that you issue the START command or that the START pin is pulled high.

    3) sometime after writing into registers and read them back for verification we getting zero value for all configured registers.[Bob] This appears to be due to a reset condition that has taken place.  This could be caused by a poor connection with either power or ground in the IOVDD, DVDD or AVDD pins.

    Thanks and best regards,

    Jehan Patel