From: Joerg on 9 Feb 2010 19:41 Tilmann Reh wrote: > 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. > _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.
From: Paul Carpenter on 9 Feb 2010 20:22 In article <7tedm4Fam1U1(a)mid.individual.net>, invalid(a)invalid.invalid says... > Tilmann Reh wrote: > > 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. > > > > _If_ it lets go at all. I've seen cases where it didn't and a power > cycle was required :-( Especially if the slave device is doing a clock stretch, holding SCL low. -- Paul Carpenter | paul(a)pcserviceselectronics.co.uk <http://www.pcserviceselectronics.co.uk/> PC Services <http://www.pcserviceselectronics.co.uk/fonts/> Timing Diagram Font <http://www.gnuh8.org.uk/> GNU H8 - compiler & Renesas H8/H8S/H8 Tiny <http://www.badweb.org.uk/> For those web sites you hate
From: Joerg on 9 Feb 2010 21:22 Paul Carpenter wrote: > In article <7tedm4Fam1U1(a)mid.individual.net>, invalid(a)invalid.invalid > says... >> Tilmann Reh wrote: >>> 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. >>> >> _If_ it lets go at all. I've seen cases where it didn't and a power >> cycle was required :-( > > Especially if the slave device is doing a clock stretch, holding SCL low. > 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.
From: Tilmann Reh on 10 Feb 2010 04:45 Paul Carpenter 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. >> > >> >> _If_ it lets go at all. I've seen cases where it didn't and a power >> cycle was required :-( > > Especially if the slave device is doing a clock stretch, holding SCL low. I have always carefully selected only such I2C slaves that don't do clock stretching... :-) Tilmann
From: Joe G (Home) on 12 Feb 2010 09:15 "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. > > Thanks in Advance. > > Joe > > Thanks all for your comments. Joe
First
|
Prev
|
Pages: 1 2 Prev: PCB multiple designs surcharge Next: $$$$$ READ EMAILS & EARN CREDITS TOWARDS A LAPTOP !!! |