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.

ADS1299, DOUT hold time, conflicting informations in data sheet

Other Parts Discussed in Thread: ADS1299, ADS1255, MSP430F5529

Hi,

In ADS1299 data sheet (rev A), table "Timing Requirements" on page 8, states:

"tDOHD - SCLK falling edge to invalid DOUT: hold time: 10 ns"

This implies that DOUT output state is no longer valid on the subsequent rising SCLK clock edge (since rising SCLK edge cannot follow within 10ns after falling edge)

That statement is also corroborated by Figure 1 (same page): tDOHD is drawn starting from the falling edge of SCLK.

But, the same document, on page 34, states:

"Note that from Figure 2, the SCLK rising edge shifts data out of the ADS1299 on DOUT. The SCLK rising edge
is also used to latch data into the device DAISY_IN pin down the chain."

Could you clarify that please?

Is this just a double typo (in the timing table and Figure 1)?

Or is there a serious signal integrity issue when DOUT is connected to DAISY_IN (and latched at the time when its value is no longer valid)?


Thanks,

Pawel

  • Hey Pawel,

    The statement on page 34 is a typo - good catch! The bit at DAISYIN will be latched in on the falling edge of SCLK.

    Regards,
    Brian Pisani
  • Hi Brian,

    Thanks a lot for a lightning fast reply.

    But are you positive that this is the page 34 which is incorrect?

    An output that is updated on the rising clock edge and then made invalid on the falling clock edge would made for a very strange SPI indeed.

    As comparison:
    ADS1255 data sheet, page 6:
    "SCLK _rising_ edge to valid new DOUT: propagation delay"
    "SCLK _rising_ edge to DOUT invalid: hold time"

    Or, from the data sheet of a device from my favourite microcontroller family with a very good SPI (thanks TI :) )
    MSP430F5529 data sheet, Figure 13 & 14 page 68,
    both "tHD,SO SOMI output data hold time", and "tVALID,SO SOMI output data valid time" are anchored at the same clock edge.

    The standard story in digital design is:
    if an output is clocked with (let say) rising clock edge:
    - the output would hold the previous value stable for the "hold" (tH) time after rising clock edge,
    - then the signal is changing (the value is "undefined")
    - and at the "output delay" (tCO) time (from the same rising clock edge) the output becomes stable with the new value.

    To make an output that changes value on one clock edge and changes it again on the opposite edge, one would need two FFs (one of them with inverted clock) and some combinatorial logic ...
    Is this really what has been done with DOUT output in ADS1299?

    Thanks,
    Pawel
  • Hey Pawel,

    You're correct. In my last post I had focused on your assertion that if DOUT was transitioning on the same edge that DAISY_IN was latching that an unknown bit would be latched. This is true and my previous statement saying that DAISY_IN must be latched on SCLK falling edges is also true.

    However you are correct about both the table and the figure on page 6. The t_DOHD description should probably read "SCLK rising edge to invalid DOUT: hold time" and the diagram should be adjusted to indicate that that time begins when SCLK rises and ends when DOUT's state has gone from being known to unknown.

    More evidence that this is an error: the time reads as 10 ns which is a small fraction of the SCLK period, but the scale of that time shown in the diagram is nearly half the SCLK period (the diagram is not necessarily to scale in the first place, but that scale is grossly misrepresented). I will mark the errors and the datasheet will change with the next revision. Thanks for pointing these things out as well as insisting that I look more carefully!

    Regards,
    Brian Pisani
  • Hi Brian,

    Sorry for being so picky, but, if "Timing Requirements" table is not correct, and t_DOHD should be measured from the rising edge of SCLK, then the current text on page 37 is likely to be correct.

    Let me explain:
    DOUT output is updated shortly _after_ the rising edge of SCLK.
    DOUT change is not instantaneous, and the previous value remains stable for some time after the SCLK edge.
    (if timing table is updated then: DOUT value remains stable for at least t_DOHD after the rising SCLK edge)

    Therefore capturing DOUT on the rising edge is fine, as long as "stable time" on DOUT is greater or equal to t_HOLD required on the input.

    Output Hold time on DOUT: t_DOHD = 10 ns
    Input Hold time required on DAISY_IN: t_DISCK2HT = 10ns

    Running with output hold time equal to input hold time makes it highly sensitive to timing, but this is what is hinted on page 37:
    "... also makes the interface sensitive to board-level signal delays."
    "... the more challenging it could become to adhere to setup and hold times."

    To summarise:
    - The current description of t_DOHD in "Timing Requirements" table looks suspicious (and, among others, if does not match description and timing diagrams on page 37
    - If the "Timing Requirements" table is changed then data sheet becomes consistent

    Of course, this needs to be checked against the actual design.
    There is a slight chance that DOUT output circuit has actually been made in such unusual way ...

    Thanks a lot for your support

    Regards,
    Pawel
  • Hey Pawel,

    It would be very sensitive to timing indeed when both setup for the input and hold time for the output are the same exact time. I will check this with the designer, but I have a theory as to why page 34 is a mistake... I'll let you know what I find out.

    Regards,
    Brian Pisani
  • Hey Pawel,

    My suspicions were confirmed. The statement on page 34 is erroneous and DAISY_IN latches on the negative SCLK edge.

    Brian