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.

ADS1243: ADS1243 Bipolar positive value wraparound.

Part Number: ADS1243

I currently have a load cell connected to the ADS1243.

and have the ACR (Analog Control Register) set to read Bipolar. 

where +FSR = 0x7FFFFF and -FSR = 0x800000

The problem I have is that when i apply weight onto to load cell the value i get increases - as expected. BUT as i keep applying weight i end up going over 0x7FFFFF. updating values above 0x7FFFFF which in theory read as negative values. 

I was expecting the value to cap at 0x7FFFFF... but instead it goes over.

Reverting the load cell wight I get negative values fine. 

at this point there is no way to simply distinguish a negative and a positive value. 

any ideas on what could be causing this?

thank you.

  • George,


    Based on what I know of the ADS1243, this shouldn't happen. With an over ranged input, the digital filter accumulation should be hard limited at full scale. If the ADC doesn't limit the over ranged output to 7FFFFFh, then the burnout detection scheme that we show in the datasheet wouldn't work.

    One thing to check would be the Data Format bit (bit 6) in the Analog Control Register. If this bit is 1, then output data is unipolar going from 000000h at 0V input to FFFFFFh at +FSR (Full Scale Range). You can find this on page 16. Note that the FSR is selected by the RANGE bit (bit 2) in the same register. You might want to check this as well, since with the wrong Data Format bit setting, you'd be getting 7FFFFFh at only half if FSR.

    If none of that pans out, you might need to share more about your system. Just to be sure, can you show your schematic? It would help to show how you have the device configured (gain, SPEED bit, oscillator frequency, reference voltage). I'd also like to know if any off the offset calibration registers, full scale calibration registers, or offset DAC registers programmed to anything other than default.

    Finally, it would be best to record the reference voltage, and then a series of input voltages, and the corresponding output code (in hex) from the ADC. I'd like to see the input voltages starting at 0V and then get larger and larger and then going past full scale.

    Regardless, this should be a problem we should be able to debug. It may require more data, but there shouldn't be a problem with over ranging the input.


    Joseph Wu