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.

ADS1234: Strange power up behavior, i get sometimes stuck with the same output value.

Part Number: ADS1234
Other Parts Discussed in Thread: SN74LVC3G07

My issues is that sometimes after power up (like 1 in 3 times), I got stuck with nearly the same output value (check below my examples). But this only happens, when the power supply also got powered up at the same time.

I also have a fuse on my PCB and when i remove it and insert it again, I never got this error. For PDWN pin i used the RC circuit, like it is in the data sheet (R = 1k and C = 2.2nF). I have tried also an 33k for R, but it have not changed anything.

I have sometimes read that pulsing the PDWN can help, but I can not test it, cause of the PCB design.

Example of raw output values (in dec) of the channel one and two:

Channel 1: 8388608.0
Channel 2: 8388608.0
Channel 1: 8388608.0
Channel 2: 8388616.0
Channel 1: 8388616.0
Channel 2: 8388610.0
Channel 1: 8388616.0
Channel 2: 8388624.0
Channel 1: 8388623.0
Channel 2: 8388611.0
Channel 1: 8388616.0
Channel 2: 8388615.0
Channel 1: 8388612.0
Channel 2: 8388615.0
Channel 1: 8388612.0
Channel 2: 8388615.0
Channel 1: 8388615.0
Channel 2: 8388735.0
Channel 1: 8388639.0
Channel 2: 8388671.0
Channel 1: 8388624.0
Channel 2: 8388640.0

  • Hi Rene,

    Welcome to the E2E forum! Can you send me your schematic? Generally in a cold start (system has been off for a period of time) there are not start up issues when following the guidelines in the current datasheet. However, if the system has been energized and the power switched off and back on, there may be an issue.

    When the device powers up, the PDWN pin must stay low for at least 10us after both the AVDD and DVDD supplies have reached the nominal operating voltage. If you are using the RC powered from DVDD, you must make sure that AVDD is fully powered before the PDWN reaches a logic high state. Increasing the R or C value will help slow the timing for PDWN going high, but there is a penalty for doing so.

    For the internal power-on reset circuit for the ADS1234 to work properly all residual charge on any pin must be completely depleted before reapplying power. By switching the power from on-off-on, there must be sufficient time for charge to leak from all caps to discharge them including any bulk caps, bypass caps, reference caps, and the cap connected to the PDWN pin. The issue can be avoided by controlling the PDWN pin and pulsing the pin after startup. This information is being placed in an updated datasheet that we hope to release soon.

    Other considerations are making sure the reference voltage is correct at the pins of the ADS1234. The result code you are seeing is at or very close to negative full-scale. You should also verify that the input voltage is at the correct common-mode voltage at the ADC inputs. If you are able to control the GAIN pins, you could try selecting a different gain like from 128 to gain of 1, and back to gain of 128. You should also always issue an offset calibration after power up by sending 26 SCLKs to initiate the offset calibration.

    Best regards,
    Bob B
  • Hi Bob,

    I have waited long enough, so that all caps are discharged. I have a few active consumer on the board which should also discharge the caps.

    Making an offset calibration on start up would not possible in my case, cause I am using a load cell and I can not assure that there lies nothing around on the load cell.

    I have attached the schematics for the ADS1234.

    Thanks for your response,
    Rene

    ADS1234_Schematics.pdf

  • Hi Rene,

    Thanks for sharing the schematic. The offset calibration I was referring to is the ADS1234 internal calibration to remove unwanted offset specific to the ADS1234 internals, such as the PGA. This has nothing to do with the load cell as the calibration disconnects the input mux and instead shorts the inputs internal to the device. The offset calibration is initiated by sending 26 or more SCLKs.

    As I don't have the complete schematic, I'm assuming based on the resistor divider on the output of DRDY/DOUT, that your micro is operating at a different voltage than the digital supply of the ADS1234. Is there some reason why you are not using the same supply voltage for the micro and the DVDD of the ADS1234? The ADS1234 analog and digital supplies can operate at different voltage levels and do not have to be the same voltage.

    Based on your voltage divider, I'm going to assume that the microprocessor supply voltage is 3.3V. If this is the case you would be operating the input voltage for SCLK at the wrong voltage. The ADS1234 VIH, as given on page 4 of the datasheet, must be a minimum of 0.7 DVDD (3.5V for 5V DVDD). So I think you have been fortunate that you have gotten anything at all meaningful from the ADS1234. So, you either need to level shift the SCLK signal to the proper voltage, or you need to use the same supply voltage for both DVDD of the ADS1234 and the microprocessor.

    Another comment regarding the schematic. You have no analog input filtering or protection from EMI/RFI on the inputs from the load cells. One benefit of adding the filters is for antialiasing. High frequency content not filtered can alias back into the passband of the ADC. I would also suggest having at least a 100nF cap across the REF inputs of the ADS1234 as well. I see you have a 100nF cap as a supply bypass cap for AVDD. There should also by a bypass cap for the DVDD supply input.

    Another consideration is when using a DVDD supply different than the microprocessor supply, you need to make sure that the digital input pins of the ADS1234 are not floating at power-up. Also, if the 5V power is disconnected, but the microprocessor is still powered, there is the possibility of back-driving current into the ADS1234 which may also cause issues. If this condition occurs, the GPIOs must not have a voltage greater than 0V applied (most likely this could happen if one of the address pins is high).

    Best regards,
    Bob B
  • Hi Bob,

    First off all thanks for all your feedback.

    So if the offset calibration does not have any impact on the weight offset, I am adding for the future.

    I found out that adding a time delay relay on input for the whole PCB (includes the uC), which solves my problem, but thats not the solution which I can accept.
    If I have to update the PCB anyway, I am gonna at the caps and filter you suggested. But what to you think how big are the changes that this would solve my problem? I would also adding (just in case) a FET as a master switch for the supply of the ADS1234 and if I have the time I am gonna try to short the FET and test it, or should I use my last spare GPIO to pulse the PDWN pin instead of the master power switch.

    I use the same PSU for all my components including the uController and ADS1234, so the DVDD is the same one as for the uController.

    Maybe I also gonna change the DVDD to 3.3V. I have testet it first on a breadboard with an input voltage of 3.3V for SCK pin and it worked without any problems there, so I assumed that this 0.2 offset from the recommend one would also work. But I also used a different PSU, but with the same voltage level.
  • Hi Rene,

    It is still not clear to me what is actually happening. What do you mean by "I found out that adding a time delay relay on input for the whole PCB (includes the uC), which solves my problem." What input are you referring to? Where do you place the relay? Is part of the board already energized and then the relay energizes the rest of the circuit? This may mean that the supply may dip slightly on power-up and not power-up the ADS1234 monotonically.

    Adding the input filter will not solve the power-up issue. But if you are changing the PCB and if you have an extra GPIO I would highly recommend changing the control of the PDWN pin to be able to pulse this pin to clearly reset the device properly. This would be better than controlling a power switch.

    If you use the same supply for the micro and the ADS1234, why are you using the voltage divider on the DRDY/DOUT pin? If the supply voltages are the same you will have an issue with the logic levels on DRDY/DOUT when using the voltage divider. If you use different supply voltages, the ADS1234 using a 3.3V logic input/output with a 5V DVDD may work on some devices in some situations. However, a different build lot of devices may not respond the same way. I would highly recommend using the same voltage for DVDD and the micro, or level-shifting the SCLK to the 5V level using a single-gate logic device. It is still not clear to me exactly how you are powering the devices.

    Best regards,
    Bob B
  • Hi Bob,

    To clarify it, with the time delay relay i meant, that I placed it bevor the power input of the PCB, which means that the PCB gets the voltage only after a couple of seconds after the PSU is switched on.

    So bevor powering on everything is discharged, then when I switch on the 5V PSU, then after a few seconds the board with the ADS1234 and uController (it's a raspberry which generate it's own 3.3V, but i need this for other things already, so I have used the 5V to power the ADS1234. I power the RPi over the GPIO header and not the USB), after that the RPi boots up and it works. But only with the delay between the powering the PSU und booting up my system (ADS1234 and RPi). I hope to get an oscilloscope for tomorrow so that i can measure the voltage curve of the PSU during power up.

    So I also think that shifting the voltage up for the SCLK pin would be better, than powering the ADS1234 with 3.3V.

  • Hi Rene,

    It sounds like your PSU is very noisy or has some instability at power-up. It will be interesting to hear what the oscilloscope is showing when the PSU starts. It would appear that once the PSU stabilizes the power is clean enough to correctly power the PCB. Cabling from the PSU to the PCB could also be a part of the problem as there is cable inductance and capacitance.

    Controlling the PDWN pin should allow the ADS1234 to be properly reset after the power is applied by pulsing the PDWN pin.

    If the micro is at 3.3V and the ADS1234 at 5V, this only requires a simple level shifter and does not need to be bi-directional. One method is to use the SN74LVC3G07 which is an open drain buffer. You can use one gate for SCLK, one for PDWN, and the last for DRDY/DOUT when removing the voltage divider. This will require that the gate be powered from 3.3V but will allow the output to go to 5V with a pullup resistor. You could use the 5V output of DRDY/DOUT directly instead of the resistor divider as this device is 5V tolerant at the input. However, as the device is open drain pullup resistors are required on the buffer outputs.

    Best regards,
    Bob B
  • Hi Bob,

    Here in attachment is the power on curve of the PSU, it take about 6ms to reach the final 5V.

       

    So toggling the PDWN pin to high after a few seconds (the uController has booted up) should work without any problems.

    Also thanks for the suggestions regarding the choices for the level shifter.

    Best regards,

    Rene