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.

ADS7924: I2C interface goes offline after sending soft reset

Part Number: ADS7924
Other Parts Discussed in Thread: AM2434,

I have several prototypes made using ADS7924 and an AM2434 talking to the ADC over I2C.

I am sending a soft reset command to the ADS7924 via I2C at start of initialisation. 

On some chips (but not all), it seems that if I then try and I2CProbe or Read/Write the I2C in the ADS7924 locks up.

If I put a long time delay (500ms ugh!) after the reset command then it works consistently on all devices. 

There is no mention of a delay needed after soft reset or how long it needs to be. Hard Reset by the reset pin is also not mentioned how long is required to reset the device and how long it needs to initialise after a reset to become functional on the I2C bus.

Please can you let me know the reset timing requirements for reliable I2C operation after soft / hard reset?

Many Thanks

  • Hi Andrew,

    Do you have a schematic snippet that you can share?  From reset - hard or soft - it should only take about 2uS to get back to full operational mode of the ADS7942.

  • It's difficult to share anything in public and without an NDA. We can take this to a more private channel if you need to see code and schematics.

    Hard reset is asserted for 500ms and released - this happens several seconds before we attempt to talk to the device.

    In the 'unreliable' state, I2C Probe happens 27.8us after soft reset command is sent. One one device this works, on the other the I2C locks up and it no longer responds. 

    If I increase this to 500ms then both devices run fine and will continue to talk reliably to the AM2434 for hours and hours...

    I can keep the delay in, but would like to know why it is needed as 27us >> 2us.

    Electrically we are running AVDD and DVDD from 3.3V with 1uF ceramic decouplers on each power line.  Address is set to 0x40 by tying pin 5 to ground via a 1K resistor.

    I2C rise/fall times are within spec. (Bus is shared with other devices that work OK)

    On the analog side it's configured with 1K between MUXOUT and ADC_IN and 1100pF from ADC_IN to GND.

  • Hi Andrew,

    Can I ask why you are doing both hard and soft reset?  Are you using the ADS7924 with its default register configuration?  Can you also tell me what you mean by the I2C Probe?  Is that a physical probe on the I2C bus (i.e. a logic analyzer)?

  • Hardware reset happens as all the peripheral devices are tied into the same hardware reset circuit - this happens when the board first powers up. 

    The device driver that talks to the ADC does a soft reset because it's good practice not to assume anything about the state of the hardware when initialising. An example might be if a problem occurred and the driver was restarted or reloaded to recover without putting everything through a hard reset.

  • OK - that makes sense.  Are you using the register defaults or programming some specific values?

    In the 'unreliable' state, I2C Probe happens 27.8us after soft reset command is sent. One one device this works, on the other the I2C locks up and it no longer responds.

    Can you tell me any more about this 'I2C Probe' - is that a software probe point or some other piece of hardware connected to the I2C bus?