I2C vs SPI

Hi All,

SPI is more simplistic in internal IC hardware design than I2c. If the SPI data bus receive garbage (spikes or noise) you can pull the chip select high and start clocking the data in/out again.

SPI has /CS chip select Clock Data out Data in

I2C has Clock Data

Question ======== If an I2C bus receives garbage, how does one tell a I2C receiver to "reset" and start again, as there is only a clock and data line.

Thanks in Advance.

Joe

Reply to
Joe G (Home)
Loading thread data ...

SPI

high

"reset"

By generating a premature stop condition.

Meindert

Reply to
Meindert Sprang

Meindert Sprang schrieb:

...and if one of the devices eventually blocks the bus with SDA=low (this can happen when a read access is aborted), apply SCL pulses until SDA goes high.

Tilmann

Reply to
Tilmann Reh

The correct way to RESET the I2C buss, is to do a repeat-START, then a STOP.

Works every time.

don

Reply to
don

don schrieb:

Please note that you simply can't apply a (repeated) start condition when a device continuously holds SDA low. In such cases, you first have to provide SCL pulses until SDA gets high again, then do start-stop.

Tilmann

Reply to
Tilmann Reh

_If_ it lets go at all. I've seen cases where it didn't and a power cycle was required :-(

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Especially if the slave device is doing a clock stretch, holding SCL low.

--
Paul Carpenter          | paul@pcserviceselectronics.co.uk
    PC Services
 Timing Diagram Font
  GNU H8 - compiler & Renesas H8/H8S/H8 Tiny
 For those web sites you hate
Reply to
Paul Carpenter

Sort of the eternal stretch :-)

I like SPI a lot more although I2C does have the advantage of being able to hang it all onto the same serial bus. But that can at the same time cause hang-ups while SPI never hung on me.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Paul Carpenter schrieb:

STOP.

I have always carefully selected only such I2C slaves that don't do clock stretching... :-)

Tilmann

Reply to
Tilmann Reh

Thanks all for your comments.

Joe

Reply to
Joe G (Home)

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.