From: Joe G (Home) on 8 Feb 2010 05:51 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
From: Meindert Sprang on 8 Feb 2010 06:33 "Joe G (Home)" <joe.g(a)optusnet.com.au> wrote in message news:4b6fecc1$0$3003$afc38c87(a)news.optusnet.com.au... > 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. By generating a premature stop condition. Meindert
From: Tilmann Reh on 8 Feb 2010 08:30 Meindert Sprang schrieb: >> 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. > > By generating a premature stop condition. ....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
From: don on 8 Feb 2010 09:26 Tilmann Reh wrote: > Meindert Sprang schrieb: > >>> 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. >> By generating a premature stop condition. > > ...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 The correct way to RESET the I2C buss, is to do a repeat-START, then a STOP. Works every time. don
From: Tilmann Reh on 9 Feb 2010 02:48 don schrieb: > The correct way to RESET the I2C buss, is to do a repeat-START, then a STOP. 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
|
Next
|
Last
Pages: 1 2 Prev: PCB multiple designs surcharge Next: $$$$$ READ EMAILS & EARN CREDITS TOWARDS A LAPTOP !!! |