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.

ADS1255: Non-zero conversion result when OFC = 0 and FSC = 0

Part Number: ADS1255

Hello,

is it possible to read a non-zero conversion result when OFC0-OFC2 and FSC0-FSC2 are programmed to zero? According to the equation (3) it should not be possible but sometimes I get 0xFFFFFF. It can be caused by MISO line always high. I would like to be sure that when the 0xFFFFFF is read, it is a definitively communication problem and not a possible rounding error inside the ADS1255 device.

Best

Martin

  • Hi Martin,

    The multiplication scheme on the ADS1255, like many of our devices, is a serial operation that takes ~24 clocks to execute. The initial value is set to 0 and so if either the multiplicand or multiplier is 0 then the output should be 0s as well.

    However, please note that since this information is not explicitly included in the datasheet it is provided as-is and should not be considered a guarantee regarding device operation or functionality.

    -Bryan

  • Hi Bryan,

    could be possible that you would run it on some dev. board? My experiments shows me that the 0 value is not read all the time.

    After reset (+ waiting time) the ADS1255 is configured by:

    uint8_t defaultADCConfiguration_[11] =
    {
    0x02U, // STATUS register, MSB output, auto calibration disabled, Buffer enabled
    0x01U, // MUX register, AIN0 positive input, AIN1 negative
    0x02U, // ADCON register, Clock Out OFF, Sensor Detect OFF, PGA = 4
    0x63, // DRATE 50 SPS,
    0x00U, // I/O: all pins output, to prevent excess power dissipation.
    0, // OFC0: not filled
    0, // OFC1: not filled
    0, // OFC2: not filled
    0, // FSC0: not filled
    0, // FSC1: not filled
    0, // FSC2: not filled
    };

    Later, in a while(1) loop is read the conversion data. The first 6 readings are 0, next 7 - 8 readings are with 0xFFFFFF, the rest of reading is 0 all the time. If I do RESET/ (pin) + configuration, the sequence is repeated.

    I understand that this is not a standard use case but I would like to understand the internal operations of the ADS1255, to not to be surprised in the future.

    Best

    Martin

    Edit: A similar behavior is observed when FSC = 1.

     

  • Hi Martin,

    Can you help me understand what information you are looking for? I spoke with our design team and they confirmed the operation of the ADS1255 as stated in my previous post: if FSC = 0, the output code should always scale to 0, and there were no circumstances that we could come up with where this would be false.

    My point was more that even though we cannot identify a cause for the multiplication to yield a different result, that does not exclude the possibility of such an event occurring. I don't want to guarantee you something that is not able to be guaranteed.

    As you noted, communication errors can alter the output that is read from the ADC, but the actual math performed inside the device should always result in 0 code if FSC=0.

    I don't have an ADS1255 EVM with me at home unfortunately, so I cannot perform these tests right away. Are you just asking me to confirm what you are seeing? Or is there something more you would like to discover?

    -Bryan

  • Hi Bryan,

    this device is supposed to be used in SIL3 (IEC61508) project. Zero FSC can be used for the self-diagnostic feature, one of many. However, data from my measurement shows a different behavior. I do not know what I am doing wrong. If someone could confirm that the ADS1255 is behaving exactly how you have described, I would focus more deeply to do more precise study of the SPI commands and timing. The error space is now too large.

    Best

    Martin 

    EDIT:

    My great apology. All the issues were caused by misbehaving hardware. I've tried ADS1256EVM and run it there. Everything has worked fine when the logic probe was attached and it failed (reading 0xFFFFF) when disconnected. On our prototype board we are using optocouplers. I missed one important sentence from datasheet that DOUT is put into high-impendance when not used even when the CS is always low. Probably the floating optocoulpler's or MISO's input causes some weird state. It is hard to observe, a probe from osciloscope (better quality than the logic probe) is influencing SPI reading by uC and I have no battery powered device to check the lines. I will propose to the hw team to place a pull-down resistor. Thank you very much for support.

  • Hi Martin,

    I was just about to let you know that we are trying to take these measurements for you to confirm this behavior when I noticed the edit to your post (I was not notified about it via email)

    Glad to know you identified the issue, please let us know if you have any additional questions.

    -Bryan